Skip to content
Gavin-Sears edited this page Dec 22, 2025 · 6 revisions

Goal: Interactivity + More Animations for Fish, Tank Environment

Screenshot 2025-12-01 at 8 37 15 PM
  • Updated the UI so the menus are now icons that open as drawers on the left.
  • Tank now has glass walls and "water" on top
  • Fish is shaded and sliders to adjust the body are improved.

Accomplished some of the goals from last week:

  • ✔️ Add noise function to map where plants appear in the tank.
  • ✖️ Ensure plants don't drift outside of the tank "wall"
  • ✖️ Ensure elements in tank don't intersect with each other (realism!)
  • ✔️ Add fish house element and update simple sand floor to be a sand -> gravel slider.

Becca is not sure how to really do the intersection code, but provided a hacky way to ensure plants don't drift outside the glass by moving their spawn locations! Gavin thinks that Becca can totally do it! This just wasn't as big of a priority with the short timeframe, so it may get added in the future.

Milestone 2: Implementation part 2 (due 11/24)

Becca's Reflection:

Completed core plant layers

  • Egeria, barclaya, and multiple coral types (fan + staghorn + reef) are now fully hooked up with UI:
  • Sliders for count, radius / size, branching, and node counts.
  • All use the shared collision grid to (technically) avoid overlapping each other and the decorations. Still WIP.
  • A “scatter” and “regenerate everything” workflow so the whole tank can be re-rolled with one click.

Richer decorations

  • Driftwood: gnarl, twist, detail, grain frequency, and warm/cool controls.
  • Boulder fields with adjustable count and regeneration.
  • A pineapple "fish house" decoration with stack height, radius, and leafy growth on top.

Treasure chest:

  • Random placement via collision system.
  • Sliders for treasure amount, rotation, bubble count.

Bubbles + chest interaction

  • A bubble particle layer that spawns from the chest and from user interactions.
  • Clicking the tank floor in interaction mode spawns “puffs” of bubbles.

Critter prototypes

  • Hermit crab with a multi-sphere shell and body/leg breakdown (body/head, legs+claws, shell) for shading.

What I had to cut (and why)

  • True volumetric caustics / god-rays. I experimented with more complex water caustic effects, but couldn't get it looking good. I kept a simpler lighting model for now.

Gavin's Reflection:

Completed fish geometry, shaders

  • Controls for size and shape of fins (dorsal, caudal, pectoral, pelvic, and anal fins)
  • fish color shaders using trig functions for stripes, fbm and grid-based approach for body/scale colors, plus procedural palette generation
  • fish animation shaders using labels and pivots as geometry attributes, allows for symmetrical fin movement and eye controls

What I had to cut (and why)

  • Fin types - designing the shapes and modifying existing tools to get proper geometry would be too time consuming, and less interesting than adding animations
fish-swimming.mp4

Clone this wiki locally