Overview
This is a project I started to explore the concept of fractal cuboid animation. At first it just started abstract and exact, with no space between the units, and the math started out extremely simple. However, I realized I wanted something a bit more grounded, and kind of saw them as shipping containers in space, so I went with that concept. This concept added a lot of interesting but challenging complexity to everything due to the math of the padding and structures while keeping the locomotion systems plausible and realistic.
This project is still in progress when I have time to get around to it. I’d like to add a few more structures, objects to sell the scale of the structure, and a bit of a story arc for a full animation that follows different parts of the structure to take you on a journey that lets you appreciate the complexity and focus on intersting vignettes.
Structure
The structure is based on those slide-puzzles that have all grid points filled up except for one, and the way that you move stuff around is by moving one point into the space, and then moving another one into the space that it left.
For the eight points of a cube, I removed one and specified a hard-coded order to move the points around. A unit cube is copied to each of the moving points, then you treat the set of eight cubes as a larger cube and iterate. Each iteration moves exponentially slower than the previous, to help give the animations a sense of realistic weight and scale. In most of the renders, there are 6-7 iterations, but I did experiment with 8. It gets quite heavy at that level though.
Keep in mind that all of these animations are 100% procedural/analytical and are therefore scrubbable at any frame. In fact, all the heavy lifting happens way before any animation occurs, resulting in a mostly static, cacheable tree, and a very performant animation step at the very end.
Adding the frame structure significantly added to the complexity of the positioning of everything, but allowed for some really satisfying and precise structures. Instead of each iteration just being twice the size of the previous, now it has to account for padding and frame width accumulated for all of the previous layers in order to have a final accurate position.
Stars
I made a small network to layer some subnets that function like an HDA and have some linked parameters. Each of these layers acts as a different “shell” further out into space, making each layer have smaller stars, higher redshift values, and their own density zones.
The basis of the stars is a 3D voronoi noise based on ray direction, which makes it invariant to the surface of the object it rests on, similar to a background HDRI but without needing large distant geometry like a sky dome. I can use these voronoi cells to act as an ID per star for randomization and sampling for things such as star color, or to sample a noise field for larger structure noise.