forked from CIS-5660-Fall-2025/final-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Week 1
Gavin-Sears edited this page Dec 22, 2025
·
5 revisions
Grass, Egeria Densa, Barclaya Longfolia, driftwood, and simple sand floor created. Plants "sway" and users can use the GUI to change height, density, spacing of plants.
create_ring(), fill_ring_pole() (& fill_ring_fan()), extrude_ring(), CatmullRom Splines (SplineVec3), and create_ring_spline() implemented. Final result is function that takes in spline for scale and position, outputs manifold mesh of extruded rings, with poles used to fill ends.
- 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.
- Continue developing tools to create fish geometry
So far, I’ve focused on getting the core pieces in place, even if the visuals are still a bit rough:
- Tank + camera
- Orbit camera with zoom, damping, and reset.
- Responsive canvas that resizes with the window.
Procedural tank floor
- WebGL floor mesh with heightfield “sand” noise.
- The floor exposes its params (amp / scale / yOffset) so other systems can sit nicely on top of it.
Plant system
- Instanced grass blades with per-instance base position, height, phase, sway amplitude, and hue.
- Additional plant layers blocked out: egeria and barclaya, each with their own regenerate() and parameter sliders.
Decorations (first pass)
- Driftwood generators that respect the collision grid.
What’s still very WIP:
- The shaders are mostly utilitarian right now—lighting and fog work, but the materials are flat.
- Interaction is minimal (mostly camera + parameter sliders).
What’s giving me trouble?
- Balancing collision spacing vs. density: if I’m too strict, the tank feels empty; if I’m too loose, objects intersect.
- Designing APIs for each layer so it can share state (tank bounds, floor offset, collision info) without everything becoming spaghetti.
So far, I have:
- developed basic tools needed to procedurally model fish
- created a catalog of drawings of fish body parts/anatomy
What’s giving me trouble?
- Fish geometry will be much more time consuming than originally planned
How should I Change my approach?
- Simplify/downgrade planned variety
- Accept that my progress may not be as visible until later on in the project
⋆。˚ °‧ 𓆝 𓆟 𓆞 𓆝 𓆟 ·。⋆。˚