Status Update

September 2, 2009 at 7:31 pm 9 comments

The BMesh project has been going well.  A new developer, Wael El Oraiby, has joined the project.  He’s been very helpful in porting some of the remaining old editmesh tools to BMesh.

BMesh is now much closer to being feature-complete (and testable) then it was before.  Subsurf is working, including uv/vcol interpolation (though the “subsurf uv” option hasn’t been brought back yet).  The UV editor works, as does vertex paint and weight paint.

On the tools side, Wael ported over the selected similar tool (shift-g).  I’ve recoded the merge tools, which properly collapses uv and vcol data (as per the design of the old tools).  Extrude has been brought all the way back, including the contextual menu.

The subdivide tool now has a few advanced options in the Last Operator panel; you can enable the creation of triangles along single quad or triangle edges (it’s disabled by default) and configure the quad corner type again.  Unfortunately, as far as I know you can’t set default settings in 2.5 yet, so it won’t remember the previous settings.

The branch still isn’t testable, mostly because some editmesh tools remain.  The code that bridges editmesh and BMesh continuously breaks; and while I’m going to try to get it to at least somewhat work, I don’t have much faith in it at this point.  The good news is there’s not that many editmesh tools left, so simply bmeshafying them all shouldn’t take more then a few weeks.  Note that if you do decide to play around with the branch, I did add code to make blender save a [blendfile.blend].crash.blend on crashes, though it doesn’t save any changes you made in editmode (so cycling through editmode/objectmode every once in a while is a good idea).

I’m still not sure if BMesh will make it in to the first 2.5 release or not.  It’s definitely going to be feature-complete by then, but whether or not it’ll be stable enough I have no idea.  It may be necessary to include it anyway, regardless of how tested and stable it is, to avoid parallel development problems.


Entry filed under: Uncategorized.

Donation goal reached Demo Video

9 Comments Add your own

  • 1. Georg  |  September 2, 2009 at 8:54 pm

    Nice to hear about progress in this area.

    Some time ago you talked about some drawbacks in DerivedMesh. What are this probs exactly about? Did you adress them?

    What do the other core devs think about your work? Do I get it right that the bridge between EditMesh and BMesh is only there to use the not already ported tools? Will EditMesh be completely removed?

    What’s about Sculpt mode? Will it be easy to port it to BMesh? Is it only working on triangles and based on the OpenGL viewport? A bigger problem will be the MultiRes modifier?

    Sorry for so much questions. It’s no problem if you don’t have time to answer them. Congrats for getting this far with such a big project!!!

    • 2. joeedh  |  September 2, 2009 at 9:38 pm

      DerivedMesh is still a bit of a mess, though not quite as bad as it was. Kindof hard to explain all the problems without going into lots of detail though.

      Editmesh will hopefully be removed, yeah. And sculpt mode should continue to work (it might even work now, I’ve not tested it). MultiRes is a problem, though hopefully one we’ll be able to solve.

      • 3. Georg  |  September 2, 2009 at 10:55 pm

        Thanks for the answers! Do you know where I can get some insight of the Blender internals like DerivedMesh. I’m a developer. For sure not as good as you all, but still. Maybe I can try to finally help out a little here, too. Don’t know where to start, though.

        Would still really like to know, what all other devs say about BMesh, especially Ton.

      • 4. joeedh  |  September 2, 2009 at 11:13 pm

        Yeah pop into irc:// sometime. I’m there a lot, and it’s easier to help people in chat.

        Anyway, here are some of the key files:


      • 5. Georg  |  September 3, 2009 at 6:37 am

        Thanks again. Will have a look at it…

  • 6. mindrones  |  September 2, 2009 at 10:32 pm


    as you requested in IRC I’ll post an idea I had here.

    A while ago I was reading though

    Look at this figures

    I’m wondering if it would be possible to grab vertices which are also poles and move them in a special “pole” mode, that is keeping them constrained to the mesh they were on before you grabbed them, in order to reorganize the flow of the mesh.
    While moving them, loops should be in a different color so to see how they change in real time.

    In other words when a vertex is a pole I can move it to change the faceloops as the loops change.

    I know we can use edge rotate to manipulate poles but maybe this would be faster and more intuititive, especially if moving poles shows faceloops evidently.

    Mind that this wouldn’t be a tool to change the shape of the mesh, just the topology.

    Keep up with your work 🙂


  • 7. Ed  |  September 3, 2009 at 4:28 pm

    Awesome, I’m really hoping for integration in 2.5 even if it’s crashy, once bmesh is finally officially in I think things will really start coming into place!

    I’m wondering if it would be possible to code a new tool in python using the new event system and bmesh structures. I’d like to make an extrude function that extrudes each face along it’s face normal, while still keeping the edges connected. Do you think something like that could be done with 2.5?

    Thanks for all the hard work!

  • 8. wayneberry  |  September 4, 2009 at 9:00 am

    very exciting 🙂

    keep up the good work!!!

  • 9. Stephen Greener  |  September 8, 2009 at 11:06 am

    That is looking rather awesome. Well done on getting this far.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed



%d bloggers like this: