Into the Portal: Directable Fractal Self-Similarity
Alexa Schor and Theodore Kim
Four self-similar fractals produced by our method. Left to right:
fractal bunny with bunnies stacked on the ear tips; fractal Hebe
recursing atop the bowl in her hand; detailed turbulence in a
fractal fox's infinite tails; a stack of fractal cats.
Overview and links
Abstract
We present a novel, directable method for introducing fractal
self-similarity into arbitrary shapes. Our method allows a user to
directly specify the locations of self-similarities in a Julia set,
and is general enough to reproduce other well-known fractals such
as the Koch snowflake. Ours is the first algorithm to enable this
level of general artistic control while also maintaining the
character of the original fractal shape. We introduce the notion of
placing “portals” in the iteration space of a dynamical system,
bridging the aesthetics of iterated maps with the fine-grained
control of iterated function systems (IFS). Our method is effective
in both 2D and 3D.
Paper, code and videos
Full-resolution preprint PDF.
Reduced-resolution, lightweight preprint PDF.
Self-contained C++ codebase on Github with documentation.
Turntables of Bunny and Hebe examples from the paper.
Zooms into the Hebe and Fox examples from the paper. Hosted on YouTube.
My 10-minute presentation of the paper at SIGGRAPH 2024 in Denver. Open-access from ACM Digital Library.
Output meshes
These links are served from a server located in New York, USA. If
you are geographically distant from the US east coast, or if this
server is experiencing an unusual volume of requests, you may get
faster downloads from Github's robust CDN via
the repository's Releases page.
Bunny example from paper. 891M lzma archive yields a 7.5G obj mesh.
Same bunny example, but adaptively sampled. 2G lzma archive yields an 18.9G obj mesh.
Hebe example from paper. 89M lzma archive yields a 745M obj mesh.