Looking for the name and feedback on an imagined CSG operation/modeling workflow



  • I am new to CSG modelling, other than dabbling in Wings3D. Coincidentally, Wings3D version 2.2.5 added an OpenJSCAD export option just last week.

    I have imagined a modeling workflow that is somewhat doable in Wings3D but not yet possible in OpenJSCAD due to the lack of a 'bridge' or 'multiple shape extrude' operation. Lets say you have series of 2d shapes facing each other along a path. Now you could create a bridge or hull from shape to shape to make a 3d model from the 2d shapes. So far, this is doable in Wings3D.

    There is the problem of choosing which vertices to connect across the shapes. I am not familiar enough with computational geometry to say if this is always tractable (probably not for concave shapes). Wings3D chooses nearest vertices for you and creates new ones in edges to always make a bridge, it makes it as simple as selecting two faces and clicking 'bridge'. Wings3D is also fine with leaving you with an undefined shape (multiple possible tesselations, self-intersections) for you to fix, which seems counter to the requirements of CSG.

    Still, this workflow is attractive to me because for some reason, for technical shapes, it helps me to imagine decomposing the parts into slices that morph into each other. It does not cover every type of shape (can't make holes on the axis perpendicular to the path), but it feels like a viable tool to me.

    Ideally, it would also work with shapes that have arcs in them, so you can bridge from a hard edge to an arc in the next shape to create a transition into a bump. Possibly, if there is too much difference between shapes, a path morphing tool like you have in some SVG libraries might allow the user to choose a midpoint shape out of a few possibilities. In the worst case, you would need to define which vertices to connect or edges to split manually.

    Since there are few tutorials or books on the kind of programmatic CSG modelling OpenJSCAD makes possible, I ended up imagining my own workflow/operation. Any suggestions for better known or generalizable approaches are welcome.



  • There have been several discussions about how to build transitions between shapes. Hull and Minkowski are good at combining shapes but don't really provide the workflow described here.

    Here's one from a while back..

    Can we extrude arbitrary and changing 2D shapes along a 2D/3D path?

    I would hope that some of the folks here could provide some tips.


Log in to reply