3D printing

  • So far in this series, we've looked at Apollonian circle packing using C# and also F#. The next few posts will look at solving this problem in 3D: performing Apollonian sphere packing. I've decided to stay in F# for the algorithmic side of things: it just feels a much cleaner environment for dealing with this kind of problem, and, besides, I've been having too much fun with it. 🙂 One thing I should mention, as this series is nominally about 3D printing fill algorithms: printing hollow spheres isn't at all straightforward with today's 3D printing technology, as support material is…

  • Following on from the previous post in this series, today's post completes the implementation to create a full Apollonian gasket in AutoCAD using F#. As a comment on the original Common LISP implementation, someone had contributed a more complete version which allowed me to complete today's F# version. Here's the additional F# file for the project (which I'll be providing in full at the end of the series): module CirclePackingFullFs   open System.Numerics;   // Use Descartes' theorem to calculate the radius/position // of the 4th circle // k4 = k1 + k2 + k3 +/- sqrt(k1k2 + k2k3 +…

  • To carry on from the last post in this series, today's post is looking at a simple, initial attempt to pack circles into a space using F#. Rather than starting from the C# code in the previous post, I decided to look for a solution that makes better use of F#'s mathematical capabilities. I came across this simple Common LISP implementation, which creates a subset of a full Apollonian gasket. [Aside from the links in the previous post, this page may also provide additional insights into programmatic approaches for solving this problem.] Here's my equivalent F# code: module CirclePackingFs  …

  • To follow on from the recent series on using hyperbolic tessellation to generate patterns that might be used for 3D printing, I decided to research a slightly different approach. While I found hyperbolic tessellation reasonably straightforward for generating 2D patterns, it was much harder to adapt to 3D, mainly because we'd need to create irregular polyhedra rather than just irregular 2D polygons. I had enough trouble getting my head around the 2D side of things that I decided not to go down that path for now, at least. The good news from Alex Fielder is that he's been making good…

  • For those of you who missed the announcement (or just the event itself), here's a recording of last week's very interesting Singularity University webcast featuring Carl Bass: If you're interested in viewing others in the "Which Way Next?" series (there are two posted, at the time of writing), please visit the WWN archive.

  • To follow on from this recent topic, today's post looks at a simple script to generate various hyperbolic tessellations, laying them out in an order that makes some sense of the progressive nature of the patterns that can be generated using the HT command. Here's an AutoCAD script (which can be saved as an .scr and executed using the SCRIPT command) to generate all the valid {n k} patterns where n <= 11 and k <= 7 (n being the number of sides in each polygon, k is the number of polygons that meet at each vertex). The application module…

  • Following on from the post introducing this series, and the last post focused on generating simple hyperbolic geometry, this post looks at generating hyperbolic tessellations inside AutoCAD. Having "borrowed" some C++ code, last time, today we're going to borrow some Java. That's one of the great things about the C family of languages: the relatively small amount of work that's often needed to move code between environments. 🙂 This article, written by David E. Joyce, Professor of Mathematics and Computer Science at Clark University, has provided the best information I could find with regards to a hyperbolic tiling algorithm (especially…

  • As mentioned in the last post, today's post looks at how to draw hyperbolic geometry using the Poincaré disk model inside AutoCAD. This is an interesting exercise, but probably won't ultimately help us with the hyperbolic tessellations we're aiming to create: it's interesting as it will end up with us having a mechanism for mapping hyperbolic geometry onto an arbitrary circle inside AutoCAD, but as we're probably going to end up creating straight-lined segments for the polygons we use to create our pattern, it's mostly an exercise (and will probably be largely irrelevant to our end result). The tough part…

  • A regular follower of this blog and someone I now consider a friend through our online interactions, Alex Fielder, recently laid down the gauntlet for the topic of the coming series of posts. He started with Twitter… … and then moved on to The Swamp (which he thankfully also brought to my attention using Twitter). Alex has become interested in an area that I can see becoming increasingly relevant: given the fact that 3D printing is an additive, rather than subtractive or mold-based, process, shouldn't we take advantage of this fact to optimise the composition of an object's internal structure?…