A Hopalong attractor can produce an intricate image from a compact iterative rule. I wanted to take that kind of structure off the flat screen and give it a place around the viewer, so I started a visionOS prototype.
The early app has a SwiftUI shell, an immersive space and a deterministic attractor generator with several preset families. A lightweight RealityKit preview places samples at different depths to suggest a tunnel. It also has comfort profiles and saved worlds. The renderer is still a scaffold, useful for exploring the experience before committing to a more efficient production path.
The mathematical starting point is related to Barry Martin's Hopalong attractors and the Hopalong WebGL tunnel. A sequence of points is easy to describe as data. Making that sequence feel good at human scale is a separate problem.
Repetition gives me a way to compare
Determinism matters because I want to return to the same world. If the same parameters produce the same point sequence, I can compare two rendering choices without wondering whether the pattern itself changed. A saved configuration becomes a reproducible place rather than a vaguely similar random result.
That is useful for design as well as debugging. I can ask whether a change in scale makes a particular structure feel too close, or whether a different speed makes its repetition easier to read. The underlying pattern stays stable while the presentation changes.
Putting the samples in depth also creates choices the flat image did not contain. How far away is the nearest detail? How much of the viewer's field of view does the pattern occupy? Is there a stable point of reference? A numerical scale factor becomes a bodily relationship when the display is worn on the head.
Motion makes those questions more sensitive. Moving through a tunnel can be visually compelling, but the eyes may report movement that the body does not feel. A comfort profile should therefore represent a meaningful difference in the experience, not merely a decorative preset name.
I want the viewer to have a clear way to reduce motion or leave the immersive scene. The pattern should invite observation. It should not turn staying inside it into a test of tolerance.
The first renderer has a limited job
A simple RealityKit representation is useful for getting the app to run and testing the interaction model. It is not necessarily the right way to draw a large number of points efficiently. Creating a separate entity for every sample can become expensive as the scene grows.
The planned rendering direction is a GPU-backed point cloud using Metal and Compositor Services. That work should follow a clearer understanding of the experience. A faster renderer would let me draw more points, but it would not decide whether more points make the scene better.
I would first look for the smallest representation that communicates the shape and movement. Dense detail can become visual noise. A little empty space may make the structure easier to understand and give the eye somewhere to rest.
The interesting part of this prototype is the translation from a mathematical sequence into a place. The same generator can support several experiences depending on scale, depth, color and motion. I want those choices to remain deliberate, so the viewer encounters a form they can explore comfortably rather than simply a large quantity of points.