Page 1 of 17
System Requirements Document for game-kultivasi
1. Introduction
game-kultivasi is a cultivation game — a xianxia / idle-progression experience in which a player grows a cultivator through progression stages and breakthrough thresholds. The product intent is the feeling of slow, meditative, exponential growth: qi accumulating, meridians opening, and breakthroughs that land as cosmic events rather than arcade wins.
The audience is genre-literate players who already know the vocabulary of stages, breakthroughs, and tribulations, and who want the game's interface to feel like a sacred instrument panel rather than a mobile-game dashboard. The emotional register is awe, patience, and ritual anticipation — not twitch reflex.
The product is delivered as a first-party web application with application-owned player identity, a custom interface, and backend integration that persists each player's cultivation progress across sessions.
Page 2 of 17
2. System Overview
game-kultivasi is a single-player cultivation game delivered as a custom web application. A player establishes a durable identity, then advances a cultivator through progression stages inside a primary gameplay workspace. The player's cultivation state — qi accumulation, stage index, days cultivated, and the next breakthrough threshold — is authoritative, durable, and bound to that player's identity so it can be resumed on return.
Actors
- Cultivator (Player) — the sole active human persona. The player enrolls, verifies on return, and advances cultivation progress and attempts breakthroughs.
- Application backend — a non-persona system actor. It owns persistence of cultivation state, computes qi accumulation and threshold evaluation, and returns authoritative progression results to the player's interface.
Accepted behavior
- A cultivation game in which a player grows a cultivator through progression stages and breakthroughs.
- Self-service enrollment so a new player can begin a durable cultivation journey.
- Returning verification so a player can resume durable cultivation progress.
- A primary cultivation workspace where the player advances progress and attempts breakthroughs.
Ownership
All four current surfaces are first-party application pages. Identity is application-owned. The backend owns durable state and progression computation; the player owns every initiation, decision, and commitment in the loop.
Narrow exclusions
No social, guild, trading, or multiplayer capability is accepted. No character art, stock photography, or clip-art imagery is used — the generative particle field is the imagery. No bright or white page grounds exist anywhere in the product.
Page 3 of 17
2a. Product Interpretation and Delivery Boundary
game-kultivasi is a first-party web game. The player reaches an anonymous public entry surface that explains the cultivation premise and what a player can do, then establishes identity through self-service enrollment, or verifies identity on return to resume an existing cultivation. Once identity is established, the player works inside a single protected cultivation workspace.
The delivery boundary is deliberately narrow. The current product is the cultivation loop itself: accumulate qi, watch the stage index and thresholds, and commit to breakthroughs. Everything the player sees is first-party custom UI on a deep near-black void ground. There is no provider-owned surface, no external destination, and no headless-only delivery in the current scope. Identity is application-owned because cultivation progress is durable, player-specific state that must remain bound to the correct player across sessions.
Future ideas are not part of the current product and appear only in the labeled future section. Nothing in the current pages, requirements, or flows depends on them.
2c. Page Content and Component Coverage
Page 4 of 17
Landing
- Information and state: Anonymous public entry. Explains the cultivation premise — qi accumulating, stages, breakthroughs — and what a player can do. Displays the live state of the generative qi field as instrument telemetry (
QI FIELD · STAGE 0 · FLOW 0.00/s).
- Primary action:
Begin Cultivation — the single ember-orange pill CTA, pinned bottom-left, routing an unenrolled visitor to Sign Up.
- Supporting actions: Top-right three-item navigation; wordmark top-left; a route to Login for a returning player.
- Domain entities: Qi field (visual state), stage index, flow rate.
- Component responsibilities: Full-bleed WebGL particle canvas as the hero subject (not a background); corner-anchored chrome (wordmark top-left, nav top-right, CTA bottom-left, mono telemetry bottom-right); below-hero single-column bands separated by 1px rules explaining the cultivation loop.
- States: Loading — canvas initializes with a static gradient frame, chrome renders immediately. Empty — not applicable; the field always renders. Success — field animates continuously; CTA routes to Sign Up. Error — if WebGL is unavailable, the pre-baked static field frame renders in place of the live canvas and all chrome and routing remain fully usable. Recovery — the static frame is the permanent fallback; no retry is required for the player to proceed.
Sign Up
- Information and state: Anonymous identity-establishment surface. Split layout — generative field on the left 55% on desktop, collapsing to a short top band on mobile, with the form in a single 420px column on the void.
- Primary action: Submit enrollment to create the player's identity and begin a durable cultivation journey.
- Supporting actions: Route to Login for a player who already has an identity.
- Domain entities: Player identity, credentials.
- Component responsibilities: Form column with labeled inputs, inline validation messaging, submit control with a 1px luminous border and soft inner glow; generative field panel as the visual ground.
- States: Loading — submit control shows an in-progress state; inputs are held. Empty — pristine form with no validation messaging. Success — identity is created and the player is taken into the Cultivation workspace with a fresh cultivator at the initial stage. Error — invalid or incomplete input shows inline field-level messaging and the form retains entered values; a rejected enrollment shows a form-level message and the player can correct and resubmit. Recovery — the player can retry submission without re-entering valid fields, or route to Login if an identity already exists.
Login
- Information and state: Anonymous returning-verification surface. Same split layout as Sign Up — generative field left 55% on desktop, short top band on mobile, form in a single 420px column on the void.
- Primary action: Submit verification to resume the player's durable cultivation progress.
- Supporting actions: Route to Sign Up for a visitor without an identity.
- Domain entities: Player identity, credentials, persisted cultivation state.
- Component responsibilities: Form column with labeled inputs, inline validation messaging, submit control; generative field panel as the visual ground.
- States: Loading — submit control shows an in-progress state. Empty — pristine form with no validation messaging. Success — verification succeeds and the player lands in the Cultivation workspace with their persisted stage index, qi state, days cultivated, and next breakthrough threshold restored. Error — unrecognized credentials show a form-level message that does not disclose which field was wrong; the form retains the entered identifier. Recovery — the player can retry, correct the entry, or route to Sign Up.
Page 5 of 17
Cultivation
- Information and state: Protected primary gameplay workspace. Two-zone layout: a large radial spirit-field canvas occupying roughly 60% of the viewport on the left/top, and an instrument rail of ruled data rows on the right/bottom. The rail carries qi rate, stage index, days cultivated, and next breakthrough threshold as aligned mono label/value pairs. The field's hue temperature is bound to the player's cultivation stage.
- Primary action: Attempt a breakthrough when the next breakthrough threshold is reached.
- Supporting actions: Read the instrument rail; observe the spirit field; continue accumulating qi.
- Domain entities: Cultivator, qi, qi rate, stage index, days cultivated, breakthrough threshold, breakthrough attempt.
- Component responsibilities: Radial spirit-field canvas with a progress ring; instrument rail with hairline rules and mono numerals; breakthrough control that is only actionable at threshold; breakthrough bloom overlay; counting-number animation on the rail's stage index.
- States: Loading — the workspace renders the rail with the player's last known values and the field initializes; the breakthrough control is unavailable until authoritative state arrives. Empty — a newly enrolled player sees stage 0, zero qi, and a fresh field at the cold jade end of the hue range. Success — qi accumulates and the rail's values advance; a successful breakthrough fires the 900ms ember-orange bloom, flips the stage index with a counting animation, and shifts the field's hue temperature warmer. Error — if a breakthrough attempt is rejected or the state cannot be refreshed, the rail retains its last authoritative values, the breakthrough control returns to its unavailable state, and a message explains that the attempt did not resolve. Recovery — the player can continue accumulating qi and attempt again once the threshold is met; a failed state refresh retries and restores the rail from authoritative state.
Page 6 of 17
3. Functional Requirements
FR-1 — Play the cultivation game (explicit)
As a Cultivator (Player), I should grow a cultivator through progression stages and breakthroughs, so that I experience slow, meditative, exponential growth.
- Trigger/input: The player enters the Cultivation workspace with an established identity.
- Observable result: The player's cultivator holds a stage index, an accumulating qi value, a qi rate, days cultivated, and a next breakthrough threshold, all visible in the instrument rail.
- Access state: Requires an established player identity.
- Failure/recovery: If authoritative state cannot be loaded, the rail shows the last known values and the breakthrough control stays unavailable until state is restored.
- Continuation: The player continues accumulating qi toward the next threshold.
- Acceptance: A player with an established identity can observe their cultivator's stage index, qi, qi rate, days cultivated, and next breakthrough threshold in the Cultivation workspace.
FR-2 — Accumulate qi and advance the stage index (required_inference)
As a Cultivator (Player), I should watch qi accumulate and the stage index advance, so that progression is legible as instrument data rather than an opaque number.
- Trigger/input: The player is present in the Cultivation workspace; the backend computes qi accumulation and threshold evaluation.
- Observable result: The instrument rail's qi value and qi rate advance; the spirit field's hue temperature shifts with the stage index; the stage index animates as a counting number when it changes.
- Access state: Requires an established player identity.
- Failure/recovery: If the rail cannot refresh, it retains its last authoritative values and the player can retry the refresh.
- Continuation: The player keeps accumulating until the next breakthrough threshold is reached.
- Acceptance: The rail's qi value and qi rate visibly advance during play, and the field's hue temperature reflects the current stage index.
FR-3 — Attempt a breakthrough at threshold (required_inference)
As a Cultivator (Player), I should commit to a breakthrough when the next breakthrough threshold is reached, so that reaching a new stage is a deliberate ritual act rather than an automatic tick.
- Trigger/input: The player's qi reaches the next breakthrough threshold and the player activates the breakthrough control.
- Observable result: A single 900ms ember-orange radial bloom fires across the spirit field, the stage index flips with a counting-number animation in the instrument rail, and the field's hue temperature shifts warmer.
- Access state: Requires an established player identity.
- Failure/recovery: If the attempt is rejected or does not resolve, the rail retains its last authoritative values, the breakthrough control returns to its unavailable state, and a message explains that the attempt did not resolve; the player can attempt again once the threshold is met.
- Continuation: The player continues accumulating qi toward the following threshold at the new stage.
- Acceptance: Activating the breakthrough control at threshold produces the ember bloom and a stage-index change; activating it below threshold is not possible.
FR-4 — Self-service enrollment (required_inference)
As a Cultivator (Player), I should enroll myself so that I can begin a durable cultivation journey without an invitation or provisioning step.
- Trigger/input: An anonymous visitor activates
Begin Cultivation on Landing and submits the Sign Up form.
- Observable result: A player identity is created and the player enters the Cultivation workspace with a fresh cultivator at the initial stage.
- Access state: Anonymous entry; the resulting identity is required for all protected cultivation state.
- Failure/recovery: Invalid or incomplete input shows inline field-level messaging with entered values retained; a rejected enrollment shows a form-level message and the player can correct and resubmit.
- Continuation: The player begins accumulating qi in the Cultivation workspace.
- Acceptance: A visitor with no existing identity can complete Sign Up and arrive in the Cultivation workspace at stage 0.
FR-5 — Returning verification (required_inference)
As a Cultivator (Player), I should verify my identity on return so that I resume my durable cultivation progress rather than starting over.
- Trigger/input: A returning player submits the Login form.
- Observable result: The player lands in the Cultivation workspace with their persisted stage index, qi state, days cultivated, and next breakthrough threshold restored.
- Access state: Anonymous entry to Login; verification is required to reach protected cultivation state.
- Failure/recovery: Unrecognized credentials show a form-level message that does not disclose which field was wrong, with the entered identifier retained; the player can retry, correct the entry, or route to Sign Up.
- Continuation: The player resumes accumulating qi from their restored state.
- Acceptance: A player who previously enrolled and returns later sees their prior stage index and qi state restored after verification.
FR-6 — Persist cultivation state across sessions (required_inference)
As a Cultivator (Player), I should have my cultivation state persist between sessions, so that my progress is never lost when I leave and return.
- Trigger/input: Any change to the player's qi, stage index, days cultivated, or breakthrough threshold.
- Observable result: The player's authoritative cultivation state is durable and bound to their identity, and is restored on the next verified visit.
- Access state: Requires an established player identity; state is never shared between identities.
- Failure/recovery: If state cannot be written or read, the interface retains the last authoritative values and the player can retry; no partial or misattributed state is presented as the player's own.
- Continuation: The player resumes from the restored state.
- Acceptance: A player's stage index and qi state after a verified return match the values at the end of their previous session.
Page 7 of 17
4. User Personas
Page 8 of 17
Cultivator (Player)
Product context. The Cultivator is the sole active human persona in game-kultivasi. They are genre-literate: they already understand stages, breakthroughs, and tribulations, and they came for the feeling of slow, meditative, exponential growth rather than fast action. They treat the interface as a sacred instrument panel — a place to read their own progression as data and to commit to breakthroughs as ritual acts.
Primary goal. Advance a cultivator through progression stages by accumulating qi and reaching breakthrough thresholds, and ascend through stages over time.
Distinct accepted responsibilities.
- Enroll themselves to begin a durable cultivation journey (FR-4).
- Verify their identity on return to resume progress rather than restart (FR-5).
- Read their own progression as instrument data — qi, qi rate, stage index, days cultivated, next breakthrough threshold (FR-1, FR-2).
- Decide when to commit to a breakthrough at threshold (FR-3).
- Continue the loop toward the following threshold after each breakthrough (FR-2, FR-3).
Relevant inputs and decisions. The player supplies enrollment and verification credentials, and makes exactly one recurring decision: whether to commit to a breakthrough now that the threshold is met. Everything else is observation of accumulating state.
Interactions with other accepted participants. The Cultivator is the only human participant. Their counterpart is the application backend, which computes qi accumulation, evaluates thresholds, and persists state. The player initiates every action; the backend returns authoritative results that the player observes in the instrument rail and spirit field.
Observable success. The player's stage index has advanced, the spirit field's hue temperature has shifted warmer to reflect the new stage, and the instrument rail shows the restored and continuing values on every return.
What makes this role's work different. The Cultivator is not a manager, operator, or administrator of anything. Their entire responsibility is a single long-horizon personal progression: accumulate, observe, and commit at thresholds. There is no shared state, no other participant to coordinate with, and no differentiated visibility — the role is defined by patience and ritual commitment, not by permissions or coordination.
Page 9 of 17
5. Core User Flows
Flow A — A new player begins a cultivation journey
- The visitor arrives at Landing with no identity. The full-bleed qi field renders as the hero subject, with the wordmark top-left, three-item nav top-right, the ember-orange
Begin Cultivation pill bottom-left, and live mono telemetry bottom-right reading QI FIELD · STAGE 0 · FLOW 0.00/s.
- The visitor reads the below-hero bands explaining the cultivation loop — qi accumulating, stages, breakthroughs.
- The visitor activates
Begin Cultivation and is routed to Sign Up.
- On Sign Up, the visitor enters their enrollment details in the 420px form column on the void, with the generative field occupying the left 55% on desktop (a short top band on mobile).
- The visitor submits. If input is invalid or incomplete, inline field-level messaging appears and the entered values are retained; the visitor corrects and resubmits.
- On success, a player identity is created and the player lands in Cultivation with a fresh cultivator at stage 0, zero qi, and the spirit field at the cold jade end of its hue range.
- The player observes the instrument rail — qi rate, stage index, days cultivated, next breakthrough threshold — as aligned mono label/value pairs, and begins accumulating qi.
Flow B — A returning player resumes cultivation
- The player arrives at Landing and routes to Login (or arrives at Login directly).
- On Login, the player enters their credentials in the 420px form column, with the generative field on the left 55% on desktop and a short top band on mobile.
- The player submits. If the credentials are unrecognized, a form-level message appears that does not disclose which field was wrong, the entered identifier is retained, and the player can retry, correct the entry, or route to Sign Up.
- On success, the player lands in Cultivation with their persisted stage index, qi state, days cultivated, and next breakthrough threshold restored from their previous session.
- The spirit field renders at the hue temperature matching the restored stage index, and the player resumes accumulating qi from where they left off.
Flow C — The player reaches a breakthrough threshold and commits
- The player is in Cultivation, watching the spirit field and the instrument rail. Qi accumulates; the rail's qi value and qi rate advance; the field's hue temperature reflects the current stage index.
- The player's qi reaches the next breakthrough threshold shown in the rail. The breakthrough control becomes actionable.
- The player commits by activating the breakthrough control.
- A single 900ms ember-orange radial bloom fires across the spirit field, the stage index flips with a counting-number animation in the instrument rail, and the field's hue temperature shifts warmer to reflect the new stage.
- If the attempt is rejected or does not resolve, the rail retains its last authoritative values, the breakthrough control returns to its unavailable state, and a message explains that the attempt did not resolve. The player continues accumulating qi and attempts again once the threshold is met.
- On success, the player continues the loop, accumulating qi toward the following threshold at the new stage.
Page 10 of 17
Flow D — The player's progress survives a session boundary
- The player is in Cultivation with an advanced stage index and accumulated qi.
- The player leaves the application. Their authoritative cultivation state — qi, stage index, days cultivated, next breakthrough threshold — remains durable and bound to their identity.
- The player returns later and completes Login (Flow B, steps 1–4).
- The restored rail values match the values at the end of the previous session, and the spirit field renders at the matching hue temperature.
- The player continues accumulating qi from the restored state.
Page 11 of 17
6. Visuals Colors and Theme
Muse and headline. Refik Anadol — Data made physical: a cultivation world rendered as a living, luminous data sculpture. The cultivation genre is fundamentally about accumulating, flowing energy, and this direction turns the game's own progression data into the artwork: qi particles rising, spirit veins branching, breakthroughs as phase transitions.
Mode. Dark only. There is no light mode; the void is the world.
Colour tokens (dark mode)
| Role | Hex | Use |
|---|
| Background | #05060B | Deep near-black void; the page ground everywhere |
| Surface | #0C0F1A | Panels, form columns, instrument rail |
| Text | #F2F4FA | Cool off-white body and heading text |
| Primary | #7BE0C8 | Luminous jade-cyan — the cultivator's qi, progress rings, primary actions |
| Accent | #FF7A45 | Molten ember-orange — breakthroughs, tribulations, the single hot CTA; appears rarely and only when the fiction calls for ignition |
| Muted | #7A8095 | Grey-violet — metadata, timestamps, secondary labels |
The generative hero flows through jade → cyan → violet → ember, so the palette itself is the data: as a player's cultivation rises, the particle field shifts hue from cold jade to warm ember. Primary text is never placed on the accent; the accent is used only for fills, glows, and short labels on dark.
Typography
- Headings: Space Grotesk, light-to-medium weights (300–500). Wide tracking on short ceremonial words (
CULTIVATE, BREAKTHROUGH); tight tracking on long display lines. Stage and realm names set uppercase with 0.12em letterspacing.
- Body: IBM Plex Sans.
- Numerals for qi, days, and stage indices: IBM Plex Mono, so progression reads as instrument data rather than marketing copy.
- Scale: 1.333 modular, mobile → desktop — display
44 → 112px (clamp), h1 32 → 64px, h2 24 → 40px, h3 20 → 28px, body 16 → 18px, label 12 → 13px uppercase +0.12em, mono data 14 → 16px. Line-height 1.05 on display, 1.5 on body. All display sizes use clamp() with the mobile value as the floor.
Shape language. Soft-edged luminous geometry: thin 1px strokes that glow at their ends, radial rings that read as spirit-vein mandalas, capsule progress bars with a bright leading head, and panels with 14px radii and a hairline top-edge highlight rather than a drop shadow. Nothing is chunky or rounded-cartoon; arcs and radial symmetry dominate because the hero is a particle mandala. Buttons are pill-shaped with a 1px luminous border and a soft inner glow on the primary only.
Spacing rhythm. Below the hero, sections run as a single column of wide, calm bands separated by 1px rules with generous 96–160px vertical rhythm.
Imagery style. The generative particle/fluid field is the imagery — no stock photography, no character art, no clip art. Secondary visuals are data-derived: spirit-vein branching diagrams drawn from the player's own progression, a radial stage mandala, and thin topographic-like line maps of the cultivation realm. Where a concrete object is needed (a pill, a talisman, a stage emblem), it is rendered as a luminous wireframe form inside the field rather than as a flat illustration. All imagery sits on the void ground; nothing is placed on white.
Forbidden. Centred headline + subtext + blue button + gradient-blob hero; any blue/indigo primary in the #0057FF–#7C3AED band on a white or near-white ground; Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, or system-ui for headings or body; frosted-white glassmorphism panels or pastel gradient blobs as decoration; a grid of identical hover-lift cards for stages or features; cartoon character illustrations, chibi cultivator sprites, or stock photography of people; playful bounce/spring easing, confetti, or arcade-style micro-animations; bright or white page grounds anywhere.
Page 12 of 17
7. Signature Design Concept
The save file is the artwork.
The Landing hero is a full-bleed, near-black canvas (#05060B) filled with a slowly swirling field of tens of thousands of luminous jade-cyan particles that rise from the bottom edge and gather into a loose radial mandala in the upper-right third of the viewport. The dominant element is the particle mandala itself, occupying roughly 70% of the screen and bleeding off the right and top edges — it is not a decorative blob behind a centred headline, it is the subject.
The composition is deliberately asymmetric and corner-anchored so it can never be mistaken for a centred SaaS hero:
- Top-left: the wordmark
GAME KULTIVASI in Space Grotesk uppercase with 0.14em tracking.
- Top-right: a three-item nav.
- Bottom-left: a single ember-orange pill CTA,
Begin Cultivation.
- Bottom-right: a small mono caption reading the field's live state —
QI FIELD · STAGE 0 · FLOW 0.00/s — so the hero is already the instrument.
The canvas is never covered by a centred headline stack. Readable text and controls stay whole at every viewport; the field itself bleeds and crops freely.
The concept carries into the product: on Cultivation, the same field becomes the radial spirit field with a progress ring, and its hue temperature is bound to the player's cultivation stage. The artwork and the save file are the same object.
Page 13 of 17
8. Interaction Model & Motion Direction
Interaction Model: Animated
Motion Tempo: cinematic
Hero Dimensionality: webgl
Landing Hero Motion Brief
- Focal subject. A full-bleed field of tens of thousands of luminous jade-cyan qi motes rising from the bottom edge and gathering into a loose radial mandala in the upper-right third of the viewport, bleeding off the right and top edges.
- Input → transformation → outcome thesis. Continuous slow noise drives the motes to drift, swirl, and occasionally cluster into a mandala pulse; as the player's cultivation stage rises, the field's hue temperature shifts from cold jade toward warm ember. The input is the player's own progression data; the transformation is the field's motion and hue; the outcome is that the artwork reads as the save file.
- Motion vocabulary. Continuous slow generative flow; scroll-linked morphing; a single 900ms ember-orange radial bloom at real breakthrough thresholds; counting-number animation in the instrument rail. All motion eases with
cubic-bezier(0.22, 1, 0.36, 1); nothing bounces.
- Composed first frame. Near-black void; the particle mandala already formed in the upper-right third; wordmark top-left, nav top-right, ember CTA bottom-left, mono telemetry bottom-right reading
QI FIELD · STAGE 0 · FLOW 0.00/s.
- Reduced-motion state. Under
prefers-reduced-motion, the hero renders a static still frame of the field (a pre-baked gradient/particle snapshot) and all scroll-linked morphs become instant state changes. The static frame is fully usable: chrome, nav, CTA, and telemetry all remain present and functional.
Landing Hero 3D Scene Brief — DIRECTION-DERIVED
A single crafted real-time scene: a particle field of roughly 40k points with capped DPR, driven by a slow noise function, rising from the bottom edge and gathering into a loose radial mandala in the upper-right third. The scene shows the product's defining state — qi accumulating in a cultivation field — and its hue temperature is bound to the player's cultivation stage, so the scene itself is the progression readout. Scroll-linked morphing contracts the field into a single luminous ring that becomes the progress ring in the section below, making the page transition a physical transformation of the same object.
Page 14 of 17
9. Non-Functional Requirements
NFR-1 — Durable, identity-bound cultivation state (required_inference)
Cultivation state — qi, stage index, days cultivated, next breakthrough threshold — must persist durably and remain bound to the correct player identity. Rationale: the accepted journey requires a returning player to resume progress rather than restart, and a commitment or progression value must never be attributed to the wrong participant.
NFR-2 — Authoritative progression computation (required_inference)
Qi accumulation and breakthrough threshold evaluation must be computed authoritatively by the backend, not by the client, so that the instrument rail and the spirit field always reflect the same truth. Rationale: the player's stage index and breakthrough eligibility are commitments, and the interface must not present a state the backend has not accepted.
NFR-3 — Generative field performance (explicit, from creative direction)
The hero particle field runs at approximately 40k points with capped device pixel ratio, driven by a slow noise function. Rationale: the field is the hero subject and must remain smooth on the target audience's hardware.
NFR-4 — Reduced-motion support (explicit, from creative direction)
Under prefers-reduced-motion, the hero renders a static still frame of the field and all scroll-linked morphs become instant state changes. Rationale: the direction requires a usable static arrangement for players who cannot tolerate continuous motion.
NFR-5 — Readable text and controls at every viewport (explicit, from creative direction)
Headlines, wordmarks, labels, numbers, 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. No other element covers any part of them. Imagery, decoration, and motion may crop, bleed, rotate, overlap, or cut as the direction asks, as long as they cover no readable text or control. Rationale: the direction's full-bleed canvas and corner-anchored chrome must never obscure the instrument.
NFR-6 — Dark-only presentation (explicit, from creative direction)
The product renders on the void ground (#05060B) with no light mode. Rationale: the direction states that bright or white page grounds are forbidden and the void is the world.
NFR-7 — Access boundary integrity (required_inference)
Landing, Sign Up, and Login are anonymously reachable. Cultivation is protected and requires an established player identity. Rationale: a protected destination cannot own the interaction that establishes access to itself, and durable player-specific state must not be reachable without verification.
Page 15 of 17
10. Tech Stack
- Frontend: React, with React Three Fiber / Three.js for the generative particle field (approximately 40k points, capped DPR, slow noise function).
- Backend: Python with FastAPI, owning qi accumulation, breakthrough threshold evaluation, and authoritative cultivation state.
- Storage: A persistent datastore appropriate to durable per-player cultivation state bound to player identity.
- Containerization: Docker and docker-compose for local and deployment packaging.
No other technology is specified by the source. Kubernetes is not required by any accepted deployment constraint and is therefore not included.
Page 16 of 17
11. Assumptions and Constraints
Assumptions
- A1 (required_inference): Player identity is application-owned, because cultivation progress is durable, player-specific state that must remain bound to the correct player across sessions.
- A2 (required_inference): Enrollment is self-service, because no invitation, provisioning, or deployment bootstrap boundary is established by the source.
- A3 (required_inference): The initial stage for a newly enrolled player is stage 0 with zero qi, matching the Landing hero's telemetry caption.
- A4 (required_inference): A breakthrough attempt is only possible at or above the next breakthrough threshold shown in the instrument rail.
- A5 (required_inference): The spirit field's hue temperature is bound to the player's cultivation stage, shifting from cold jade toward warm ember as the stage rises.
Constraints
- C1 (explicit): The product is a cultivation game in which a player grows a cultivator through progression stages and breakthroughs.
- C2 (explicit, from creative direction): The generic indigo/blue-on-white SaaS template is forbidden for this project.
- C3 (explicit, from creative direction): No bright or white page grounds anywhere; the void (
#05060B) is the world.
- C4 (explicit, from creative direction): No stock photography, character art, or clip art; the generative particle/fluid field is the imagery.
- C5 (explicit, from creative direction): The ember-orange accent (
#FF7A45) appears rarely and only when the fiction calls for ignition — breakthroughs, tribulations, and the single hot CTA.
- C6 (explicit, from creative direction): Primary text is never placed on the accent.
- C7 (explicit, from creative direction): No playful bounce/spring easing, confetti, or arcade-style micro-animations; all motion eases with
cubic-bezier(0.22, 1, 0.36, 1).
- C8 (explicit, from creative direction): Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, and system-ui are forbidden for headings and body.
- C9 (explicit, from creative direction): No grid of identical hover-lift cards for stages or features; stages are ruled data rows or radial nodes instead.
- C10 (explicit, from creative direction): No frosted-white glassmorphism panels or pastel gradient blobs as decoration.
- C11 (explicit, from creative direction): The Landing hero canvas is never covered by a centred headline stack; chrome is corner-anchored.
- C12 (explicit, from creative direction): Readable text and controls stay whole at 375px, 768px, and 1280px; imagery and motion may crop and bleed but may never cover readable text or a control.
Future Requirements (not current scope)
No future requirements are established by the authoritative source. Any social, guild, trading, or multiplayer capability, and any additional progression system beyond stages and breakthroughs, remains outside the current product until explicitly accepted.
Page 17 of 17
12. Glossary
- Cultivator — the player's in-game character, whose progression is the subject of the game.
- Cultivation — the practice of accumulating qi and advancing through stages; also the name of the primary protected gameplay workspace.
- Qi — the accumulating energy resource the player gathers; displayed as a mono numeral in the instrument rail.
- Qi rate — the rate at which qi accumulates, displayed as a mono numeral in the instrument rail.
- Stage index — the player's current progression stage, displayed as a mono numeral and reflected in the spirit field's hue temperature.
- Days cultivated — the elapsed cultivation time for the player's cultivator, displayed as a mono numeral in the instrument rail.
- Breakthrough — the deliberate act of committing to a stage advance once the next breakthrough threshold is reached; marked by a 900ms ember-orange radial bloom and a stage-index flip.
- Breakthrough threshold — the qi value at which a breakthrough attempt becomes possible.
- Spirit field — the radial generative canvas on the Cultivation page whose hue temperature is bound to the player's stage.
- Instrument rail — the ruled data-row panel on the Cultivation page carrying qi rate, stage index, days cultivated, and next breakthrough threshold as aligned mono label/value pairs.
- Qi field — the full-bleed generative particle hero on Landing, whose live state is read by the mono telemetry caption.
- Void — the deep near-black ground (
#05060B) on which all surfaces sit.
No comments yet. Be the first!