# Adaptation 360 Lab > The scene-perfecting rig for the ten adaptations, from inside the specimen — pick a part and a tier (none/poor/decent/great) and a scripted 360° scenario showcases exactly what it does, with body-kit silhouettes, event vignettes and camera emotes, all mirrored in the 3rd- and 1st-person views where the specimen visibly wears the part. --- .. toc:: ### One adaptation, one scene, three cameras The per-part labs ([Eyespot](/adaptation-eyespot), [Jaw](/adaptation-jaw), …) tune each adaptation's *mechanics*; the [Balance Lab](/balance-lab) tunes the *economy*. This lab tunes the **presentation**: what an adaptation looks and feels like from inside the specimen, in the [🪬 360 POV](/360-dish) the dish lab prototyped — so every `none / poor / decent / great` tier can be art-directed as its own scene **before** any of it touches `/petri-dish-evolution`. Pick a part and a tier; a scripted micro-scenario loops forever: | Part | Scene | What plays out | |------|-------|----------------| | Flagellum | `sprint` | straight-line gate runs — speed reads as an hfov punch + streamlines | | Cilia | `weave` | a slalom of close gates — agility is crisp snap turns | | Membrane ruffle | `glide` | long banking arcs — efficiency is a camera that breathes | | Pseudopod | `crawl` | anchor-and-pull locomotion with a visible heartbeat | | Eyespot | `sense` | food drifts in *unseen* until it crosses the tier's true range — then a detection ping | | Filter mouth | `graze` | plankton streams into a baleen throat — or passes clean through | | Jaw | `hunt` | stalk → lunge → **bite** (a camera impact + mandible snap) | | Proboscis | `siphon` | feeding at standoff range through a living straw | | Spike | `deter` | a daphnia charge breaks on your crown — or on your membrane | | Stinger | `strike` | a venom punch that stuns the subject stiff | **`none` is a scene too** — the failure mode of not having the part: lunges glance off, charges land, water passes through, gates get overshot. That contrast is what makes a tier feel *earned* when the game eventually grants it. A note on the movement ladder: in the game's model (`lib/movement.py`) **poor is a stat liability** (a kinked tail subtracts from the archetype) while **none is a control liability** (18% input authority over a helpless drift). A tireless scripted pilot can integrate that drift back up to full archetype speed, which made `none` *look* fastest — so the rig applies the model's own control knob to the drift input, restoring the ladder the tiers are supposed to communicate (≈2 / 3.5 / 11.7 / 18.6 wu per tick on a euglena). .. exec::docs.adaptation_360.adaptation_360 ### The 360 design language This rig establishes the rules a future in-game 360 camera will inherit: - **Adaptations are FELT through the camera.** Every scenario event pairs a DOM vignette (bite flash, venom wash, shield spark, detection ring) with a [`CAM_EMOTES`](https://github.com/pip-install-python) timeline — lunge punches, decaying crunch shakes, recoils — scaled or *replaced* by tier (a great membrane shrugs off what knocks a bare cell down). - **Adaptations are SEEN as body kit.** Your own part is drawn into the sphere's lower band, anchored to the *body's heading* rather than the gaze — mandibles that snap when you bite, a tail whipping behind you, a spike crown ringing the view, a proboscis that extends to its target with flow dashes, baleen combs, a pulsing pseudopod lobe. Tier scales size, density and reach; `none` simply isn't there. - **One world, three cameras.** The same scene renders in 🌎 3rd person and 👁 1st person via `CV.renderArena`, with the specimen visibly **wearing the part** through `SPL.spriteOverlay` — the splicer's own organelle markup, so the silhouette here matches the game's exactly. The eyespot's vision tiers (radar / blur / muted / full) apply in 1st person *and* as the sphere's treatment. - **The camera is directed, not driven.** Sparse eased `lookAt` writes frame the scenario's subject at constant angular speed (the `/360-dish` director model), and the director yields whenever an emote timeline is playing. ### Built on dash-pannellum 0.3.1 The sphere is a **dynamic canvas scene** (`panoramaCanvasId` + `dynamicUpdate`) reusing the `/360-dish` renderer (`window.P360R`): the ray-traced dish, per-pixel floor reprojection, the glass wall — with the body kit and scene effects drawn over it each tick. 0.3.1's **in-place hotspot diff** (stable `name` = same DOM node, position writes mutate the live spec) is what lets `/360-dish` track its contact click-zones at full cadence; this rig keeps its cast in the texture where the effects live. ### Scaling path Each scene is deliberately the *grammar* of a future game moment: `hunt` is the carnivore feed loop, `deter` is the hunter-contact event, `sense` is the food-detection HUD cue, the move scenes are the archetype feels. When the 360 POV graduates into `/petri-dish-evolution`, these scenarios become event handlers driven by the real engine (`EVO`) instead of scripts — the body kit, effects, emotes and director carry over unchanged. Until then, nothing here touches the game. --- *Source: /adaptation-360*