fishing-game

bySaya Sendiri

A realistic 3D fishing game where an anime warrior woman catches 128 fish species across 8 tiers, keeps them in a 3D aquarium, and upgrades rods.

No preview

Comments (0)

No comments yet. Be the first!

System Requirements

Page 1 of 19

System Requirements Document for fishing-game

1. Introduction

fishing-game is a realistic 3D fishing game. The player controls an anime warrior woman who fishes across a world of 128 fish species organized into 8 tiers, keeps every fish she catches inside a 3D aquarium, and upgrades her rods to reach deeper, harder tiers and complete the collection.

The product intent is a premium simulation experience, not a casual or cute one. The emotional register is awe at depth, current, weight and scale — a sport of patience and mastery. The catch should feel physical: a real-time 3D water surface, a lit warrior figure standing in it, and fish modelled with real anatomy. The collection is the long arc of play: 128 species across 8 tiers, each catch preserved in a 3D aquarium the player can revisit, with rod upgrades as the progression lever that opens the harder tiers.

The audience is a single active human role — the Player — who plays alone on their own device, wants the catch to feel physical, and measures success by completing the species collection across all tiers with upgraded gear.

Page 2 of 19

2. System Overview

fishing-game is delivered as a first-party custom-UI game with four destinations:

  • Landing — the anonymous public entry surface that explains the game and enters it.
  • Fishing — the 3D fishing gameplay loop where the Player controls the anime warrior woman and catches fish across the eight tiers.
  • Aquarium — the 3D aquarium that displays the Player's caught fish and supports revisiting the collection.
  • Rod Upgrades — the rod improvement decisions that increase fishing capability and support progress through the tiers.

The single accepted human actor is the Player. There are no other human roles, no multi-user collaboration, and no differentiated permissions or role-based visibility over shared state — the Player owns all of their own progression.

Current accepted behavior covers: realistic 3D presentation; the anime warrior woman as the controlled protagonist; 128 fish species; 8 tiers; catching fish; keeping caught fish in a 3D aquarium; upgrading rods; and persisting the Player's collected fish and rod upgrades on the local device so progression continues across sessions.

Narrow exclusions: no account system, no cloud sync, no social or trading features, no monetization, no additional game modes, and no species, tier, or rod content beyond the stated 128 species / 8 tiers / rod upgrade mechanic are introduced by this document.

Page 3 of 19

2a. Product Interpretation and Delivery Boundary

Delivery ownership. fishing-game is a first-party application. All four destinations — Landing, Fishing, Aquarium, Rod Upgrades — are application-owned custom pages. There is no provider-owned or external surface in the accepted scope, and no headless delivery.

Access ownership. All four destinations are reachable without an account. The Player's progression — collected fish and rod upgrades — is persisted on the local device, which is the accepted continuity mechanism. Because continuity is device-local rather than identity-bound, no sign-in, registration, invitation, or provisioning flow is required or introduced. The Landing page is the anonymous entry surface; Fishing, Aquarium, and Rod Upgrades are directly reachable game surfaces that read and write the same local progression state.

Current vs. future boundary. Everything in this document is current. No future-horizon requirements were stated by the user; nothing is deferred.

2c. Page Content and Component Coverage

Page 4 of 19

Landing

  • Information / state: The game's identity and premise — a realistic 3D fishing game starring an anime warrior woman, with 128 species across 8 tiers and a 3D aquarium collection. A champagne-gold counter panel showing 128 SPECIES / 8 TIERS. No player progression state is required to view this page.
  • Primary action: Enter the game (proceed to Fishing).
  • Supporting actions: Navigate to Aquarium; navigate to Rod Upgrades.
  • Domain entities: Species count (128), tier count (8), the warrior-woman protagonist, the 3D water environment.
  • Component responsibilities:
    • Full-bleed real-time 3D hero scene: sculpted water plane, backlit warrior woman standing thigh-deep, rod arcing left.
    • Headline CAST INTO THE DEEP in Jost 200 uppercase, flush-left, overlapped at its baseline by the water plane but never cropped or covered.
    • Curved pearl counter panel (128 SPECIES / 8 TIERS) pinned bottom-left on desktop.
    • Lens-shaped aqua primary CTA directly beneath the counter panel.
    • Curved concentric tier spiral of 8 arcs; hovering an arc lifts it and reveals that tier's species silhouettes along its length.
    • Diagonal 2px aqua flow lines at 20% opacity tracing current direction across sections.
  • States:
    • Loading: 3D scene assets stream in; headline and counter panel render immediately as readable text over the dark ground; a restrained aqua progress stroke indicates scene readiness.
    • Empty: Not applicable — the page has no collection-dependent content.
    • Success: Scene is live, headline and counter are fully readable, CTA is focusable and activatable.
    • Error: If the 3D scene fails to initialize, the page falls back to a static sculpted-curve composition with the headline, counter panel, and CTA fully intact and functional.
    • Recovery: A retry control re-attempts scene initialization without leaving the page; entry to the game remains available regardless of scene state.
    • Mobile: Warrior shifts to a tighter crop at the top third, headline stacks to three lines, counter panel docks full-width beneath the CTA.
Page 5 of 19

Fishing

  • Information / state: Current tier and its species pool; the Player's current rod and its level; the state of the active cast (idle, line out, bite, reeling, landed, lost); the identity of the fish currently on the line once it is revealed; the Player's collection progress toward 128/128.
  • Primary action: Cast, hook, and reel in a fish.
  • Supporting actions: Select the tier to fish; select which owned rod to fish with; release or keep a caught fish; leave for Aquarium or Rod Upgrades.
  • Domain entities: The anime warrior woman (controlled protagonist), rod, line, hook, fish species, tier, catch record.
  • Component responsibilities:
    • Real-time 3D fishing scene with the warrior woman as the controlled figure and a sculpted water surface with subsurface light.
    • Cast / hook / reel controls with a 1px luminous capsule edge.
    • Line-tension and depth readout using tabular Manrope numerals.
    • Curved concentric tier spiral of 8 arcs for tier selection; hovering an arc lifts it and reveals that tier's species silhouettes.
    • Catch moment presentation: a 600ms champagne-gold light pulse travelling along the line from hook to rod tip, with the species name typing on in Jost 200 uppercase at 64px.
    • Species anatomy rendering: gill plates, lateral line, wet specular highlights.
  • States:
    • Loading: Scene and tier data initialize; tier spiral and rod selector render as readable controls immediately.
    • Empty: A tier with no recorded catches shows its arcs and species silhouettes with muted slate labels and no catch marks.
    • Success: A fish is landed; the catch moment plays; the species is recorded into the collection and persisted locally; the species name and tier are shown.
    • Error: A failed cast or a lost fish resolves to a clear "lost" state with the line returned and the rod ready; no catch is recorded and no progression is lost.
    • Recovery: The Player can immediately recast from the same state; if the 3D scene fails, controls remain operable and the catch result is still recorded and persisted.
    • Reduced motion: The catch beat becomes an instant state change with no travelling light.
Page 6 of 19

Aquarium

  • Information / state: The Player's caught fish displayed in a 3D tank; collection progress (species caught out of 128, per tier); which species in each tier are still uncaught; the identity and tier of each displayed fish.
  • Primary action: View and inspect the caught-fish collection in the 3D aquarium.
  • Supporting actions: Select a fish to inspect it; switch between tiers; leave for Fishing or Rod Upgrades.
  • Domain entities: Caught fish, species, tier, collection progress, the 3D tank.
  • Component responsibilities:
    • 3D aquarium tank framed inside a curved architectural aperture.
    • Bathymetric contour lines drawn on the surrounding ground that deepen in colour as collection progress rises.
    • Curved concentric tier spiral of 8 arcs for tier navigation; hovering an arc lifts it and reveals that tier's species silhouettes.
    • Species detail presentation with real anatomy (gill plates, lateral line, wet specular highlights).
    • Tabular-numeral counters for caught / total per tier and overall.
  • States:
    • Loading: Tank and fish models stream in; counters and tier spiral render immediately as readable text.
    • Empty: With no fish caught, the tank shows an empty sculpted water volume with a clear prompt to go fishing; tier arcs show all species as uncaught in muted slate.
    • Success: Caught fish are present in the tank, selectable, and their species and tier are readable.
    • Error: If a fish model fails to load, its slot shows a labelled placeholder with the species name and tier intact rather than a broken or blank tile.
    • Recovery: Reloading the page re-reads locally persisted collection state; no catch is lost by a display failure.
Page 7 of 19

Rod Upgrades

  • Information / state: The Player's currently owned rods and their levels; the upgrade path and cost for each rod; the effect of an upgrade on fishing capability; which rods are locked, available, or maxed.
  • Primary action: Upgrade a rod.
  • Supporting actions: Compare rods; select which rod to fish with; leave for Fishing or Aquarium.
  • Domain entities: Rod, rod level, upgrade cost, rod rarity, fishing capability.
  • Component responsibilities:
    • Engineering spec-sheet layout on the dark ground: hairline dividers, tabular numerals, aligned label/value pairs.
    • Rod rarity marked with the single warm champagne-gold accent.
    • Upgrade controls as capsule or lens shapes with a 1px luminous edge.
    • Disabled rods rendered in muted slate.
  • States:
    • Loading: Rod data reads from local persistence; the spec table renders with readable labels and values.
    • Empty: With no upgrades yet applied, the starting rod is shown at its base level with its upgrade path visible.
    • Success: An upgrade is applied; the rod's level and capability update; the change is persisted locally; the new level is shown in tabular numerals.
    • Error: An upgrade that cannot be applied (insufficient progress or an unavailable rod) leaves the rod unchanged and states why, with the rod's current level still readable.
    • Recovery: The Player can return to Fishing and earn what is needed, then return; persisted rod state is re-read on revisit.
Page 8 of 19

3. Functional Requirements

FR-1 — Realistic 3D presentation As a Player, I should experience the game as a realistic 3D presentation, so that the fishing feels physical rather than flat.

  • Provenance: explicit.
  • Trigger/input: Entering any game surface.
  • Observable result: The game renders in real time in 3D with realistic materials — a sculpted water surface with subsurface light, wet specular highlights, and fish modelled with real anatomy (gill plates, lateral line).
  • Access state: No account required.
  • Failure/recovery: If real-time 3D cannot initialize, the surface falls back to a static sculpted composition with all readable text and controls intact and operable.
  • Continuation: The Player proceeds with the game loop from the same surface.

FR-2 — Anime warrior woman as the controlled protagonist As a Player, I should control an anime warrior woman as the protagonist, so that the character I fish with is the one the game is built around.

  • Provenance: explicit.
  • Trigger/input: Entering Fishing.
  • Observable result: The anime warrior woman is the lit figure the Player controls inside the sculpted 3D environment; she is rendered at game fidelity, not as flat art.
  • Access state: No account required.
  • Failure/recovery: If her model fails to load, the fishing controls remain operable and the catch result is still recorded.
  • Continuation: The Player casts and fishes with her.

FR-3 — 128 fish species As a Player, I should be able to catch 128 distinct fish species, so that the collection has a defined, completable scope.

  • Provenance: explicit.
  • Trigger/input: Fishing across the tiers.
  • Observable result: The game contains exactly 128 fish species; each caught species is recorded individually and counted toward 128/128.
  • Access state: No account required.
  • Failure/recovery: A failed or lost catch records nothing and does not alter the species count.
  • Continuation: The Player continues fishing for uncaught species.

FR-4 — 8 tiers As a Player, I should see the 128 species organized across 8 tiers, so that progression has structure and difficulty.

  • Provenance: explicit.
  • Trigger/input: Viewing tier navigation on Fishing, Aquarium, or Landing.
  • Observable result: The species are divided into exactly 8 tiers; tier navigation is presented as a curved concentric spiral of 8 arcs, and hovering an arc lifts it and reveals that tier's species silhouettes along its length.
  • Access state: No account required.
  • Failure/recovery: If tier data fails to load, the tier spiral renders with muted slate labels and retries without blocking fishing.
  • Continuation: The Player selects a tier and fishes it.

FR-5 — Catch fish As a Player, I should cast, hook, and reel in fish, so that I can build my collection.

  • Provenance: explicit.
  • Trigger/input: The Player casts, hooks a bite, and reels.
  • Observable result: A fish is landed and its species is revealed; the catch moment plays as a 600ms champagne-gold light pulse travelling along the line from hook to rod tip while the species name types on in Jost 200 uppercase at 64px.
  • Access state: No account required.
  • Failure/recovery: A failed cast or a lost fish resolves to a clear "lost" state with the line returned and the rod ready; nothing is recorded.
  • Continuation: The Player recasts immediately from the same state.
  • Reduced motion: The catch beat becomes an instant state change with no travelling light.

FR-6 — Keep caught fish in a 3D aquarium As a Player, I should have my caught fish kept in a 3D aquarium, so that my collection is something I can see and revisit.

  • Provenance: explicit.
  • Trigger/input: Landing a fish, then visiting Aquarium.
  • Observable result: Each caught fish is displayed in the 3D aquarium tank, framed inside a curved architectural aperture, with bathymetric contour lines on the surrounding ground that deepen in colour as collection progress rises.
  • Access state: No account required.
  • Failure/recovery: If a fish model fails to load, its slot shows a labelled placeholder with the species name and tier intact.
  • Continuation: The Player selects a fish to inspect it, or returns to Fishing.

FR-7 — Upgrade rods As a Player, I should be able to upgrade my rods, so that I can increase my fishing capability and progress through the tiers.

  • Provenance: explicit.
  • Trigger/input: The Player selects a rod and applies an upgrade on Rod Upgrades.
  • Observable result: The rod's level and fishing capability increase; the change is presented in an engineering spec-sheet layout with hairline dividers and tabular numerals, with rod rarity marked in champagne-gold.
  • Access state: No account required.
  • Failure/recovery: An upgrade that cannot be applied leaves the rod unchanged and states why, with the current level still readable.
  • Continuation: The Player returns to Fishing with the improved rod, or continues upgrading.

FR-8 — Persist collection and rod upgrades on the local device As a Player, I should have my collected fish and rod upgrades persisted on my local device, so that my progression continues across sessions.

  • Provenance: required_inference (required to make the accepted current journeys executable without adding a product capability).
  • Trigger/input: Any catch recorded or upgrade applied.
  • Observable result: Collected fish and rod upgrades are written to local device storage and re-read on the next session, so the collection and rod levels are the same when the Player returns.
  • Access state: No account required; continuity is device-local, not identity-bound.
  • Failure/recovery: If a write fails, the in-session state remains correct and the write is retried; a display failure never destroys persisted progression.
  • Continuation: The Player resumes from their persisted collection and rod levels.
Page 9 of 19

4. User Personas

Page 10 of 19

Player

Product context. The Player is the single active human role in fishing-game. They play alone, on their own device, and they want the catch to feel physical: a real-time 3D water surface, a lit warrior figure standing in it, and fish with real anatomy. They are not looking for a cute or casual experience — the register they want is awe at depth, current, weight and scale, a sport of patience and mastery.

Primary goal. Complete the species collection — all 128 species across all 8 tiers — with upgraded gear.

Distinct accepted responsibilities.

  • Controlling the anime warrior woman and fishing: casting, hooking, and reeling in fish across the eight tiers.
  • Building and revisiting the collection: keeping every caught fish in the 3D aquarium and inspecting what has been caught and what remains.
  • Making rod upgrade decisions: choosing which rod to improve and applying upgrades that raise fishing capability and open harder tiers.
  • Managing their own progression continuity: their collected fish and rod upgrades persist on their local device so they can resume across sessions.

Relevant inputs or decisions. Which tier to fish; which owned rod to fish with; when to cast, hook, and reel; whether to keep or release a landed fish; which rod to upgrade and when; which caught fish to inspect.

Interactions with other accepted participants. None. The Player is the only accepted human actor; there are no other human participants, no counterparties, and no shared state with other people. All progression state is the Player's own and is held on their local device.

Observable success. The species counter reaches 128/128 across all 8 tiers, with the completion state marked in champagne-gold, achieved using upgraded rods.

Source-backed constraints. The Player's progression is device-local; no account, sign-in, or cloud continuity is part of the accepted scope.

Page 11 of 19

5. Core User Flows

Flow 1 — Enter the game from the Landing page

  1. The Player opens fishing-game and arrives at Landing without an account.
  2. The full-bleed 3D hero scene loads: the warrior woman stands thigh-deep in dark water at the right third, backlit, her rod arcing left, with the water surface curving up to become the page background.
  3. The Player reads the headline CAST INTO THE DEEP in Jost 200 uppercase, flush-left, overlapped at its baseline by the water plane but never cropped or covered, and the champagne-gold counter panel reading 128 SPECIES / 8 TIERS.
  4. The Player hovers a tier arc on the curved concentric spiral; the arc lifts and reveals that tier's species silhouettes along its length.
  5. The Player activates the lens-shaped aqua CTA beneath the counter panel and enters Fishing.
  6. Failure/recovery: If the 3D scene fails to initialize, the page falls back to a static sculpted-curve composition with the headline, counter panel, and CTA fully intact; the Player can still enter the game, and a retry control re-attempts scene initialization without leaving the page.
  7. Next step: The Player is on Fishing, ready to cast.

Flow 2 — Catch a fish

  1. The Player is on Fishing, controlling the anime warrior woman in the real-time 3D scene.
  2. The Player selects a tier from the curved concentric tier spiral of 8 arcs; the selected arc lifts and shows that tier's species silhouettes.
  3. The Player selects which owned rod to fish with.
  4. The Player casts. The line goes out over the sculpted water surface with subsurface light.
  5. A bite occurs. The Player hooks and reels, reading line tension and depth in tabular numerals.
  6. The fish is landed. The catch moment plays: a 600ms champagne-gold light pulse travels along the line from hook to rod tip while the species name types on in Jost 200 uppercase at 64px. The fish is shown with real anatomy — gill plates, lateral line, wet specular highlights.
  7. The species is recorded into the collection and persisted to the local device. The Player's progress toward 128/128 updates.
  8. Failure/recovery: If the cast fails or the fish is lost, the state resolves clearly to "lost", the line returns, the rod is ready, and nothing is recorded. The Player recasts immediately from the same state.
  9. Reduced motion: The catch beat becomes an instant state change with no travelling light; the species name and result still appear.
  10. Next step: The Player recasts for another species, or leaves for Aquarium or Rod Upgrades.
Page 12 of 19

Flow 3 — Revisit the collection in the 3D aquarium

  1. The Player navigates to Aquarium.
  2. The 3D tank is framed inside a curved architectural aperture; the surrounding ground carries bathymetric contour lines that deepen in colour as collection progress rises.
  3. The Player sees their caught fish in the tank and reads their progress: species caught out of 128, per tier and overall, in tabular numerals.
  4. The Player selects a fish to inspect it; its species name, tier, and anatomy are shown.
  5. The Player switches tiers using the curved concentric tier spiral; hovering an arc lifts it and reveals that tier's species silhouettes, with uncaught species shown in muted slate.
  6. Empty state: If no fish have been caught yet, the tank shows an empty sculpted water volume with a clear prompt to go fishing, and all tier arcs show species as uncaught.
  7. Failure/recovery: If a fish model fails to load, its slot shows a labelled placeholder with the species name and tier intact. Reloading re-reads locally persisted collection state; no catch is lost by a display failure.
  8. Next step: The Player returns to Fishing to pursue uncaught species, or goes to Rod Upgrades.

Flow 4 — Upgrade a rod

  1. The Player navigates to Rod Upgrades.
  2. The Player sees their owned rods presented as an engineering spec sheet on the dark ground: hairline dividers, tabular numerals, aligned label/value pairs, with rod rarity marked in champagne-gold and disabled rods in muted slate.
  3. The Player compares rods and reads the upgrade path and cost for each, and the effect of an upgrade on fishing capability.
  4. The Player selects a rod and applies an upgrade.
  5. The rod's level and fishing capability increase; the new level is shown in tabular numerals, and the change is persisted to the local device.
  6. Failure/recovery: If the upgrade cannot be applied, the rod is left unchanged and the reason is stated, with the current level still readable.
  7. Next step: The Player returns to Fishing with the improved rod to reach harder tiers, or continues upgrading.

Flow 5 — Resume progression in a later session

  1. The Player closes the game and later reopens it on the same device.
  2. The game re-reads the locally persisted collection and rod upgrades.
  3. The Player's caught species, per-tier progress toward 128/128, and rod levels are the same as when they left.
  4. Failure/recovery: If a persistence write failed earlier, the in-session state was still correct and the write was retried; a display failure never destroyed persisted progression.
  5. Next step: The Player continues from Fishing, Aquarium, or Rod Upgrades exactly where their progression left off.
Page 13 of 19

6. Visuals Colors and Theme

Muse and headline. Zaha Hadid — Fluid parametric grandeur: the water itself is the architecture. The design language is continuous, flowing surfaces and dramatic negative space: the vocabulary of water, depth and current, giving the 128-species collection an architectural, museum-grade frame rather than a card grid, and keeping the anime warrior woman as a lit figure inside a sculpted environment.

Colour tokens (dark mode).

RoleHexUsage
Background#0A1216Deep abyssal ground; carries 60% of every screen
Surface#121E24Sculpted pearl-white panels, with #EDF3F2 hairlines
Text#EDF3F2Body and display text
Primary#7FE3D4Luminous pearl-aqua: current lines, tier rings, interactive strokes — never a fill behind body copy
Accent#E9C46AWarm champagne-gold, reserved for the catch moment, rod rarity, and the 128/128 completion state
Muted#7C8F94Metadata, tier labels, disabled rods

Contrast: #EDF3F2 on #0A1216 is ~15:1; #0A1216 on #7FE3D4 is ~11:1 — both safe at body size.

Typography.

  • Headings: Jost, weight 200–300, uppercase for tier and species names, tracking opened to 0.08em, leading tight at 0.92 for display lines. Architectural, not shouty: thin strokes at enormous scale, with a single heavy weight (600) reserved for numbers — species count, depth in metres, rod level.
  • Body: Manrope.
  • Scale, 1.333 modular: display clamp(56px, 9vw, 128px) / h2 clamp(32px, 5vw, 64px) / h3 clamp(22px, 3vw, 34px) / body 17px / label 13px uppercase tracked / mono numerals via tabular Manrope for counters.

Shape language. Continuous curvature everywhere: section boundaries are sweeping arcs, not straight rules; panels are large-radius organic capsules (radius 28–64px) that appear extruded from one surface. Tier rings are concentric arcs, not pills. Buttons are capsule or lens shapes with a 1px luminous edge. No hard 90° corner appears anywhere in the interface chrome. Diagonal flow lines (2px, 20% opacity aqua) trace the direction of current across sections.

Layout. Asymmetric architectural grid: a 12-column field where content occupies 7 columns and the remaining 5 are dramatic negative space or a bleeding 3D scene. Section transitions are curved boundaries that overlap by 40–80px, so the page reads as one continuous sculpted surface rather than stacked blocks. The species collection is a curved tier spiral on desktop and a vertically scrolling arc on mobile — never a uniform grid of identical tiles. Rod upgrades are a ruled spec table with hairline dividers against the dark ground, aligned like an engineering document.

Imagery. Real-time 3D is the primary imagery: a sculpted water surface with subsurface light, a low-poly-real anime warrior woman rendered at game fidelity standing in the shallows, and fish modelled with real anatomy — gill plates, lateral line, wet specular highlights. Supporting 2D imagery is limited to topographic depth lines, bathymetric contour art and macro material studies of rod blanks (carbon weave, cork, titanium guides). No flat clip art, no gradient blobs, no stock photography.

Readable text and controls. Headlines, wordmarks, labels, numbers, cards' text and controls stay entirely inside the viewport and their container at 375px, 768px and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element covers any part of them. Imagery, decoration and motion may be cropped, bled off an edge, rotated, overlapped or cut exactly as the direction asks, as long as it covers no readable text or control.

Page 14 of 19

7. Signature Design Concept

The water becomes the page.

The public entry — Landing — is a full-bleed real-time 3D scene occupying the entire first viewport. The anime warrior woman stands thigh-deep in dark water at the right third, backlit, her rod arcing left; her silhouette is the dominant element at roughly 70vh. The water surface is a single continuous sculpted plane that curves up and physically becomes the page background itself — page chrome and environment are one continuous surface, so the section boundary behind the headline is not a divider but the same water.

The headline CAST INTO THE DEEP is set in Jost 200, uppercase, clamp(56px, 9vw, 128px), flush-left, and is deliberately overlapped by the water plane at its baseline so the type appears to stand in the water. The type sits in front of the scene, never behind it, and no letter is cropped or covered.

A champagne-gold counter panel — 128 SPECIES / 8 TIERS — sits in a curved pearl panel pinned bottom-left, with the primary CTA as a lens-shaped aqua button directly beneath it. Tier navigation is a curved concentric spiral of 8 arcs rather than a row of pills; hovering an arc lifts it and reveals that tier's species silhouettes along its length.

On mobile the warrior shifts to a tighter crop at the top third, the type stacks to three lines, and the counter panel docks full-width beneath the CTA.

This concept only recomposes accepted content, states and controls: the game's premise, the 128/8 counts, the tier spiral, and entry into Fishing.

Page 15 of 19

8. Interaction Model & Motion Direction

Interaction Model: Animated Motion Tempo: cinematic Hero Dimensionality: webgl

Landing Hero Motion Brief

  • Focal subject: The anime warrior woman standing thigh-deep in dark water, backlit, her rod arcing left, on a single continuous sculpted water plane that curves up and becomes the page background.
  • Input → transformation → outcome thesis: As the Player scrolls, the camera drifts slowly across the 3D water surface; the curved section boundaries morph and flex as they enter the viewport, and the water plane that carries the headline resolves into the next section's ground — so the Player's scroll moves them through the water rather than past a stack of blocks, arriving at the tier spiral and the entry CTA.
  • Motion vocabulary: Cinematic and slow — scroll-scrubbed camera drift, morphing curved section boundaries, 900–1400ms cubic-bezier(0.16, 1, 0.3, 1) easing. The catch moment is the one expressive beat: a 600ms arc of champagne-gold light travelling along the line into the rod tip. No bouncy spring easing, no confetti bursts, no playful particle effects.
  • Composed first frame: Full-bleed dark water (#0A1216) with the warrior woman at the right third at ~70vh, backlit; CAST INTO THE DEEP flush-left in Jost 200 uppercase, its baseline overlapped by the water plane but no letter cropped or covered; the champagne-gold 128 SPECIES / 8 TIERS counter panel pinned bottom-left in a curved pearl capsule; the lens-shaped aqua CTA directly beneath it; 2px aqua flow lines at 20% opacity tracing current across the surface.
  • Reduced-motion state: Under prefers-reduced-motion the scene holds a fixed camera, all morphing resolves to static curves, and the catch beat becomes an instant state change with no travelling light. Readable text and controls remain whole and fully visible.
Page 16 of 19

9. Non-Functional Requirements

NFR-1 — Realistic 3D rendering. The game must render in real time in 3D with realistic presentation: a sculpted water surface with subsurface light, wet specular highlights, and fish modelled with real anatomy (gill plates, lateral line). Provenance: explicit. Rationale: the user requires a realistic 3D fishing game.

NFR-2 — 3D aquarium. The aquarium must be a 3D tank, framed inside a curved architectural aperture. Provenance: explicit. Rationale: the user requires caught fish to be kept in a 3D aquarium.

NFR-3 — Fixed content counts. The game contains exactly 128 fish species divided into exactly 8 tiers. Provenance: explicit. Rationale: explicit hard constraints in the authoritative user evidence.

NFR-4 — Local device persistence. Collected fish and rod upgrades must persist on the local device so progression continues across sessions. Provenance: required_inference. Rationale: required to make the accepted current journeys executable without adding a product capability; continuity is device-local, not identity-bound.

NFR-5 — No account requirement. No destination requires an account, sign-in, registration, invitation, or provisioning. Provenance: required_inference from the accepted access contract. Rationale: continuity is device-local, so no identity is indispensable.

NFR-6 — Readable text and controls at every viewport. Headlines, wordmarks, labels, numbers, cards' text and controls stay entirely inside the viewport and their container at 375px, 768px and 1280px, wrapping or scaling to fit, and no other element covers any part of them. Provenance: explicit creative direction. Rationale: the direction's readability rule takes precedence over any cropping gesture.

NFR-7 — Reduced-motion support. Under prefers-reduced-motion, the scene holds a fixed camera, all morphing resolves to static curves, and the catch beat becomes an instant state change with no travelling light; moving and scrollable content stops and shows whole items. Provenance: explicit creative direction.

NFR-8 — Accessible contrast. #EDF3F2 on #0A1216 (~15:1) and #0A1216 on #7FE3D4 (~11:1) are both safe at body size. Provenance: explicit creative direction.

Page 17 of 19

10. Tech Stack

  • React with React Three Fiber / WebGL for the real-time 3D scenes — the Landing hero, the Fishing scene, and the 3D aquarium. Rationale: the creative direction specifies hero dimensionality webgl and real-time 3D as the primary imagery; the accepted behavior requires realistic 3D presentation and a 3D aquarium.
  • Python / FastAPI for the application service layer. [Default — not specified by user]
  • Local device storage for persisting collected fish and rod upgrades. Rationale: the accepted continuity mechanism is device-local; no server-side account or cloud store is in scope.
  • Docker / docker-compose for local packaging and running the application. [Default — not specified by user]
  • Kubernetes is not required: the accepted scope is a single-player, device-local game with no deployment requirement stated by the user.
Page 18 of 19

11. Assumptions and Constraints

Constraints (source-backed, binding).

  • Fish species count is exactly 128.
  • Fish species are divided into exactly 8 tiers.
  • The aquarium is 3D.
  • The game is 3D and realistic in presentation.
  • The protagonist is an anime warrior woman.
  • Rods can be upgraded.
  • The palette, typography, shape language, layout, motion and imagery follow the supplied creative direction; the generic indigo/blue-on-white SaaS template is forbidden.

Assumptions (narrow, labeled).

  • [Default — not specified by user] The Player plays alone on a single device; there is no multiplayer, trading, or shared-state feature.
  • [Default — not specified by user] Progression continuity is device-local, so no account, sign-in, or cloud sync is introduced.
  • [Default — not specified by user] The specific 128 species names, their per-tier distribution, and the specific rod upgrade costs and levels are content to be authored; this document fixes only the counts, the tier structure, and the upgrade mechanic.
  • [Default — not specified by user] The application service layer uses Python/FastAPI and packaging uses Docker/docker-compose; these are defaults, not user-stated choices.

Exclusions.

  • No account system, registration, invitation, or provisioning flow.
  • No cloud sync or cross-device progression.
  • No social, trading, or multiplayer features.
  • No monetization.
  • No additional game modes.
  • No species, tiers, or rod content beyond the stated 128 species / 8 tiers / rod upgrade mechanic.
Page 19 of 19

12. Glossary

  • Player — The single active human role; plays the game as the anime warrior woman, catches fish, keeps them in the aquarium, and upgrades rods.
  • Anime warrior woman — The protagonist the Player controls; rendered at game fidelity as a lit figure inside the sculpted 3D environment.
  • Species — One of exactly 128 distinct fish types the Player can catch; each is recorded individually toward 128/128.
  • Tier — One of exactly 8 groupings of the 128 species; presented as a curved concentric spiral of 8 arcs.
  • Catch moment — The one expressive beat: a 600ms champagne-gold light pulse travelling along the line from hook to rod tip while the species name types on in Jost 200 uppercase at 64px.
  • Aquarium — The 3D tank, framed inside a curved architectural aperture, where caught fish are kept and revisited.
  • Rod — The Player's fishing gear; rods have levels and rarity, and can be upgraded to increase fishing capability.
  • Rod upgrade — The application of an improvement to a rod that raises its level and fishing capability, presented as an engineering spec sheet.
  • Local device persistence — The accepted continuity mechanism: collected fish and rod upgrades are stored on the Player's own device and re-read across sessions.
  • Tier spiral — The curved concentric navigation of 8 arcs used for tier selection; hovering an arc lifts it and reveals that tier's species silhouettes along its length.

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Arrive anonymously
Landing: Read headline and counters
Landing: Hover tier arc
Landing: Enter the game
Landing: Retry scene initialization
Fishing: 1. Select tier to fish
Fishing: 2. Select owned rod
Fishing: 3. Cast line
Fishing: 4. Hook bite and reel
Fishing: 5. Watch catch moment play
Fishing: 6. Recast after lost fish
Aquarium: 7. View caught fish in tank
Aquarium: 8. Select fish to inspect
Aquarium: 9. Switch tier to view progress
Rod Upgrades: 10. Compare rods and costs
Rod Upgrades: 11. Apply rod upgrade
Rod Upgrades: 12. Read upgrade refusal reason
Fishing: 13. Resume at persisted collection

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Arrive anonymously
Landing: Read headline and counters
Landing: Hover tier arc
Landing: Enter the game
Landing: Retry scene initialization
Fishing: 1. Select tier to fish
Fishing: 2. Select owned rod
Fishing: 3. Cast line
Fishing: 4. Hook bite and reel
Fishing: 5. Watch catch moment play
Fishing: 6. Recast after lost fish
Aquarium: 7. View caught fish in tank
Aquarium: 8. Select fish to inspect
Aquarium: 9. Switch tier to view progress
Rod Upgrades: 10. Compare rods and costs
Rod Upgrades: 11. Apply rod upgrade
Rod Upgrades: 12. Read upgrade refusal reason
Fishing: 13. Resume at persisted collection