What:
Jellyfish Tank is an ambient simulation created in Pico-8 that features fluid motion, procedural animation, and interactive environmental effects. The project began as a simple jellyfish animation but evolved into a complex, ecosystem filled with interactive effects between the user, the creatures, the water, light, and sound.
Why:
The goal was to explore how far natural, life-like movement and subtle environmental interactions could be simulated within the limits of Pico-8. It was a creative exercise to build a calm, visually engaging, and aurally pleasant ambient white noise machine. Simultaneously it was used to learn the technical challenges of architecture, performance, and animation in a constrained system.
How:
Through iterative development, some key functionality was built out:
Procedural Animation: Jellyfish tentacles use joint-based motion with sine/cos oscillations for smooth trailing.
Physics & Movement: Momentum-based movement with velocity damping ensured fluid motion.
Ripple Effects: Ripples affect surrounding creatures, algae decay, and bubble motion.
Environmental Detail: The ecosystem is affected by drifting with currents, drawn towards food, change with the light, wasted encouraging algae growth .
Modular Code Structure: Separated logic for different systems (creatures, ripples, effects) using helper functions like apply_ripple_effect().
Performance Optimization: Object deletion outside tank bounds and simplified data structures helped improve speed.
Materials:
Pico 8
Visual Studio Code