Inspiration
I missed the calm, slightly magical fish-tank screensavers that made old desktops feel alive. Screen Fish Saver brings that feeling back as a small interactive aquarium: something you can watch, gently care for, and leave running when you step away.
What it does
Screen Fish Saver is a browser-based freshwater aquarium simulator for beginners and curious casual players. You choose an indoor aquarium theme and one of three complete community mixes, then care for the tank with four simple actions: feed, test water, change some water, and clean the glass.
The aquarium is the hero. Fish swim with different energy levels, depths, turning behavior, and species-specific motion signatures. Care actions visibly happen in the tank. The ecosystem advances while you are away, saves in the browser, and returns with a short, recoverable update. Ambient mode turns the aquarium into a full-screen screensaver-style display.
How we built it
We built the experience as a React 19 and Vite application with browser-only persistence. The ecosystem uses a deterministic simulation model for temperature, water quality, filter health, plant health, algae, and fish stress. A single lightweight animation loop drives the fish, feeding interactions, plants, bubbles, and surface flow without per-fish timers or per-frame React renders.
The visual system pairs a photorealistic planted aquarium with a compact late-1990s-inspired cabinet UI: squared bevels, inset controls, monospaced labels, status LEDs, and restrained CRT texture. We used existing raster assets for the aquarium, fish, plants, shrimp, and snail, Phosphor Icons for interface controls, and an original opt-in Web Audio layer for retro-inspired UI cues and quiet aquarium ambience.
The project is structured as a Vite app with a Vercel deployment configuration, and its automated tests cover the deterministic simulation, persistence, fish behavior, atmosphere, audio, accessibility-sensitive typography, and release contracts.
Challenges we ran into
The hardest part was keeping the aquarium believable while making the simulation understandable. We had to make each confirmed species visible, give fish independent motion, show depth and turns, and keep the animation responsive on desktop and mobile.
We also had to make care feel physical rather than administrative. Feeding, water testing, water changes, and glass cleaning each needed their own state change, aquarium animation, event entry, and sound cue. Finally, we balanced a dense nostalgic interface around a photorealistic tank without letting the controls compete with the scene.
Accomplishments that we're proud of
We are proud that the project feels like a complete little product rather than a static aquarium illustration. A first-time visitor can go from a short boot sequence to a logo-led welcome, choose a theme and community, and arrive directly in a living tank.
The three stocking presets render their complete fish rosters plus five Amano shrimp and one nerite snail. The tank can be cared for, revisited after time away, recovered from degraded conditions, and switched into a clean ambient mode. The experience also remains usable when audio is muted and respects reduced-motion preferences.
What we learned
We learned that the most convincing “AI-like” feeling did not require claiming AI or adding a heavy rendering system. Deterministic individual agents, habitat-aware motion, staggered feeding behavior, and small visible cause-and-effect cues made the aquarium feel alive while keeping the system explainable and fast.
We also learned that nostalgia works best as a design language around a modern core: the cabinet can feel like a late-1990s aquarium utility while the water, lighting, plants, and fish remain contemporary and photorealistic. Grounding the care model in established aquarium fundamentals helped us keep the simulation approachable without pretending to be a scientific or diagnostic tool.
What's next for Screen Fish Saver
Next we would deepen the Living Cabinet behavior layer with more varied, still-deterministic observations and habitat affinities, then add richer aquarium customization and a carefully tested Hobbyist difficulty. We would keep the core promise unchanged: a calm, beautiful tank that rewards attention without creating guilt.
Built With
- css
- html
- javascript
- react
- simulator
- vercel
- vite
- web-audio-api
Log in or sign up for Devpost to join the conversation.