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
:

An aquarium screensaver works when the scene feels alive without becoming visually noisy. Fish need enough motion to avoid looking static, bubbles need enough variation to create depth, and the background needs enough contrast that the loop still reads clearly on the display where it will run.

The useful question is not whether the tank has the most fish or the brightest glow. A calm lobby screen, a stream backdrop, and a decorative wall display all need different balances of density, speed, water texture, and frame rate. A setting that looks rich in a small preview can feel too busy once it is enlarged or placed behind text.

Aquarium scene diagram showing swim direction, bubbles, and fish density as separate tuning ideas.

Aquarium-style animation also needs a little restraint. Strong current, high turbulence, large bubbles, and camera drift can all make the water feel active, but those same choices can fight captions, signage, or nearby dashboard widgets. The best profile is usually the one that stays readable after several minutes, not the one that has the strongest first impression.

The scene is a stylized display loop rather than a model of real aquatic behavior. It is useful for choosing a screensaver mood and documenting the settings behind it, not for aquarium care, animal behavior, or physical water simulation.

How to Use This Tool:

Start with the live preview and make broad scene choices before fine-tuning motion texture.

  1. Choose Theme, Fish profile, and Swim direction. These set the tank mood, fish palette, and basic flow before density or performance controls matter.
  2. Set Fish count, Swim speed, and Bubble rate. Use lower values for calm backgrounds and higher values only when the preview is meant to be the main visual.
  3. Open Advanced for current, fish size, bubble size, bubble drift, schooling, turbulence, jellyfish count, seabed style, glow, camera drift, motion trail, and water effects. Change one cluster at a time so the cause of any visual clutter stays obvious.
  4. Use Start, Pause, and Reset to inspect the loop. Reset reseeds fish, bubbles, jellyfish, and timing while keeping the selected controls.
  5. Check Tank Metrics after large changes. Measured FPS, Quality scale, Active bubbles, Canvas size, and Fullscreen show whether the scene is still stable on the current display.
  6. Review Aquarium Signals Chart and Tank Director. If the cue asks you to stabilize lanes or trim motion, reduce current, turbulence, bubble drift, camera drift, or speed before adding more effects.
  7. Run one Fullscreen pass before keeping the profile. A larger canvas can change density, performance, and the perceived calmness of the same settings.

If a typed or restored numeric value falls outside the supported range, the visible control settles back into its valid limit. Re-check the displayed number before judging the preview.

Interpreting Results:

The preview is the main judgment surface, but the metrics explain why a scene feels calm, crowded, or performance-limited. Target FPS is the requested cadence, Measured FPS is what the browser is actually delivering, and Quality scale shows whether the drawing load has been reduced to protect motion.

  • Tank Director is advisory. Trust a cue when its rationale matches what you see in the preview.
  • Aquarium Signals Chart compares current readings; it is not a history graph.
  • Active fish, Active bubbles, and Active jellyfish are density signals, not quality scores.
  • Fullscreen changes the canvas size, so a final large-view check carries more weight than a small preview check.

A high-density tank can still be a poor screensaver if it keeps dropping quality or distracts from text. Verify smoothness, readability, and the director cue stack together.

Technical Details:

Browser aquarium scenes are assembled from repeated frame updates. Fish move across bounded swim lanes, bubbles rise from the lower part of the frame, jellyfish drift more slowly, and optional haze, plants, light rays, seabed, and glow change the perceived depth. The scene is redrawn continuously while running, which is why speed, current, turbulence, and visual-effect controls change the preview immediately.

Motion clarity depends on how the forces combine. Direction sets the broad flow, current adds side drift, schooling pulls fish toward a more coherent band, and turbulence adds wobble. Bubble rate, bubble size, and bubble drift affect how busy the water column becomes, while motion trail changes how much of the previous frame remains visible.

Rule Core:

The three Tank Director rows come from derived scores that group many controls into lane stability, motion character, and ambience depth.

flow pressure = current strength+turbulence-schooling strength bubble load = bubble rate×bubble drift100×bubble size100 ambience load = camera drift+light rays bonus+haze bonus
Aquarium director rule thresholds
Cue family Condition What the cue means
Swim lanes Flow pressure at or above 92, or alternating direction above 1.80x speed Fish paths may look scattered; reduce current or turbulence, or raise schooling.
Swim lanes Flow pressure at or below 20 while speed is below 0.85x The tank may feel static; add modest speed or current.
Motion character Bubble load above 1.9, or Camera drift above 74 The water column may compete with captions or overlays.
Motion character Bubble load below 0.7 and Bubble rate below 0.60x The loop may need more small movement to avoid looking flat.
Ambience Light rays and Water haze both off with Water glow below 34 Depth cues are minimal; add haze, light rays, or glow.
Ambience Ambience load above 92 with Water glow above 76 Effects are stacked and may wash out the tank.
Aquarium performance interpretation fields
Output Meaning Use it for
Measured FPS Delivered frame rate from the recent running preview. Checking whether the target cadence is realistic.
Quality scale Adaptive drawing load, shown as a percentage. Spotting when the scene is too heavy for the current display size.
Canvas size The current drawing area in pixels. Comparing normal preview with fullscreen playback.
Tank Director Three priority cues with rationale. Choosing which control family to adjust first.

For accessibility, any long-running moving scene should be easy to pause. The preview includes a visible pause control, and the motion can also be reset before comparing a new profile.

Worked Examples:

Balanced lobby tank. Use Tropical reef, Theme mixed fish, Bidirectional flow, 18 fish, 1.00x speed, 0.90x Bubble rate, Current strength 35, Schooling strength 35, Turbulence 28, two jellyfish, and 45 FPS. The expected cue stack is Hold formation balance, Keep movement readable, and Polish display mood. Confirm that Measured FPS stays close to target before moving to fullscreen.

Showcase scene that gets too busy. Choose Midnight deep, Alternating current, 45 fish, 2.20x speed, Bubble rate 1.60x, Current strength 70, Bubble drift 150%, Bubble size 150%, Schooling strength 15, Turbulence 40, Camera drift 80, Water glow 80, Water haze on, and Light rays on. Stabilize swim lanes, Trim motion character, and Ease showcase intensity are likely because the scene has stacked motion and glow. Reduce current, turbulence, or bubble movement if the loop needs to sit behind text.

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

FAQ:

Does this model a real aquarium?

No. It creates a stylized display scene with fish, bubbles, jellyfish, seabed effects, and water lighting. It does not model species behavior, filtration, chemistry, 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, fish count, bubbles, effects, and fullscreen state.

Why did my typed value change?

Numeric controls are bounded. 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 a history of the tank?

No. Aquarium Signals Chart compares current numeric readings such as target FPS, measured FPS, quality scale, active fish, active bubbles, and jellyfish count.

Are my aquarium settings uploaded?

Scene generation, metrics, chart data, and JSON output are produced in the browser. The simulator does not upload your chosen scene settings for processing.

Glossary:

Schooling strength
How strongly fish are pulled toward a shared swim lane.
Bubble load
The combined bubble rate, drift, and size pressure used by the motion cue.
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 recently rendered preview frames.

References: