Playing with Constraints

A project log for Havens

Hiding life in surprising places. Life is hiding in surprising places.

Owen TruebloodOwen Trueblood 04/20/2021 at 01:370 Comments

Here come some small updates on dead ends, momentary obsessions, wayward travels, etc.

I spent a while playing with my constraint solver in Houdini and had some fun, but the experiments haven't coagulated into anything sufficiently dense to continue with. So I'll offload my artifacts below.

I came across a paper called "The mechanical basis of morphogenesis: I. Epithelial folding and invagination" which explains how cells can get complicated shapes by simple forces being applied along the surfaces of membranes. I wanted to replicate some results I saw in it using my constraint solver:

Here's the result of my simple experiment along the same lines using my constraint solver in Houdini:

I made two circles and linked them with all the cross supports. Then in one part I caused the inside wall links to grow and the outside wall links to shrink which initiated some invagination. I thought it might be interesting to mill these shapes into a surface:

Thinking about what might be interesting to cut into surfaces I started playing with this intestine-like growth system that I've seen several instances of elsewhere:

It's a very easy effect to get once you've got the constraint system working. Just grow each link (resampling or adding new links along the way) and apply a force to push the lines away from each other. If you balance the rate of growth and forces then you'll get a nice big intestine:

This was sufficiently interesting to mill, so I fired up my robot arm and bolted on a spindle taken from a defunct table-top milling machine:

I apologize for the laughably bad machining I'm doing here. I was in the process of moving my entire studio so I had no clamps and had to make due with a scrap of countertop and duct tape.

I tried a couple more experiments virtually to see what other kinds of behaviors and patterns I could get. One theme that I enjoyed exploring was balancing the system on the edge of failure by ramping down the repulsion forces and dialing up the growth rate until the simulation hit numerical instability and exploded chaotically:

Up close some of these growth patterns were quite pretty.

My experiments with the constraint solver didn't end up sucking me towards the deeper ideas that I want to get at with this project so I stopped pursuing them. But it's in the toolbox now. We'll see if it comes in handy in the future.