Tag Archives: maya

Plutarch’s Debut is Nigh

workbench

Plutarch 1.0 is scheduled to make his party debut two days hence at J’s Halloween 2016 bash. The active duration of the party is roughly four hours. Here are my goals for Plutarch 1.0 during that time:

  • he must not fall off my shoulder
  • his head must remain attached to his body

Spontaneous decapitation has been a serious issue for this bird. His good-enough-for-prototyping attachment system might not be ready for primetime. We’ll see.

Whether his electronics work for the frightful fiesta’s duration is almost secondary.

While I celebrate the success of Plutarch 1.0’s ahead of schedule completion, I’m excited to get his successor out of the prototyping stage.

Here’s what Plutarch 2.0 looks like as of Halloween 2016. Keep in mind his deadline is 368 days in the future:

p2point0

He’s a discombobulated mess. But he’s much improved over his predecessor:

  • got 3D printed bevel gears working
  • added avoicebox with categorized, individually addressable sound calls
  • wrote a Maya-to-Arduino animation translator for the jaw movement
  • wrote a file processor that handles the WTV020SD-16P’s wonky-ass file format
  • amplified Plutarch’s speaker so he can be heard over party din
  • made a 3D printed chassis that’s modular and easy to assemble/disassemble
  • added multiple microphone inputs so that he can turn toward the loudest sound in the room
  • replaced soldered joints with connectors

Plutarch’s jaw opens and closes in sync with his sound calls. He’s got reliable, if shaky, 3-axis head movement. All of these systems mostly work, at least in isolation.

I just have to put everything together into a single, functional organism, at which point I can start working on the final challenge: his animation decision trees. Plutarch 2.0’s almost there and I’ve learned a tremendous amount about electronics and robotics over the last few months.

Unfortunately, I’ve just run into a couple of walls.

too many wires

Too many wires. Not enough space inside the body cavity for Plutarch’s y-axis servo to rotate freely. Voltage mismatch between the Pro Trinket and the voicebox and no room to cram a regulator in there.

Working in this cramped space is difficult (especially with a splinted pinky), and the microcontroller’s going to have to move to a more accessible spot. The 90° connections between Plutarch’s control wires and the microcontroller are eating up way too much servo rotation room.

Complexity could be conserved by tying a couple of grounds together. Connections could be used with higher-gauge wire. Options exist, but we’re gonna need a hogshead of brain juice over the next few weeks to figure all this out. And cash. Cold, hard cash.

It pains me to buy a $13 part to fix a problem I might have forseen but when one considers that $13 is an average morning at Starbucks for some folks, the bad feels wither away. Also I take comfort in the fact that I really have no idea what I’m doing so expectations really shouldn’t be that high in the first place.

A year remains before Plutarch 2.0’s unveiling. Still much to learn.

Complicated Selections in Maya

Sometimes geometry comes into Maya with difficult tessellation; the original designer might have never intended the model to be edited in the first place, or, more likely, was a lunatic.

Take, for example, this knurled surface by aubenc (not a lunatic, AFAIK) on Thingiverse. All those edges on the top surface N-gon trace to a single vertex. Performing an extrude on that top surface is going to get messy and difficult to deal with down the road.

ugly

So, how to delete that collection of edges and replace with a nice clean N-gon?

There’s always the brute force solution, hand-selecting each edge by picking them with the selection tool. This’ll work, but it’s tedious and one always runs the risk of accidentally selecting an edge somewhere else on the model.

I can’t count the number of times a stray edge got accidentally beveled because I selected it this way.

Sometimes it’s possible to switch to an orthographic view, drag-select all the edges on a face from the side, and then CTRL-select the edges you dont want from the other side.

select side A

deselect side

This technique will work with a model that’s oriented nicely along the X and Z axes like this knurled cylinder, but what if you can’t get a clean orthographic selection? Like in this (admittedly fabricated for the purposes of this blog post) case? There are no guarantees that a model you find out there in the wild is going to be well-positioned by the time you get to it.

bad orient

Here’s where Maya’s selection conversion tools become astoundingly useful. First, switch to perspecive view and hit F9. This will put you into component selection mode. Select the single vertex that is common to all the edges you want to delete.

single vert

Hold down the CTRL key and then hit F11. This will convert your vertex selection to faces. (CTRL-F10 will convert to edges, by the way.)

Right click and use the contextual menu to switch to face selection.

context

Hold down CTRL again and unpick the faces that you don’t want in your selection.

faces selected

Then delete the unwanted faces.

border edge

With most models, Polygon-> Fill Hole will give you a nice, clean N-gon if you select a border edge before applying it.

clean

With some fiddling and fuddling and boolean magic, Aubenc’s model became the base for the thumbscrews in Zheng’s GoPro Gubbinses.

Zheng’s GoPro Gubbinses

(Free download, it’s in The Forge, support Open Source design by throwing me a bone yadda yadda yadda.)

Dungeon Blocks, enGIFfened!

So! Earlier this week Dungeon Blocks was launched. The Kickstarter’s doing well– as of today we’re 40% funded!

dungeon blocks16-9

Dungeon Blocks are 3D printable alphabet blocks emblazoned with fantasy creatures and dungeon scenery. Here’s the linky if you’d like to throw it a bone or two: http://kck.st/1FNEFwP

The plan is to illustrate 26-odd fantasy tropes and then 3d model them onto the blocks. We’ve got a proof-of-concept D is for Direwolf block, as well as a bunch of scenery like dungeon walls, doors, and staircases. Take a look at the Kickstarter page to see some concept art for scenery that’ll be in the final version.

Despair not, ye without access to 3D printers; there be fantasy critter coloring book backer rewards too!

This time around we’re crowdsourcing the creativity, too: if the project’s funded I’ll be setting up a forum here at Zheng3.com where backers can hash out exactly which fantasy tropes they’d like to see featured on the blocks. We’ve already got some heavy hitters from the 3D printing community as backers and I’m really looking forward to seeing the ideas they come up with.

You, yes, you can get in on the action and be part of the creative process by backing at the PARTY MEMBER level. If you just want to help support Open Source design (and receive a PDF coloring tome to boot) become a FRIENDLY NPC instead.

Usually at this point in the blog post I go into a behind-the-scenes-how’d-he-do-dat 3d modeling riff, but by Jove I’ve been writing/coding a lot lately and just need to flex some different tendons for a bit.

Here’s a GIF instead.

dungeon block

Building Rome in a Day for a Kickstarter video

There’s a Kickstarter statistic that says you’re something like 50% more likely to get funded if you’ve got a movie attached to your project. Currently we’re at about 14% funding for Faire Play 2 in less that a week, which is a nice start.

Here’s our movie, and after you’ve watched it head down below the embed to see a little behind the scenes movie magic.

If you haven’t backed, pop over to Kickstarter and drop a couple bucks on the project. Let’s see if we can’t get to 20% by the end of the day. Share the following link with friends and family on Facebook and Twitter, too! That helps a lot. http://kck.st/1FQ7FZf

Thanks. And now onto the show.

Fun, right? Here’s how Emperor Sparky’s world is done IRL. The title of the post is a little misleading– it takes days— plural– to make a video like this. Weeks, really.

We’re not even talking audio editing, which be a whole ‘nother can o’ worms.

The short answer to “how’d he do that” is Photoshop. Lots and lots of Photoshop. Zheng Labs kicks it old-school with Photoshop CS2, the last version of Photoshop that runs on our 32-bit Mac Pro tower. (hence the Kickstarter– more operating capital==better equipment and software to crank out fun projects like this more quickly.) I’m shooting almost everything with a battered old Canon G11, except for a few quickies I take with an iPhone here and there.

And cardboard. Lots of cardboard and a matte knife. No laser cutting here, not yet anyway.

The first step is to make and paint the most important part of the set, Sparky’s balcony. I’d been saving paper towel tubes for use as columns for months.

This piece of the set is mostly made from spray paint, old Amazon Prime boxes, masking tape, and crayons. One can accomplish a lot with these simple tools if one drinks a lot of cheap coffee and mainlines Science Friday podcasts in the basement at 4:30 AM on Saturday before anybody else in the house is awake to bother you.

001

It’s all set up on my workbench down in the basement. Sparky’s stuck into the scene for reference purposes only– he doesn’t show up in the final shot.

Next, I start duplicating pieces of the background arches to hide the basement in the background. Sparky disappears behind a piece of background created straight-on in another shot and deformed to match the perspective of the arch behind him. Apparently I wasn’t happy with that blue pennon on the right sticking out, because I replaced it with a duplicate of the pennon on the left.

003

Continue to fill in background pieces here and there, making sure there aren’t any gaps and the perspective and lighting more or less match.

004

My basement is slowly disappearing as I copy and paste pieces of virtual cardboard into the background. All throughout this process I’m making little tweaks with Photoshop’s cloning and healing brushes too. Also dodging and burning as appropriate and redrawing crayon lines where needed in an attempt to keep the artwork as organic as I can.

Faking shadows is really important, too. Lots of fake shadows with a bit of Gaussian blur on them help pieces of the set pop visually.

005

Here we’re finished adding background and a blue sky, which definitely doesn’t exist in my basement. Adjust the final lighting and paste in the LEGO gladiator. He’s a foreground element so he’s shot in a lightbox, isolated with Photoshop’s extraction tools, and then pasted in.

006

Aesthetics are far more important than reality in a venture like this, so darkening the archways was an important step towards achieving a pleasing image. As a final flourish, hand-draw the laurels on the red pennon with one of Photoshop’s custom brushes to simulate crayon.

So that’s basically how the inside of the cardboard Colosseum was made; repeat that basic process for about 47 more shots and you’ve got yourself a video, buster.

The establishing wide shot of the Colosseum is another matter entirely. It’s not so much Photoshop as Autodesk Maya. First, a background plate so I can get the perspective close enough.

standin

I’m using the Lincoln Logs can as a stand-in for the final Colosseum.

Photoshop’s warping and lighting tools leave something to be desired, so for this shot I created a rough 3D model in Maya and then mapped the cardboard textures onto it.

wireframe

The 3D model is just a little too perfect (and stable-looking) when it’s rendered out, so the Maya image gets pulled into Photoshop again for tweaking, slicing, and dicing. I blow out the saturation and move some background and foreground elements around, too. Note the addition of a d20 in the foreground. I loves me some gratuitous icosohedrons.

That electrical outlet isn’t there in real life, either; I added it to improve the final composition and set the scale of the scene in the viewer’s mind.

opening

Thanks for reading this far! If you haven’t already done so, please back the Faire Play 2 Kickstarter. With your help, I’ll be able to take the budget for the next Kickstarter video well into double digits.

D’Oh! Almost forgot to mention! Those capitals and plinths on the paper towel tubes that turn them into Ionic columns? They’re available for free download right here. They’re printed in Filabot’s Carbon Fiber ABS, which makes them nigh indestructible and probably overkill for an application like this, but then again I’m a belt-and-suspenders sort of hominid.

Also, Coco says hi.

column

Meow!

Appleton Maker Fest

Appleton, Wisconsin is the nicest little city you’ve never heard of. Along with low crime rates and a thriving local music scene, it’s home to Lawrence University, a Harry Houdini museum with an interactive straightjacket exhibit, and the first Edison hydroelectric plant in the United States. Last weekend the Appleton Maker Space hosted their first Maker Fest.

makerfest

The Appleton Maker Space is tucked back in a mostly-underutilized commercial space off the west end of Appleton’s main drag, just the kind of location where you’d expect a hackerspace to be gestating.

Bonus: AMS is right across the street from some of the finest deep-dish pizza in town.*

Pizza wasn’t needed this day because, being that this is Wisconsin, the Appleton Maker Space provided a bratwurst concession for peckish attendees.

Our coastal and international readers should be aware that no event in Wisconsin can be held without at least thirty pounds of bratwurst in attendance. Pretty sure it’s in the state constitution.

The space was packed with dedicated Makers– I’ll leave it to their website to point out all the cool hardware they’ve got over there. Here’s one corner of the event, complete with the obligatory LAN party of kids playing Minecraft.

makerspace

Amid the chaos one usually associates with a makerspace’s being open to the chaos, someone was personalizing a banana for a younger attendee by etching her name into the skin. Of all the projects I’ve ever envisoned for a laser cutter, this’d be about the last one I’d ever come up with. Fantastic idea. I’d totally personalize all my bananas if we had a laser cutter at Zheng Labs.

banana

Show and tell time arrived and the assembled crowd asked for an “ominous puffy doll” to be modeled and printed on one of the RepRaps. I already had the laptop out so I fired up Maya and made this little guy. Concept to execution in ten minutes.

first pass

Later on I buffed out some of the stray vertices and cut a hole in the back so that Ominous Puffy can stick to your fridge with the addition of a neodymium magnet.

ominous puffy

You can download Ominous Puffy from his page in The Forge.

Heads up, badgers. I’ll be blogging, tweeting, and instagramming the ever-living snot out of Maker Faire Milwaukee in a couple of weeks, so if you’d like to meet up IRL and geek out over filament diameters drop me a line.

* deep dish isn’t pizza. New York style is pizza. Bring it, haters.

B-(A+C): Booleans and We The Builders

3D printing luminary Todd Blatt is of late heading up his second bit of crowdsourced Americana with his We The Builders project, Ben Franklinstein.

I missed out on the first pass at this with George Crowdsourcington, and since Todd overtipped our server for his share of Korean Barbecue the last time we met IRL, jumping in to help out with Ben Franklinstein seemed like The Right Thing To Do.

Here’s how this works. Everyone who wants to be involved downloads a piece of a scanned Ben Franklin bust. We print it, scrawl the piece’s coordinates on an inward-facing side, and ship it to Todd and others who assemble all the pieces somewhere in Baltimore.

The result’s a nifty pastiche of plastics in the form of a Founder. A quilt of quadrilaterals, if you will. Here’s what George Crowdsourcington looks like, all assembled.

I’ve printed two blocks for the latest project. My gold block is plain Jane, but I decided to do a little shenmeshenme on the blue one.

blocks

The first order of business was carving out a hollow inside the block. One’s first thought is to make a perfectly cubical void, but that’ll cause the roof to sag when printed on an FDM printer. So a peaked void it is, tapering to a single vertex at the top.

cut

Maya models surfaces, not solids, so subtracting the void (A) from the main geometry (B) isn’t a valid operation; B minus A equals B in this case. Printing B will get you a solid block, which is not what We The Builders want in this case.

The solution is to model a thin snorkel (C) connecting the void to the outside. This snorkel is mathematically legit, but too small for the printer’s resolution. The end result will be a printable void with no visible snorkel. We’re doing B-(A+C) here. Woo! Booleans.

You can grab the model here if you’d like to inspect this snorkel for your own mean self.

Midway through the print we do the old pause-the-print-and-drop-an-object-in-the-void trick, in this case a golden zheng. You can’t see the zheng from the outside of the printed model, but it does rattle a bit.

zheng

And then it’s a simple matter of finishing the print, boxing it up, and shipping it off to Todd and company.

The crowdsourcing phase of We the Builders is scheduled to wrap up in mid-September, and they’ve still got a few blocks to go. It’s free and a lot of fun, so go ahead and add your 3D printed stamp to this creative endeavor.

Ars Longa, Vita Brevis

My maternal grandfather was a painter. Not by trade but by passion; by day he designed lingerie patterns in The City and by night he retreated to his Bronx basement to exorcise his demons with oils and canvas. Or so my narrative of his life goes, cobbled together from snippets told by his wife and children.

Grandpa Joe died of cancer when I was six, so I never had the opportunity to know him well. My strongest memories of him are of the kind man who walked us to the corner candy store on every visit, and of the dried soil in the flowerpot next to his sickbed, dappled with orange seeds.

The smell of cigar smoke still conjures hazy, pleasant images of his presence.

To this day you can’t attend a family gathering without seeing one of Grandpa Joe’s paintings. Every uncle and aunt had (and still has) at least one of his pieces, every one a silent witness to history, now thoroughly infused with lasagna fumes and family drama. Some have even filtered down to grown grandchildren; we have one proudly displayed in an honored spot in my house.

One of his grandest works hung in our home throughout my upbringing. It’s a huge painting by a six-year-old’s standards, and still looms larger in my mind than it actually is. He painted this in 1946, in a world still reeling from war.

1946

There are two distinct sides in this conflict; left and right are rendered differently in style and tone. Panicked innocents flee from the blast of a fantastic sunset in the center. Michelangelo’s God touches no Adam here and instead judges from the middle of the battle.

Staring down from the family room wall, this painting spoke to me like Sauron’s Eye to Frodo.

“I see you,” it rasped.

I’ve felt this painting’s pull all my life. If computers hadn’t caught on in the 80’s I’d have eventually made a living airbrushing heavy metal scenes on vans. But despite years of 10 PRINT "HELLO", the notion that I could be an artist myself had already been planted in my head by Grandpa Joe’s work.

Grandpa excelled at painting details. Look at the capitals of the columns on either side of the painting and you’ll see delicate details and almost-arabesques. These are exactly the kind of decorative motifs I’d like to include in the Faire Play parade armor. Another painting has an appropriate flourish I’d like to include as an homage to my precursor, so I’ll burgle from this:

1967

My guess is that this is a depiction of the Virgin Mary appearing to my uncle and mother as children. I don’t think this is a rendering of an actual event, because you can bet your britches if Mom had witnessed a Marian apparition we’d have heard about it every Thanksgiving for the last 40 years.

Here’s the detail that I’d like to use as a recurring motif, from the lower left of the painting.

flourish sample

My old workflow for this involved tracing the flourish in Illustrator, importing the EPS, creating a planar trim and then tessellating to produce a polygon model. That’s the quick and easy path, but ultimately that journey is beset by N-gons and nonmanifold geometry, difficult to seamlessly join to an existing model.

Instead I’ll bring the image into Maya and trace the outline with the combination of Create Polygon tools, edge extrusion, and vertex pulling. This helps me to keep a model that’s built exclusively out of quads; it’s much less likely to cause me problems later on when I boolean the many flourishes into the base cuirass mesh.

flourish grow

This is going to be a slow, but easy, process, so I sip my coffee, put in the earbuds and some Quirks and Quarks podcasts, and achieve Csíkszentmihályi’s flow as I work. Twenty minutes later I have this.

finished flourish

The translated flourish doesn’t fit the space in the armor exactly, so it needs a little lattice work to deform it to the space above the bird’s wing.

flourish molded

And finally some extrusion and mirroring and it’s ready to become part of the parade armor.

extruded and mirrored

I’ll be appropriating details from both of these paintings over the next few weeks while I decorate the Faire Play parade armor.

A note to my future grandchildren, yet unconceived, osmosing this post with retinal HUDs on the shores of Central Park: do not judge my low-resolution geometry too harshly, and please pilfer your ancestors’ work to better your own.

Also, thanks to Dad for photographing the paintings and sending them my way.

Hands on with Blokify

TL;DR Summary: If it’s not a federal crime to give away an app this fun for free, it should be.

We’ve been busy here at Zheng Labs since the turn of the new year. It’s a bit of an open secret among the 3Dprinting cognoscenti that I’ve got a 3d printing Kickstarter in the works; the duergar eat and sleep at the Forge these days, prototypes of prototypes are drafted and printed at a breakneck pace, and if the bellows withstand the strain and the flow of anthracite remains steady we should have something ready for public consumption in a month or two. Sooner, hopefully, rather than later.

Here’s a teaser image. #staytuned, #watchthisspace, and #allthatjazz.

teaser

But! It can’t all be long-term projects at Casa de Zheng, lest the six or seven malcontents who follow this blog lose interest and wander off into Mirkwood. So let me dig into an app I’ve been wanting to play with for a while: Blokify.

opening

Blokify is designed to make crafting 3D models kindergarten-easy. There’s only so many ways one can build with cubes, after all, so I see some Minecraft influence here, but the designers have eschewed the ultra-low-resolution aesthetic in favor of nicely-designed, toony blocks.

If you’d like to get Lao Zheng on a get-off-my-lawn rant, ask me how Minecraft’s (WASD && voxels) method of 3D modeling leaches poison into the young minds of the next generation of CAD UI designers. Thanks mucho, Notch.

The flowing river is a nice touch. The pleasant music puts me into a building mood.

Kid-level software needs to be crazy intuitive as far as I’m concerned, so I just jump right in to the app without reading any startup guides or watching tutorials. The first UI element I poke the cobblestone block in the upper right corner. This brings up a bunch of other blocks that I can use, but for now I think I’ll stick with basic stone.

blocks

I turn my attention to the gubbins in the lower left corner. It looks it might be a camera navigation tool, so maybe it’ll orbit the camera around building area. Turns out it does something else, to which I’ll return shortly. But I still have to figure out how to move my camera around before I can build anything of consequence.

I recall that I don’t live in 1995 anymore and I’m holding a device that responds to swipes and multitouch, and start doing that. Touch with one finger to pan the camera, multitouch to orbit. Pinch to zoom. Ok, now we got this.

Tap the helpfully-checkerboarded ground to place a block and it drops onto the field with a meaty thunk. Tap the top of the first block and a second attaches with a satisfying crunch. In a few seconds you’ve got a field full of stone blocks. Sometimes blocks fly in from the sides of the field, their origin determined by some algorithmic sorcery. The sound effects really make this app entertaining. CRUNCH! THUNK! SNAP! Every block addition creates a little puff of dust.

first build

I could do this all day.

The edges of the checkerboard and an invisible ceiling limit a build to 13x13x13 blocks. Some non-triskadekaphobic over at Blokify likes primes, apparently.

Touch and hold a block for a bit and one can swipe to make a row or column. Swiping blocks into existence is fun and clicky-clacky.

horizontal

Touch and hold a little longer and the block crumbles into nothingness.

The circle in the lower left corner turns out to be an undo queue. Scrub counterclockwise and watch your model undo itself in time, then scrub clockwise to restore it.

The medieval themed blocks I’m working with naturally remind me of Seej bloxen. So I’ll make one of those.

A Seej bloxen is roughly 5x3x3cm. If I assume each Blokify block is 1cm, I’ll have to make a double-scale bloxen to get enough resolution to make the mortises underneath. Scaling the bloxen down later is trivial.

But first a few thoughts on the building process. It’s very easy to just tap tap tap the bloxen into existence, although here and there I have a bit of trouble hitting the hotspots on the sides of blocks when I need to make an overhang. It’s easier (and more fun) to sketch out my empty volume with a few wooden support blocks, and then destroy them later.

bloxen supports

I want this Blokify bloxen to be backwards-compatible with existing Seej bloxen, which means the tenons on top need to be aligned down the x-axis. Unfortunately there’s no way to put a Blokify block halfway between two others, so centered tenons are impossible with a 6-block wide bloxen.

blocks

I was looking for an opportunity to bring the model into Maya anyway, so I’ll do my vertex surgery there.

The export is two taps away through an email attachment, and it’s on my desktop in a few seconds. Well played, Blokify.

For most folks, this is where the creation ends and the printing begins, but I’ve got some edits to make and I’d like to poke around the polygons for a bit.

Here’s my first surprise; the textures on the blocks are actual geometry! The stones here are bumped out a bit and tile nicely.

into maya

The second surprise is a little less exciting: the are some long, thin, nasty-looking polygons at the junctions between blocks. Polys like these make editing a model difficult. Down this path lie non-manifold geometry and madness, so approaching these goblins with a keen eye and a keener blade is in order.

In my humble assessment Blokify doesn’t deserve to have this feature held against it, though; the subset of users who are going to edit these models in a third-party application has got to be vanishingly small. In-app editing is perfectly cromulent.

I’m able to delete the top faces of the bloxen, align the tenons down the midline, and sew the patient back up without any trouble.

The print proceeds without incident, and I’m staring at a new bloxen. Five minutes from first launch to the start of printing. Nice. For those poor souls without access to a 3D printer there’s a Shapeways export option.

Here it is, printed on my Replicator 1 with this Blue PLA.

Bloxen, Blokify

downloadTo sum up: I really like this app. It’s easy, really easy to make kid-friendly models and get them onto a printer. There’s a more-than-adequate library of free block types built into the app, and premium content’s just an AppleID password away. (Blokify lets you purchase “diamonds” for spending in-game on new blocks and environments.)

Two features I’d like to see:

1. Explosives. If the proclivities of the younger Zhengspawn are any indicator, the ability to make a design go kablooie when I’m done with it would be a huge hit with the under-10 set.
2. A bevel feature. The final print’s edges are a little sharp. Not so much a problem for me, but little hands might find the corners undesirable.

Blokify’s available on The App Store, natch.

Happy building!

Getting Lost in the Thicket

Bloxen, Bramble

You can download the .STL file for this model fo’ free, fo’ realz, from The Forge, along with many other Creative Commons-licensed designs. Just head to the Seej fortifications section and start clicking like a dolphin on meth. Knock your mean self out, hoss.

I’ve been doing a lot of simple models lately, like ye olde Semi-Formal Pocket Gear Train or the Bonsai Gibbon. These models are big on concept but easy on execution.

A few weeks ago I cranked out a floral Seej bloxen. Bumping out geometry to make vines is easy and fun, and got me started down another path I’ve been waiting to tread for quite some time.

I’d been feeling the need for an art challenge. How complicated of a model can I make with the tools I have available? Can I keep an excruciatingly complex mesh manifold and, importantly, printable on a Replicator1?

I feel like the tone of press coverage for 3D printing has recently shifted from “gee whiz” to “now what?” My Replicator1, as amazing a machine as it still objectively is by the standards of human technological progress, is beginning to feel dated.

The most complicated model I’ve released so far is the Barrow bloxen, but that thing’s a big honking mess of intersecting faces. It’ll print, but at the mathematical level it’s inelegant and causes me to feel an emotion somewhere between embarrassment and disdain.

I’ve been wanting to create a woodland player race for Seej, and a thicket seems like the kind of thing dryads might use to keep attackers out. So I’ll start fresh and create a tangle of vertices and faces, vine by vine, making sure the mesh remains manifold and printable as I go.

The first step is to start with a template bloxen and freehand draw a base for the model.

bloxen template

Then extrude the base, bevel the edges, and subdivide the mesh to get some sculptable vertices for the next step. Beveling the edges can introduce non-manifold geometry if one isn’t careful, so it’s important to visually inspect the tighter corners of the bevels to make sure edges aren’t accidentally intersecting before subdividing the mesh.

subdivide base

After a little bit of sculpting with Maya’s sculpt geometry tool to make the base a little bumpy, it’s a simple matter to punch out the bloxen’s mortises with a pair of cubes. If I’m careful with the placement of vines later on, this bloxen will stack handily with existing designs.

punch mortises

I’ve got digital skulls all over my hard drive: occupational hazard. Everything’s Better With Skulls, so I’ll add a little bit of art detail here. In hindsight I should have waited to add the rocks until later in the project because their extra geometry interfered with attaching some of the vines to the base.

rocks and skull

The process for adding vines is in theory simple, but in practice increasingly difficult as the thicket gets more dense:

  • draw a NURBS curve
  • extrude a polygon along its length with a twist and a taper
  • add some variation with the sculpt polygon tool
  • smooth the mesh
  • join the vine to the base, other vines, and neighboring geometry

I like to color different elements while I’m working so I can tell what I’ve worked on and what remains to be done. So I draw a gear-like profile for the first vine and extrude it a bit. Once the vine is smoothed those gear teeth will look like gnarly roots.

vine base extruded

I don’t need all the extra geometry created by the gear teeth so I merge some of the vertices to turn my profile poly into an octagon, and then extrude it along a twisty curve.

first vine

I want to rough out the major volumes before I get too tangled up in vines, so I add a squirrel. Everything’s Better With Squirrels.

I’m just going to take a moment to reflect on the fact that due to good planning I have a relatively simple way to add poseable squirrels to just about any model.

pose squirrel

Kestenbaum the squirrel needs a vine to grip, so back to the NURBS curves it is to create a suitably convoluted path.

path for vine

I’ll integrate Kestenbaum’s haunches with the skull’s parietal bones later, off-camera.

Every now and then a vine is going to branch off from the main trunk. The process is similar to extruding along a polygon along a path except I like to cut a hole in the main trunk first, round it off, and then extrude.

branch hole
branch extrude

After much lathering, rinsing, and repeating I’m convinced the workflow I’ve got is mostly sound and maintains a manifold mesh. The viny bloxen is beginning to take shape.

keeping track

I add vine after vine after vine over the next few days, and then get a little bored and decide to add something more interesting. A cylinder helps me block out where a bird’s nest is going to sit.

nest cylinder

And after a little subdividing and sculpting the nest is ready to go in. It needs a few little vines to keep it supported inside the bramble, and of course it wouldn’t be much of a 3d nest without some elongated spheres for eggs.

sculpted nest

Jumping ahead in time a bit, here’s a top-down view of the print before manual cleanup, showing the eggs in situ.

eggs

And then I’m back to meticulously adding vines a few at a time and running test prints to make sure the model’s as self-supporting as it can be. After a few weeks of working, an hour here, an hour there, I’m ready to begin adding thorns to the vines.

Moving all those thorns into place by hand (I think there are somewhere around 350 of them) would be way too time consuming, so I settle for a hybrid manual/scripting approach.

I manually go through the mesh and identify the polygon faces where I think a vine needs a thorn, and then write a short MEL script that constrains an instance of the thorn to those worldspace coordinates and then locks the thorn’s y-axis to the average of the faces’ surface normals. It sounds more complicated than it is.

add thorns

Sometimes the surface normal average doesn’t make perfect sense for the thorn’s orientation, so there’s a little bit of manual tweaking for a good 30% of the thorns.

I’m running test prints every few days throughout this process, just to make sure the model was mostly self-supporting. Chances are I missed one or two overhangs, but the density of the vines is such that stray filament strands actually add to the look for the final print.

The almost-final mesh is looking quite gnarly.

final

Because I am a homonin of questionable morels, I add a few mushrooms hidden inside the bramble so that others can experience the joy of finding them. These 3d fungi are far more detailed than they need to be at this resolution, but I’m planning to make a Dryad battle flag in the same style later so my small extra investment in time won’t be wasted.

xray shroom

The mesh has dozens of tiny holes created by Maya’s boolean operations, mostly at junctions between vines. I fix these when I find them but allow netfabb to do the cleanup on most of them.

holes

I could keep adding detail to this model forever, but in practice the mesh is getting too unwieldy to work with. Sometimes it’s like working inside an actual thicket, with vines obscuring my view and 3d thorns scratching up against my camera lens.

Here’s a final print at 200% scale to bring out the details:

bramble 03

Whew. Glad this one’s finished. Time to move on.

A Little Relief

floral

download

Last week I came downstairs to find the elder Zhengspawn had gotten into my box of acrylics and was busily painting one of the myriad bloxen that lurk in the crevices of Casa de Zheng. The original was printed in clear PLA on my Printrbot Simple; I think this is a nice improvement.

painted

I thought it’d be fun to give her paint job a little relief and re-release it as a new bloxen.

The first step in the process is getting the real-world paint onto the 3d model. The easiest way I can think of to do this is to photograph the painted block and then texture map the model.

It occurs to me that I could also have used Autodesk’s 123dCatch to capture the surface of the bloxen, but Lao Zheng is old school, or what passes for old school in the 3d modeling world, and dislikes giving tessellation tasks over to the Cloud.

So photographs it is, just five of them since I’m not doing anything to the bottom of the model; one snapshot for each of the four sides, and one photograph for the top.

Next, I’ll take a basic bloxen and set up a UV map.

UV coordinates on a polygonal model are roughly analogous to latitude and longitude on a globe; they tell the paint where to go on the model’s surface. The first step in assigning UV’s is to unwrap the model’s surface and lay it out on a grid. There are automated processes for this in many applications, but with a model this simple it’s probably easiest and most intuitive to do it by hand.

block uv

And here’s the bloxen with a loose texture map on it. I’m not going to worry about the underside of the model for this project because ultimately it’s destined for 3d printing and the bottom needs to be smooth so it’ll stick to the print bed. Some of my textures are out of focus and distorted and I didn’t bother to texture the sides of the tenons, but I’m just using the painting as a rough guide anyway.

bloxen textured

You can download the UV’d model if you’d like to mess around with it yourself. Converting to STL wipes out UVs so the model’s in OBJ format. Enjoy.

The next step is to subdivide the mesh many, many times so that Maya’s paintbrush tools have some vertices to work with.

subdivided

Most of the setup is done and now there’s a fun few minutes of using Maya’s Sculpt Geometry tool to bump out the vines. (Flowers will come later)

unforeseen problem After a bit of painting I find some WTFfery going on amidships, so this requires a step away from creativity and into the realm of Just Fixing Things. It looks like there is a line of extra small polygons in there, probably created by the subdividing script I’m using. They’ve gotta go, and sometimes the best way to fix things is to Just Delete Them.

wtf

The process destroys my nice quad-only mesh but I’ve been to enough rodeos to know that this probably isn’t going to sink the model later. Moving on, I make a bunch of little flowers, rotate them randomly, and stick them onto the surface of the bloxen.

add flowers

The flowers are very simple models so booleaning them to the bloxen is easy, except for the one flower that rounds a top corner. This one needs to be bent a little bit before it can be added.

deform flower

After adding the mortises on the bottom of the bloxen, merging all the stray vertices, and checking the model in netFabb to make sure it’s manifold it goes to print. No problems whatsoever, which is strangely disappointing since my 3dprinting failures Pinterest board hasn’t been updated in a while.

Ever since I replaced my delrin plungers with an extruder upgrade and switched to a BB ball-bearing based filament spool my MakerBot’s been rock solid.

This little project got me thinking in new directions, so #staytuned for an update sometime in the next few weeks.