An interactive AR experience for Apple Vision Pro. Make your living room come alive with realistic creatures that respond to your gestures, movement, and surroundings.
https://jackfinnis.com/apps/alive
Tap to spawn fish — clownfish, sardines, and yellow tangs school around your room using boid flocking. Reach 50 fish and a shark appears. Seaweed and starfish anchor to your walls and surfaces.
Spiders crawl across your walls and ceiling using pathfinding over spatial mesh surfaces. Hold out your hand and they'll climb onto it. Cobwebs break on contact. Tap to spawn ants.
Butterflies flutter through your space. Point to attract them to your finger. Clap to scatter them. Butterfly bushes bloom on your surfaces.
Built with RealityKit's Entity Component System (ECS) pattern:
- Components — Pure data structs attached to entities (e.g.
FishComponent,SpiderComponent) - Systems — Per-frame logic that queries entities by component (e.g.
FishSystemruns boid flocking,SpiderSystemruns pathfinding) - Spaces — Immersive views that set up entities, providers, and systems
Three ARKit providers feed real-world data into the ECS:
HandProvider— hand joint tracking, gesture detection (pointing, clapping, dropping)DeviceProvider— headset world positionMeshProvider— spatial mesh anchors for environment understanding
| Creature | Algorithm | Key Behaviors |
|---|---|---|
| Fish | Boid flocking — cohesion, separation, alignment, boundary avoidance | Schooling, obstacle avoidance |
| Shark | Seek steering — target selection, obstacle avoidance, scary entity repulsion | Appears at 50+ fish, chases them |
| Spiders | RRT pathfinding — rapidly-exploring random tree over spatial mesh graph | Crawl on walls/ceiling, climb onto hands |
| Butterflies | Waypoint path-following — sequential target pursuit with landing detection | Respond to pointing gestures, scatter on clap |
SpatialGridfor O(1) spatial neighbor lookups- Entity recycling: furthest entities removed and respawned closer to the user
Fileenum caches loaded 3D models to avoid redundant I/O
- Swift Collections —
HeapModulefor pathfinding - TelemetryDeck — analytics
Contributions are welcome! See TODO.md for a list of ideas and improvements. Pick one and open a pull request, or create an issue to discuss.
