Aquarium profile
{{ fishCount }} fish
{{ canvasSizeLabel }} canvas
Theme {{ themeLabel }} Profile {{ fishProfileLabel }} Fish {{ fishCount }} Direction {{ directionModeLabel }} Speed {{ speedValue.toFixed(2) }}x FPS {{ fpsTarget }}
Aquarium preview {{ running ? 'running' : 'paused' }}.
Aquarium screensaver controls
Options: tropical reef, shallow lagoon, or midnight deep.
Choose theme mixed, neon, gold, or monochrome fish.
Use Bidirectional for natural crossing; use Flow left/right for a display loop.
Enter 4 to 60 fish for the current tank preview.
fish
{{ speedValue.toFixed(2) }}x
Range: 0.40x to 2.80x; start near 1.00x for ambient tanks.
{{ bubbleRateValue.toFixed(2) }}x
Range: 0.00x to 3.00x; lower it when text overlays need calm water.
{{ currentStrengthValue }}
Range: 0 to 100; higher values push stronger side drift.
{{ fishSizeScaleValue }}%
Range: 60% to 180% of the default fish size.
{{ bubbleSizeScaleValue }}%
Range: 40% to 220%; small bubbles keep dense scenes lighter.
{{ bubbleDriftValue }}%
Range: 20% to 200%; higher drift creates more meander.
{{ schoolingValue }}
Range: 0 to 100; higher values tighten the school.
{{ turbulenceValue }}
Range: 0 to 100; keep low for signage-friendly loops.
Enter 0 to 8 jellyfish for extra slow background motion.
jellyfish
Use Auto by theme, or choose sand, rocky, or dark seabed.
{{ waterGlowValue }}
Range: 0 to 100; lower glow for crisp overlays, higher for showcase light.
{{ cameraDriftValue }}
Range: 0 to 100; keep low when the canvas sits behind text.
Enter 8 to 40 frames; higher values leave softer swim trails.
frames
Switch on for foreground movement; off for a cleaner open-water tank.
{{ showPlantsValue ? 'On' : 'Off' }}
Switch on for cinematic surface light; off for flatter, clearer water.
{{ showLightRaysValue ? 'On' : 'Off' }}
Switch on for depth texture; off for a cleaner low-noise preview.
{{ showHazeValue ? 'On' : 'Off' }}
Choose 30, 45, or 60 FPS for the target playback cadence.
Metric Value Copy
{{ row.key }} {{ row.value }}
No chart-ready metrics are currently available.
Priority Director cue Rationale Copy
{{ cue.priority }} {{ cue.cue }} {{ cue.rationale }}

        
Customize
Advanced
:

A calm virtual aquarium depends on the same viewing questions that shape any ambient display: how much motion belongs on screen, where the viewer's eye travels, and whether the scene still feels comfortable after it has been running for a while. Fish, bubbles, light rays, and water haze can make a monitor feel less static, but each moving part also competes with captions, dashboard text, room signage, or a person's ability to ignore the display.

The aquarium metaphor works because it gives motion a natural direction. Fish can pass each other, swim with a steady current, or alternate paths. Bubbles rise and drift. Haze and glow suggest depth without needing a realistic tank. The tradeoff is that an attractive preview can become too active when enlarged to a TV, projected in a lobby, or left behind other content. Motion that reads as lively for ten seconds can feel restless across a meeting, waiting-room loop, or livestream backdrop.

Aquarium screensaver viewing factors
Viewing factor What it changes Common misread
Object density How many fish, bubbles, and slow background shapes compete for attention. A small preview looks empty, so density is raised until fullscreen playback feels crowded.
Swim flow Whether movement has one steady direction, crossing paths, or a stronger reversing rhythm. Fast alternating motion is chosen for energy, then distracts from nearby reading.
Water depth Glow, haze, light rays, seabed detail, and plants change contrast and perceived depth. Depth effects are stacked until overlays and dark text lose edge clarity.
Playback cadence The delivered frame rate decides whether the motion feels steady on the actual device. A selected frame-rate target is treated as a guarantee instead of a cap.

Ambient scenes should also be judged as moving content, not just as decoration. The ability to pause matters for accessibility because some viewers need reduced motion, and others simply need the display to stop moving while they read. A good aquarium loop leaves enough visual life to prevent a dead screen while avoiding rapid lane changes, flashing contrast, or heavy background texture.

Aquarium screensaver diagram showing direction, bubbles, and density as separate tuning ideas.

A virtual tank should not be mistaken for aquarium care or animal behavior. It is a stylized display loop. Its useful decisions are about visual mood, motion comfort, display load, and repeatable settings, not water chemistry, stocking, filtration, oxygen, or species needs.

The most reliable aquarium profile is usually moderate rather than maximal. Let a few values carry the mood, check the loop at real display size, and leave enough quiet space that the scene can sit in the background without becoming the main event.

How to Use This Tool:

Start with the live tank, then use the metrics and director cues to decide whether the scene is calm, crowded, or too heavy for the display.

  1. Choose Theme, Fish profile, and Swim direction. These set the water palette, fish colors, and broad traffic pattern before density and effects matter.
  2. Set Fish count, Swim speed, and Bubble rate. Raise one value at a time so you can tell whether fish density, swim cadence, or bubbles are making the tank busier.
  3. Open Advanced when the main loop is close. Use Current strength, Schooling strength, and Turbulence for swim lanes; use bubble size, bubble drift, jellyfish, seabed, plants, glow, light rays, haze, camera drift, and motion trail for depth and texture.
  4. Use Start and Pause while checking comfort. Use Reset to reseed fish, bubbles, jellyfish, and timing without changing the selected controls.
  5. Pick Frame rate as 30, 45, or 60 FPS. Treat it as a target cap, then compare Measured FPS and Quality scale after the scene has been running.
  6. Review Tank Metrics for active fish, active bubbles, canvas size, fullscreen state, measured FPS, and quality scale. A large fullscreen canvas can change both density and performance.
  7. Open Aquarium Signals Chart for a current numeric comparison and Tank Director for P1, P2, and P3 cues. Keep a cue only when its rationale matches what you see in the preview.

If a typed number snaps back, the value was outside its supported range. Recheck the visible control before saving the setup, copying the table, or exporting the JSON report.

Interpreting Results:

The preview is the main result because aquarium ambience is judged by sight. The metrics explain why that result feels smooth, crowded, sparse, or performance-limited. Target FPS is the selected cadence cap, Measured FPS is the delivered rate from recent frames, and Quality scale shows whether drawing detail has been reduced to keep motion steady.

  • Tank Director is advisory. Its cues are strongest when they match a visible issue such as scattered lanes, sparse bubbles, or excessive glow.
  • Aquarium Signals Chart compares current readings only. It is not a timeline of the session.
  • Active fish, Active bubbles, and Jellyfish count describe scene load. They do not measure scene quality.
  • Fullscreen deserves a separate check because a larger canvas can make the same profile feel denser and cost more to render.

Do not accept a profile only because the measured frame rate is high. Smooth fish, bubbles, camera drift, and glow can still distract from text or signage when the motion pattern is too active.

Technical Details:

Browser aquarium animation is a repeated drawing process. Fish positions, bubble rise, jellyfish drift, plants, seabed detail, light rays, and water haze are updated while the scene is running, then drawn into a canvas at the current size and device pixel ratio. Larger canvases and higher pixel density increase the amount of drawing work per frame.

Scene balance comes from motion force and visual load. Current strength pushes the broad flow, turbulence adds wobble, and schooling strength pulls fish toward steadier paths. Bubble rate, bubble drift, and bubble size decide how busy the water column becomes. Camera drift, glow, haze, and light rays add depth, but they can also reduce contrast when used together.

Rule Core:

The director cues use three derived signals. They summarize lane pressure, bubble motion, and depth-effect intensity so each cue can be read as a tuning suggestion rather than a biological or physical measurement.

lane pressure = current strength+turbulence-schooling strength bubble motion load = bubble rate×bubble drift100×bubble size100 cinematic load = camera drift+16 when light rays are on+14 when haze is on

For example, current strength 70, turbulence 40, and schooling strength 15 produce lane pressure 95, which reaches the high lane-pressure warning. Bubble rate 1.60x, bubble drift 150%, and bubble size 150% produce bubble motion load 3.6, which is also above the busy-motion boundary.

Tank Director cue rules
Cue family Boundary Displayed cue
Swim lanes Lane pressure is at least 92, or Alternating current is above 1.80x swim speed Stabilize swim lanes
Swim lanes Lane pressure is at most 20 and Swim speed is below 0.85x Increase lane energy
Swim lanes Neither lane boundary applies Hold formation balance
Motion character Bubble motion load is above 1.9, or Camera drift is above 74 Trim motion character
Motion character Bubble motion load is below 0.7 and Bubble rate is below 0.60x Add ambient movement
Ambience Light rays and Water haze are off, and Water glow is below 34 Lift ambience depth
Ambience Cinematic load is above 92 and Water glow is above 76 Ease showcase intensity
Ambience Neither ambience boundary applies Polish display mood

The frame-rate setting caps playback at 30, 45, or 60 FPS. It does not force the browser to deliver that rate. When measured FPS divided by target FPS falls below 0.72, quality scale steps down by 6 percentage points toward a 68% floor. When the ratio rises above 0.95, it steps up by 4 percentage points toward 100%.

Aquarium runtime output meanings
Output Meaning Best use
Measured FPS Recent delivered frame rate while the preview is running. Checking whether the selected target is realistic on the current display.
Quality scale Adaptive drawing scale shown as a percentage. Spotting when fish count, effects, canvas size, or device load are forcing a lighter render.
Canvas size The current drawing area in CSS pixels. Comparing normal preview with fullscreen playback.
Aquarium Signals Chart Up to eight current numeric readings from metrics such as target fish count, active fish, jellyfish count, active bubbles, target FPS, measured FPS, and quality scale. Comparing current scene load at a glance, not tracking history.
Aquarium input bounds
Control Supported range or options Interpretation note
Fish count 4 to 60 fish Higher counts increase density and drawing work.
Jellyfish count 0 to 8 jellyfish Jellyfish add slow background motion that can change the feel without raising fish traffic.
Bubble size and drift 40% to 220% size, 20% to 200% drift These multipliers combine with Bubble rate in the bubble motion load.
Motion trail 8 to 40 frames Higher values leave more previous-frame persistence and softer movement trails.
Frame rate 30, 45, or 60 FPS The selected cap affects scheduling, but Measured FPS shows what is actually delivered.

Resetting the scene reseeds positions and timing. For fair comparisons, keep the same canvas size, fullscreen state, frame-rate cap, and major density settings while changing only the control family you want to test.

Limitations and Privacy Notes:

The simulator is intended for display planning and visual tuning. It does not judge real aquarium health, and browser performance can change with device load, battery state, screen size, browser throttling, and fullscreen support.

  • Use Pause when motion distracts or when a viewer may need reduced motion.
  • The selected settings, chart data, metrics, and JSON output are produced in the browser. The scene settings do not need to be uploaded for simulation.
  • Fullscreen depends on browser support and user permission. If fullscreen is unavailable, use the normal preview and rely on Canvas size to understand the drawing area.

Worked Examples:

Balanced lobby tank. Use Tropical reef, Theme mixed fish, Bidirectional flow, 18 fish, 1.00x Swim speed, 0.90x Bubble rate, Current strength 35, Schooling strength 35, Turbulence 28, two jellyfish, and 45 FPS. The expected cues are Hold formation balance, Keep movement readable, and Polish display mood. Keep the profile if Measured FPS stays close to Target FPS and Quality scale remains high in fullscreen.

Showcase tank that becomes too busy. Choose Midnight deep, Alternating current, 45 fish, 2.20x Swim speed, 1.60x Bubble rate, Current strength 70, Bubble drift 150%, Bubble size 150%, Schooling strength 15, Turbulence 40, Camera drift 80, Water glow 80, and keep haze and light rays on. The expected cues are Stabilize swim lanes, Trim motion character, and Ease showcase intensity.

Flat tank recovery. Use Shallow lagoon, Flow left, 8 fish, 0.55x Swim speed, 0.25x Bubble rate, Current strength 0, Schooling strength 10, Turbulence 10, Water glow 25, and turn off Water haze and Light rays. The expected cues are Increase lane energy, Add ambient movement, and Lift ambience depth. Raise speed toward 0.85x, add modest bubble rate, or enable one depth effect before increasing fish count.

FAQ:

Does this model real aquarium behavior?

No. It creates a stylized animated scene with fish, bubbles, jellyfish, lighting, plants, and seabed effects. It does not model species behavior, water chemistry, filtration, oxygen, or animal care.

Why does Measured FPS differ from Target FPS?

Target FPS is the chosen cap of 30, 45, or 60 FPS. Measured FPS depends on canvas size, device load, browser scheduling, fish count, bubble density, effects, and fullscreen state.

Why did a typed value change?

Numeric controls are bounded. For example, Fish count stays from 4 to 60, Jellyfish count from 0 to 8, Motion trail from 8 to 40 frames, and Frame rate resolves to 30, 45, or 60 FPS.

Does the chart show performance history?

No. Aquarium Signals Chart compares current readings from the current profile, such as active fish, active bubbles, target FPS, measured FPS, and quality scale.

Are my aquarium settings uploaded?

No server-side calculation is needed for the selected scene settings. The preview, metrics, chart data, CSV, DOCX, and JSON outputs are produced from the current browser state.

Glossary:

Lane pressure
A derived balance of current strength, turbulence, and schooling strength used to judge whether fish paths are likely to scatter or flatten.
Bubble motion load
The combined effect of bubble rate, drift, and size on how busy the water column feels.
Cinematic load
The combined depth pressure from camera drift, light rays, and haze.
Motion trail
The number of recent frames that remain visible as soft movement persistence.
Quality scale
The adaptive drawing percentage used when the preview needs to protect frame rate.
Measured FPS
The actual frame rate calculated from recent rendered preview frames.

References: