Whether it’s a 3D printed robot chassis or a stained glass window, looking at a completed object and trying to understand how it was designed and put together can be intimidating. But upon closer examination, you can often identify the repeating shapes and substructures that were combined to create the final piece. Soon you might find that the design that seemed incredibly intricate when taken as a whole is actually an amalgamation of simple geometric elements.
This skill, the ability to see an object for its principle components, is just as important for designing new objects as it is for understanding existing ones. As James McBennett explains in his HackadayU course Designing with Complex Geometry, if you want to master computer-aided design (CAD) and start creating your own intricate designs, you’d do well to start with a toolbox of relatively straightforward geometric primitives that you can quickly modify and reuse. With time, your bag of tricks will be overflowing with parametric structures that can be reshaped on the fly to fit into whatever you’re currently working on.
His tool of choice is Grasshopper, a visual programming language that’s part of Rhino. Designs are created using an interface reminiscent of Node-RED or even GNU Radio, with each interconnected block representing a primitive shape or function that can be configured through static variables, interactive sliders, conditional operations, and even mathematical expressions. By linking these modules together complex structures can be generated and manipulated programmatically, greatly reducing the time and effort required compared to a manual approach.
As with many powerful tools, there’s certainly a learning curve for Grasshopper. But over the course of this five part series, James does a great job of breaking things down into easily digestible pieces that build onto each other. By the final class you’ll be dealing with physics and pushing your designs into the third dimension, producing elaborate designs with almost biological qualities.
Of course, Rhino isn’t for everyone. The $995 program is closed source and officially only runs on Windows and Mac OS. But the modular design concepts that James introduces, as well as the technique of looking at large complex objects as a collection of substructures, can be applied to other parametric CAD packages such as FreeCAD and OpenSCAD.
Designing with Complex Geometry is just one of the incredible courses offered through HackadayU, our pay-as-you-wish grad school for hardware hackers. From drones to quantum computing, the current list of courses has something for everyone.
17 thoughts on “New Video Series: Designing With Complex Geometry”
I freakin’ love Rhino. My best days at work are when I just get to design in Rhino for hours on end.
I frequently describe it as “like AutoCAD, but fun!”. Way less awkward than other programs in terms of how it deals with 3D, and the command line interface is quite nice; you can usually make up the name of a command you think you want to execute, and most of the time, you’re right.
@Paul said: “I freakin’ love Rhino. My best days at work are when I just get to design in Rhino for hours on end.”
You are indeed a lucky man Paul. However, we mere mortals see this when yearning for a Rhinoceros experience like yours:
1. Rhino 7 for Windows and Mac USD $995.00
2. Flamingo nXt Raytracer 5 Single-User USD $495.00
3. Total (Before Tax) USD $1,490.00
Yeah, not gonna happen. Sigh…
1. Buy Rhinocerous
2. Buy Flamingo nXt
Doing it for work, USD 1500 is not really all that much.
Add to that and rhino 7 has built in ray tracing that actually is quite nice and usable so nix that 500$ flamingo upcharge
Rhino: I would eagerly throw them money if they has a Linux version !
I ran the original Rhino Beta (back in the 90’s!!) on a Linux box running VMware. The trial is generous, I’d give it a try. I’m shocked and grateful that they support MacOS (Grasshopper support lagged by a bunch of years), but realistically, no one’s ever going to make their investment back professional graphics/CAD software to Linux (much to our shared dismay).
I found structure synth a few years ago and have used it to create a couple 3D prints. It’s a little work to figure out how to use it, but its FOSS: http://structuresynth.sourceforge.net/
Just go and get the latest version of Blender 3D and look up Geometry Nodes, there are a heap of YT videos on how to use them. Rhino is redundant, sorry James.
Blender is for polygon / mesh modelling and is not a suitable substitute for any given dimensional CAD program. I use Blender and it’s amazing and incredibly powerful, but it doesn’t make Rhino or any other CAD software redundant, sorry 𐂀 𐂅.
Kind of when people use a spreadsheet to do a databases job.
FYI there is a similar add on for Blender called Sverchok, https://nortikin.github.io/sverchok/
“But upon closer examination, you can often identify the repeating shapes and substructures that were combined to create the final piece. Soon you might find that the design that seemed incredibly intricate when taken as a whole is actually an amalgamation of simple geometric elements.”
Artistic principles at work.
Is this “complex geometry” or just “complicated geometry”?
Any sufficiently advanced technology is indistinguishable from magic.
I like the intro animation. It reminds me of the Maurer Roses I’ve just been (coincidentally) playing with, though at $995 to get going I think that might just continue plodding along on my VGA-graphics-equipped TRS-80 for the time being:
Though isometric/stereoscopic/perspective transformations in BASIC start to tax the 1.774 MHz Z80 a little bit. Probably not in the same league as Rhino. lol.
TL;DW. Just curious, is it possible to save the “code” (or whatever you call it in visual programming) as text?
That’s the main reason I’ve used OpenSCAD (also just a hobbyist and open source enthusiast, so shelling out cash for a commercial closed source program isn’t going to happen).
The ability to have full version control of the design is great, and the combination of version control and parametric design is amazing.
(When I need fillets or more organic shapes I’ve fallen back to FreeCAD, is that still necessary? Haven’t designed anything in a few years, so a bit out of touch.)
Can’t afford Rhino? Try MoI3D instead, it’s written by the brain behind Rhino. It is easier to use, consolidating analogous operations of curves, surfaces, and solids into a single operation. Its geometry engine may be a bit more robust to edge cases, and produce cleaner polygons from nurbs, too. The site’s here: http://moi3d.com/
Please be kind and respectful to help make the comments section excellent. (Comment Policy)