# Bézier Mesh Shaper v0.9.0

**URL:** <https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145>\
**Category:** Released Add-ons and Extensions\
**Tags:** modeling, add-ons, commercial\
**Created:** [December 12, 2018, 1:31am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145 "2018-12-12T01:31:21Z")\
**Posts on this page:** 20\
**Page:** 10

<div class="post-metadata">

**Author:** ![RNavega](https://blenderartists.org/user_avatar/blenderartists.org/rnavega/32/490734_2.png) [@RNavega](https://blenderartists.org/u/RNavega)\
**Post date:** [May 22, 2019, 1:30pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/183 "2019-05-22T13:30:26Z")

</div>

Hi guys, sorry for the delay in posting here.  
I’m taking notes of all the feedback and reports, I should send out another update this weekend.

> [@masterxeon1001](#):
>
> lol i’m just a guy along for the ride. I am sure op is pondering the future of this tool.

Awesome video as always @masterxeon1001, thanks for sharing. I do write down all ideas and suggestions, they’re valuable.

> [@bitinn](#):
>
> With latest Blender 2.8 build (May-20th), if I initiate the shaper then cmd+z to cancel this action, it appears the script will break and leave a beizer curve in scene, and subsequent action to enable shaper will not work.
> 
> This is the case on macOS, not sure about other platform.

Hi @bitinn, thanks for reporting.  
Internally, the tool ignores the native Blender undo command while running, to avoid undoing important steps for it to run. If Mac OS uses Cmd + Z to undo instead of Ctrl + Z, then it won’t work right. I’ll make it recognize the Cmd modifier-key, this should solve the problem.

> [@AlexMcKonst](#):
>
> I do not cease to be surprised how strongly your addon has grown. I have a lot of ideas in my head where I can use it in my daily modeling. Thank! Very cool!

@AlexMcKonst Wow, thanks! I’m “standing on the shoulders of giants” though, I had to read articles written by other people (cubic Bézier math, root solving etc.), and a lot of kind people in here help by spreading the word.

---

<div class="post-metadata">

**Author:** ![ostapblender](https://blenderartists.org/user_avatar/blenderartists.org/ostapblender/32/507086_2.png) [@ostapblender](https://blenderartists.org/u/ostapblender)\
**Post date:** [May 22, 2019, 4:42pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/184 "2019-05-22T16:42:04Z")

</div>

Just purchased and it’s incredible! Love the core concept - it’s really weird that tools like this isn’t everywhere alongside with transform tools, because it feels so natural and logical to have something like this .

---

<div class="post-metadata">

**Author:** ![Rimasson](https://blenderartists.org/user_avatar/blenderartists.org/rimasson/32/443096_2.png) [@Rimasson](https://blenderartists.org/u/Rimasson)\
**Post date:** [May 22, 2019, 5:28pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/185 "2019-05-22T17:28:05Z")

</div>

I wish that blender devs will create a modifier based on your addon., like the wire deformer in maya  
Great work

---

<div class="post-metadata">

**Author:** ![kittinzaa](https://blenderartists.org/user_avatar/blenderartists.org/kittinzaa/32/583453_2.png) [@kittinzaa](https://blenderartists.org/u/kittinzaa)\
**Post date:** [May 22, 2019, 7:39pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/186 "2019-05-22T19:39:44Z")

</div>

I think Mira tool addon have that tool

---

<div class="post-metadata">

**Author:** ![beefaroni](https://blenderartists.org/letter_avatar_proxy/v4/letter/b/a88e4f/32.png) [@beefaroni](https://blenderartists.org/u/beefaroni)\
**Post date:** [May 26, 2019, 9:27pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/187 "2019-05-26T21:27:04Z")

</div>

Any chance for an update to work similarly to the Lattice Tool in Maya / Max when only a few points are selected? My co-workers and I use this technique a ton.

Unfortunately the current Blender Lattice implementation isn’t great with having to create a lattice, position it, create deformer, edit, etc.

Edit: Apparently Shear works for these types of edits. My apologies!

Using it on a flat surface

Using it to change angle on a cylinder.

---

<div class="post-metadata">

**Author:** ![RNavega](https://blenderartists.org/user_avatar/blenderartists.org/rnavega/32/490734_2.png) [@RNavega](https://blenderartists.org/u/RNavega)\
**Post date:** [May 28, 2019, 5:27am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/188 "2019-05-28T05:27:46Z")

</div>

> [@stealthx](#):
>
> Mesh shaper doesn’t support “Local View” do you plan to add it?

@stealthx I tested the Local View mode on 2.79 and 2.80, it’s a scene with some objects, going into Local View on an object and editing it.  
It’s working in here, unless I’m not doing the same steps as you – if you find that it’s not working in v0.9.0 (May 28) then please report back.

> [@bitinn](#):
>
> if I initiate the shaper then cmd+z to cancel this action, it appears the script will break and leave a beizer curve in scene

@bitinn It should recognize Cmd+Z shortcuts now. If undo is still not working then I can send you a small test script to find out what event-type Blender puts on the Cmd key on mac (I’m a PC guy =D).

---

<div class="post-metadata">

**Author:** ![stealthx](https://blenderartists.org/user_avatar/blenderartists.org/stealthx/32/36610_2.png) [@stealthx](https://blenderartists.org/u/stealthx)\
**Post date:** [May 28, 2019, 7:59am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/189 "2019-05-28T07:59:33Z")

</div>

Thank you for the great update. Hidden modifiers now works really nice and other stuff too.

In Local View shortcut, there is a new “Frame Selected” option in 2.80, which should be OFF (in 2.79 it is always ON). If it is ON and you work on some little part on the side of the object and enter Local View, it will zoom out to show whole object. It will be core of the problem.

I’m sure that somebody will disagree but “Frame Selected” should be OFF by default in Blender.

Test with Bezier Mesh Shaper:

1. Enter “Local View”
2. Then rotate view 180°
3. Use “Bezier Mesh Shaper”
4. Viewport auto rotates that you really don’t know where were you working.

Local View - Frame Selected = OFF should solve the viewport jumping.

---

<div class="post-metadata">

**Author:** ![RNavega](https://blenderartists.org/user_avatar/blenderartists.org/rnavega/32/490734_2.png) [@RNavega](https://blenderartists.org/u/RNavega)\
**Post date:** [June 4, 2019, 2:22am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/190 "2019-06-04T02:22:22Z")

</div>

> [@stealthx](#):
>
> Test with Bezier Mesh Shaper:
> 
> 1. Enter “Local View”
> 2. Then rotate view 180°
> 3. Use “Bezier Mesh Shaper”
> 4. Viewport auto rotates that you really don’t know where were you working.

@stealthx Hi, I tried these steps with and without the Frame Selected option (in the keymap settings for the Local View shortcut), but in both cases the viewport stays still as expected.  
This was tested on 2.80 Windows 64, June 04.

What it does is store the viewport location/rotation/distance, step out of local view, add the curve, then step back in to local view, then restore that viewport location/rotation/distance. So there shouldn’t be any visual changes – independent of the state of the Frame Selected option.

* * *

I isolated it into a test, see if you can try this. You open a Text Editor on a Blender 2.80 viewport, press the “+ New” button, paste what’s below, then press the “Run Script” button (all these buttons are on the Text Editor header bar:

> **Local View Test (Python)**
>
> ```auto
> import bpy
> 
> class SimpleOperator(bpy.types.Operator):
> """Tooltip"""
> bl_idname = "view3d.local_view_test"
> bl_label = "Local View Test"
> 
> def execute(self, context):
> if context.space_data.local_view:
> oldViewLocation = context.region_data.view_location.copy()
> oldViewRotation = context.region_data.view_rotation.copy()
> oldViewDistance = context.region_data.view_distance
> 
> bpy.ops.view3d.localview()
>             
> # Do something while outside of local view.
> # . . .
>             
> bpy.ops.view3d.localview()
>             
> context.region_data.view_location = oldViewLocation
> context.region_data.view_rotation = oldViewRotation
> context.region_data.view_distance = oldViewDistance        
>             
> self.report({'INFO'}, 'Local View detected, test complete')
> else:
> self.report({'WARNING'}, 'Local View not active, aborting...')
> return {'FINISHED'}
> 
> def register():
> bpy.utils.register_class(SimpleOperator)
> 
> def unregister():
> bpy.utils.unregister_class(SimpleOperator)
> 
> if __name__ == " __main__":
> register()
> 
> ```

You can find this operator with the Spacebar / F3 search, using it in those steps you mentioned instead of BMS.

---

<div class="post-metadata">

**Author:** ![stealthx](https://blenderartists.org/user_avatar/blenderartists.org/stealthx/32/36610_2.png) [@stealthx](https://blenderartists.org/u/stealthx)\
**Post date:** [June 4, 2019, 9:53am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/191 "2019-06-04T09:53:57Z")

</div>

It looks like it store the viewport location when you enter local view and then use this same location for camera every time you use the Bezier Shaper.

The test script doesn’t jump. It is at the end of the gif.

![Bezier_localview_bug](https://blenderartists.org/uploads/default/original/4X/1/f/3/1f3d1f4c28d804e50b0956b079c57c58a5347542.gif)

---

<div class="post-metadata">

**Author:** ![norka](https://blenderartists.org/user_avatar/blenderartists.org/norka/32/519594_2.png) [@norka](https://blenderartists.org/u/norka)\
**Post date:** [July 1, 2019, 3:13pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/192 "2019-07-01T15:13:47Z")

</div>

Mr Navega, um… sir… I see you ❤ my suggestion to Master above that he should try to persuade you to add **lattice** support… Does this mean you liked that I said he has clout, or that you like the idea of giving us the ability to edit lattices with BMS?.. I really, really hope you add it! Please-o-please-o-please!

---

<div class="post-metadata">

**Author:** ![masterxeon1001](https://blenderartists.org/user_avatar/blenderartists.org/masterxeon1001/32/631847_2.png) [@masterxeon1001](https://blenderartists.org/u/masterxeon1001)\
**Post date:** [July 1, 2019, 5:07pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/193 "2019-07-01T17:07:21Z")

</div>

of course. I need that lattice action.

---

<div class="post-metadata">

**Author:** ![SPYNeox](https://blenderartists.org/user_avatar/blenderartists.org/spyneox/32/878482_2.png) [@SPYNeox](https://blenderartists.org/u/SPYNeox)\
**Post date:** [July 30, 2019, 2:38pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/194 "2019-07-30T14:38:40Z")

</div>

Don’t know if I’m doing it wrong but  
Is it possible to support Cyclic curves? such as an eye or mouth?  
Or is there a way to do it properly

---

<div class="post-metadata">

**Author:** ![RNavega](https://blenderartists.org/user_avatar/blenderartists.org/rnavega/32/490734_2.png) [@RNavega](https://blenderartists.org/u/RNavega)\
**Post date:** [July 31, 2019, 10:42am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/195 "2019-07-31T10:42:13Z")

</div>

> [@stealthx](#):
>
> It looks like it store the viewport location when you enter local view and then use this same location for camera every time you use the Bezier Shaper.

I missed something, since March 13 there’s been this 2.80 API command to add objects to local view, so we can use that to replace the hacky way being used right now, which gives that local view problem (thanks to @MACHIN3 [for that reference](https://devtalk.blender.org/t/solved-adding-new-objects-from-python-while-in-local-view/4703/7)).

> [@norka](#):
>
> Mr Navega, um… sir… I see you ❤ my suggestion to Master above that he should try to persuade you to add **lattice** support… Does this mean you liked that I said he has clout, or that you like the idea of giving us the ability to edit lattices with BMS?.. I really, really hope you add it! Please-o-please-o-please!

> [@masterxeon1001](#):
>
> of course. I need that lattice action.

Hi guys. @norka, just to clarify, do you mean being able to deform the points of the lattice objects that are used with the Lattice modifier?

> [@SPYNeox](#):
>
> Don’t know if I’m doing it wrong but  
> Is it possible to support Cyclic curves? such as an eye or mouth?  
> Or is there a way to do it properly

As it is now, it won’t accept a cyclic selection (it’ll warn you about it), like those cyclic edge loops that you get with Alt + Click, because it expects a disconnected vertex as starting point, to build the curve.  
Maybe this can be added, I was thinking of a way to do that. I’ll have to do some tests.

---

<div class="post-metadata">

**Author:** ![norka](https://blenderartists.org/user_avatar/blenderartists.org/norka/32/519594_2.png) [@norka](https://blenderartists.org/u/norka)\
**Post date:** [July 31, 2019, 12:55pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/196 "2019-07-31T12:55:07Z")

</div>

> [@RNavega](#):
>
> Hi guys. @norka, just to clarify, do you mean being able to deform the points of the lattice objects that are used with the Lattice modifier?

Yes! Please make it happen, captain! 👍

---

<div class="post-metadata">

**Author:** ![dank0](https://blenderartists.org/user_avatar/blenderartists.org/dank0/32/1366332_2.png) [@dank0](https://blenderartists.org/u/dank0)\
**Post date:** [August 2, 2019, 2:40am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/197 "2019-08-02T02:40:37Z")

</div>

Hello, I am getting numpy error on my linux machine.  
my numpy version is 1.13.3

 ![error](https://blenderartists.org/uploads/default/original/4X/d/5/4/d54cfa05726d18a3d9139786361462b46c15f9bc.jpeg)

---

<div class="post-metadata">

**Author:** ![RNavega](https://blenderartists.org/user_avatar/blenderartists.org/rnavega/32/490734_2.png) [@RNavega](https://blenderartists.org/u/RNavega)\
**Post date:** [August 2, 2019, 10:11am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/198 "2019-08-02T10:11:54Z")

</div>

@dank0 Looks like Blender is failing on importing numpy. A web search suggests it’s related to a faulty installation of numpy (wrong version, double installs, wrong folder etc.).

On Blender, open a Python Console view (it’s an editor type, like the 3D View, UV/Image editor etc.), then type these lines:

```auto
import numpy
numpy. __path__

```

This should show the full path to the numpy package.

Then download the latest numpy from here: [https://pypi.org/project/numpy/#files](https://pypi.org/project/numpy/#files) (I suggest the “numpy-1.17.0-cp35-cp35m-manylinux1\_x86\_64.whl” file).

This .whl file is an archive, you can open it and look for a ‘numpy’ folder. Extract that folder to that path that you saw in the Python Console, then restart Blender and it should work.

The alternative is to use the “pip” command to automatically install Numpy, but some say it doesn’t always solve the problem: [https://stackoverflow.com/a/52225972](https://stackoverflow.com/a/52225972)

---

<div class="post-metadata">

**Author:** ![dank0](https://blenderartists.org/user_avatar/blenderartists.org/dank0/32/1366332_2.png) [@dank0](https://blenderartists.org/u/dank0)\
**Post date:** [August 2, 2019, 12:23pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/199 "2019-08-02T12:23:50Z")

</div>

> [@RNavega](#):
>
> numpy. **path**

Thanks for the fast reply. Yes i reinstalled Numpy and set the version of Python to the newest build. Everything works fine now. Thank you very much.

---

<div class="post-metadata">

**Author:** ![norka](https://blenderartists.org/user_avatar/blenderartists.org/norka/32/519594_2.png) [@norka](https://blenderartists.org/u/norka)\
**Post date:** [August 16, 2019, 1:55pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/200 "2019-08-16T13:55:27Z")

</div>

Oh man, I do hope that **lattice** functionality is coming… I just learned that I have yet another gig coming from my client that has me yearning for BMS on lattices even more…

---

<div class="post-metadata">

**Author:** ![anon75652222](https://blenderartists.org/letter_avatar_proxy/v4/letter/a/9de053/32.png) [@anon75652222](https://blenderartists.org/u/anon75652222)\
**Post date:** [August 19, 2019, 8:43pm UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/201 "2019-08-19T20:43:03Z")

</div>

Your tool and this tool - Mesh Tools Curved Surfaces Addon

> [@Mesh\_tools (curved surfaces mesh modification tool,C++)](https://blenderartists.org/t/mesh-tools-curved-surfaces-mesh-modification-tool-c/673519):
>
> this addon is for the mesh modification and manipulation when you have selected one/two/three/four edges , press “arch” or “curve” button, it will generate virtual curves with controller. you can adjust the controller to fine tune the shape of curve: all the curves are restricted to a plane (which is defined by the curve angle) when your mouse is hovering to one controller it will turn yellow, now you can press Left mouse button and drag to adjust the positon of curve point, or you can p…

Seem to share comparable functionality.

The tool in the link doesn’t currently run under Linux. Yours does.

Looking at what I see here, is it possible to replicate the functionality shown in the other addon  
using yours? (Perhaps using “Tilt” as shown here?)

---

<div class="post-metadata">

**Author:** ![RNavega](https://blenderartists.org/user_avatar/blenderartists.org/rnavega/32/490734_2.png) [@RNavega](https://blenderartists.org/u/RNavega)\
**Post date:** [August 20, 2019, 1:51am UTC](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145/202 "2019-08-20T01:51:03Z")

</div>

Update 0.9.1:

- Added a simple support for editing Lattice objects with the curve, picking 2 lattice points to form a curve between them:  
 ![latticeUse](https://blenderartists.org/uploads/default/original/4X/7/2/c/72ca646c385cd3650f9b5925fd0bc04109bf2634.gif)

- Changed the Proportional Edit Mode picker to be a drop-down menu. This makes  
it clearer what mode you’re currently in.

- Minor fix with 2.80 and local view mode.

@norka it turns out that lattice points don’t have a selection history like meshes do, so the support for lattice objects is limited to 2 selected points at a time, that is, a 1-segment curve (because there’s no way to know what order that you selected the points).  
Even so, you can hit unbind → edit curve → rebind to be able to add more curve segments.

* * *

> [@unkerjay](#):
>
> Looking at what I see here, is it possible to replicate the functionality shown in the other addon  
> using yours? (Perhaps using “Tilt” as shown here?)

@unkerjay Interesting add-on! It seems to be based on a compiled binary, that’s why it doesn’t run on Linux yet (it could if it gets built for that OS of course, as well as macOS). BMS is written in Python so it uses Blender’s cross-platform libs.

I’d say BMS is in the “deformer” category of add-ons and that one seems to be a “generator” add-on (even though it works on preexisting meshes): it resets the mesh to a plane that you can then profile with the curves, making it similar to Kingsnorth’s [Curves To Mesh](https://blendermarket.com/products/curves-to-mesh). So I think it’s not worth it to add this kind of feature, it’d be openly competing with something that is already popular.

If you want to deform a mesh that might already have details in it (like a long Chinese dragon for example, making it point in another direction but preserve surface detail), or even meshes without details like hair cards etc. then BMS would be the tool for that.

[Previous page](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145.md?page=9)

[Next page](https://blenderartists.org/t/bezier-mesh-shaper-v0-9-0/1138145.md?page=11)
