Update
I’ve been out of the loop for the past month. I was diagnosed with a stomach acid problem, given medication, and told to do nothing for a month. Unfortunately, I’ve been told to take another month off (apparently the problem was worse than they thought). I should be fine afterwards, I just can’t do much of anything (including coding) until then.
Mercifully, Geoffry Bantle, Campbell Barton, and two or three others whose names escape me have really taken up the slack, for which I am very grateful. Anyway, I’ll be back coding as soon as I can. I also have a character modelling video tutorial coming from a friend of mine (I promised to do a video tutorial at Siggraph, but that didn’t happen; I decided to have someone with better modeling skills do it), so watch out for that.
Siggraph Fundraising Drive
I’m launching a last-minute fundraising drive for attending Siggraph. My parents were going to contribute, but my grandmother had a heart attack, and we need to put her into an assisted living facility. Money is going to be tighter, and donations or e-shop purchases would help a lot.
I’m setting a $1000 USD target. If we reach half of that, I’ll commit to doing a talk at Siggraph. At two-thirds I’ll commit to a video-taped ngon modelling demonstration, and at 1000% I’ll commit to daily bmesh demos. Any other suggestions for ways I can “pay back” would be appreciated.
The donation deadline for fulfilling the commitments would be the start of siggraph (late donations are still helpful), but I’m going to need at least the first half fairly soon if I’m to go at all.
I’m still alive
I just wanted to say I’m still alive. I’ve been sick for the past little while, but I’m still working on bmesh when I can. Campbell Barton and Geoffry Bantle are helping too. Trunk integration is closer then ever, just a matter of one or two big pushes when I get better.
Bevel
I’ve implemented bevel!
It’s not completely perfect–the rules for recursion are too simple, and vert/edge customdata interpolation (e.g. vgroups, edge creases) doesn’t work correctly (though uvs and vertex colors do). It also doesn’t always get normals right. Still, I had no idea bevel was such an awesome tool or I would have coded it ages ago. I ended up not using Levi’s code (the old bevel), which was written in a prior version of bmesh. It’s not bad code, but it since it was coded for 2.4x its a bit overcomplicated.
In addition, I rigged my Sakura character, and fixed bunches of little issues in the modifier stack (though a problem with mirror at high merge limits remains). Thank God for Nathan Vaghdal, Campbell Barton, and rigify. It makes rigging easy.
Status Update
After much real-life drama, BMesh is now solidly moving forward. I’ve fixes bunches of bugs, synced the branch with latest trunk updates, and I’ve even started a modeling project to further identify and fix issues:

She’s a character from Naruto Shippuden. It’s a real challenge; reference images are completely useless, I found it vital to watch the anime itself, and pay attention to the underlying volumes as she moves. It’s fun, since anime characters do have a consistent form, but you have to watch them move to see what that form is.
Anyway, things are much more stable/usable now, although there are probably a ton of bugs I’ve not found yet.
Update
Things have been a bit hectic lately. I’ve been living with my parents lately; the winter here makes me extremely sick, and I wasn’t able to move to where I spend winters before the weather changes (I’ll be heading over there in three days). This happened last year, and after the move I got much more work done. I expect to bounce back relatively quickly this time as well. I apologize for the delay and not answering comments/emails.
In other news, I have all the tools I need to fully stabilize BMesh–it required writing some a (extremely hackish) unit testing framework (it’ll work for me, but is not a competitor with Leaf’s SoC project)–and I expect to move much more rapidly.
Blender Conference: Need Donations!
I’ve decided to go to BlenConf this year, so I’m starting a donation drive to help pay for it. At BlenConf, I’ll have access to key developers to finalize trunk integration plans, and a great many artists for testing. I should be able to resolve a great many issues, and work with other developers to best plan out trunk integration.
Any donations are much appreciated! As an incentive, whoever donates first (at least $35) gets a free BMesh t-shirt!
Status Update And Possible Sprint
BMesh is nearing completion. I’m currently doing another merge, and I’m aiming to do an intense testing sprint in the near future. My life is rather hectic at the moment, but hopefully I will get bmesh production-ready as soon as possible.
I’m currently in northern Utah for health tests. I’m planning to head back to northern California (Sacramento) in a few weeks. If anyone knows of competent blender modelers in travel distance of Sacramento, I’d appreciate very much if they could leaves comments or email me so I can start making contacts (don’t post email addresses though).
I’m not sure of an exact time frame for completion (some unpredictable things came up) but hopefully bmesh can be merged into trunk sooner rather then later.
Blender Institute
I’ve been honored recently to be hired by the Blender Institute to work on the Durian project. I’ll still be devoting some time to BMesh, as much as I can spare. I’m not sure what to do about donations; they would still go to BMesh (I’m only here for three months, after that it’s back to relying on donations), but I recognize that others may want their donations to produce immediate work (I certainly try to treat donations as an obligation to code now, not later). Because of this, I’ve decided that I will refund on request anyone who donates during the time I’m here at the Blender Institute, no questions asked.
This opportunity shouldn’t be seen as a threat to BMesh. I think I’ve proven I’m dedicated to finishing this project, given that this is the third time I’ve done it. And to be honest, I don’t think my professional career would survive if I did not. I strongly feel I entered into an implied contract the moment I went public with hemesh five years ago, and no matter how long it takes I will fulfill it.
Select Mirror and Other Updates
So, I’ve managed to put in some BMesh time. Recently I ported a bunch of selection tools, select linked flat faces, select random, select sharp edges (as in edges with folded faces around them, not edgesplit-sharp edges).
I also ported select mirror to bmesh, and in the process I decided to try my hand at writing a topological-based function to find the best mirror candidate for a vert. It works pretty well, except I’ve later learned that Campbell Barton beat me to it in svn trunk. I’ll have to take a look at the code, see how it compares with my method.
A good mirror-finding function is important. In a perfect world, the function would be entirely topological (e.g. no need to have your model in a t pose, perfectly split by the x axis), but I’m not sure if I’ll be able to do that anytime soon. What I’ve done is coded it to detect the best match among possible candidate vertices in a sphere around the vert’s mirrored location, based on how similar the topology around the candidate is to the topology around the source vert.
I’ll have to put up some illustrations later. I’ve not yet hooked this up to x-axis mirroring, weight paint, etc; I need to look at Campbell’s code, and decide if I should modify my version to use the same method. Mine isn’t completely perfect, and I suspect his approach would work better in certain situations. Most likely I’ll end up combining the two. This isn’t something I’ll likely be spending a lot of time on in the near future, though, since there’s lots of porting work and debugging to do.
I’ve also been chugging away at aforesaid porting work, and merging in recent changes from the main development trunk. I’ve decided to put off the dreaded loop to region tool (ctrl-e, for example, loop select a forearm and loop to region will select the hand) until later, since it seems few people use it and it’d be more effective to spend time on other parts of the code right now.



