Beast control panel — operator guide
This document describes the “Beast creature, comms console” UI in index.html: screen zones, state indication, messaging, and all stimulus controls. Behavior matches code under beast/ (see also manuals/Mad_programmer_manual.md).
Introduction: what Beast is and how it “lives”
Beast is a browser creature model with discrete pulse time (≈1 s): each pulse updates vitals (homeostasis parameters; theory: fornit.ru/71218), basic behavior contexts, perception tree, consciousness-cycle dispatcher, episodic and semantic memory, reflexes, and automatisms.
- Life is measured by pulse counter
Cur_puls_val(stored inlocalStorageand may be included in memory files). - Development is accumulated experience: semantic samples per stimulus, perception-tree branches, episodes, abstractions, motor and mental automatisms, goals, gestalts; as experience grows, orientation reflex (OR) readiness, consciousness levels (2–4), and scenarios (play, learn, sleep, dreams) change.
The panel is the operator’s link to the model: you set stimuli and modes, read vitals, contexts, the info picture and cycle logs, save and load memory.
1. Purpose and capabilities
Purpose
- Set the external situation via motivating, positive, negative, and neutral stimuli (including “Play” / “Teach” modes).
- Observe somatic state (vitals), emotional-context state (basic contexts, Bad/Normal/Well), cognitive context (perception tree, info picture, Beast activity).
- Control base-state hold (B / W), measure importance diff, enable sleep with limited stimuli.
- Work with memory: save/load JSON to disk (pulse, vitals, semantics, tree, episodes, reflexes, etc. — registry
BEAST.persistentModulesinbeast/date/saving_ui.js). - For debug and training: reset conditioned reflexes and semantics (Uh, Sx — right of the “Beast activity” row), Test to interrupt comprehension, episodic-memory test mode (button t), stimulus understanding model (i on button).
In sleep mode only certain pre-allowed (“watch”) stimuli are clickable (see sleep section).
2. How state and other indicators are shown
2.1. Top bar
| Element | Meaning |
|---|---|
| Green circle + number | Life pulse: blinking circle (pulseCircle) and pulseCounter = pulse count. |
Blue dot by Save (saveIndicator) |
Writing to IndexedDB and/or disk; brief display (at least ~300 ms). |
| Save / Load | Export/import memory to a chosen folder (File System Access API). |
2.2. Vitals
- Row of 0–100% indicators: color from light green (0) to red (100).
- Labels: short name and long title in tooltip.
- Click a vital — dialog to set value and shift (drift per pulse).
- × by header — reset vitals to defaults (with confirm).
Vital names (Id 1–10): Wounds, Suffocation, Thirst, Heat, Cold, Hunger, Stress, Rut, Communication, Interest (see beast/_1_Genetic_vitals/vitals.js).
2.3. Basic behavior contexts
- Header: “Basic behavior contexts” + Bad / Normal / Well + “improved/worsened by …” from
DiffZnacher. - Indicators — rectangles with context name: inactive gray, active light green with glow.
- Block border: pink when Bad, green when Well; with context hold (yellow background) — pulse counter top-center and yellow header/row.
- Buttons (header right): Sleep, B (hold Bad), W (hold Well), diff — see §4 and §6.
- Counter above B/W: remaining hold pulses for Bad or Well.
2.4. Answer-wait bar
Thin blue bar (epWaitingProgressFill in epWaitingProgressWrap) shows progress of operator answer wait after an episodic frame (response_waiting_period). Wrapper title has tooltip.
2.5. Active perception-tree branch block
- Branch text (
perceptionTreeActiveBranchText), button t — episodic-memory formation test mode (highlights active state). - Episodes line (
perceptionTreeEpisodesLine), ✕ — clear all episodic memory (shown per UI logic). epTotalCountLabel— total episode count (if filled by code).- 📋 — copy block to clipboard.
2.6. Beast activity
Gray block with current activity text (multiline). Right: 📋 (copy), Uh (reset all conditioned reflexes), Sx (reset all semantic memory). Block border matches Bad/Well on context row.
2.7. Info picture (extended row)
Under “Info picture”:
- Blue bulb (
infoThinkingIndicator) — brief (≈0.5 s) on comprehension events (Info_thinkingFlash). - Main cycle ID — current main consciousness cycle id.
- Pure-background processes — count of background cycles.
- Interrupt queue — LIFO length of interrupted main cycles.
- Clickable counters: bg: — background cycle list; auto: / m-auto: / abstr: / goals: / sit: — detail dialogs; first four with × clear structures (motor/mental automatisms, abstractions, life-experience goals, situation images).
- gest: — gestalts; phant: — phantasm plot (click for detail).
2.8. Info-picture cell grid
Labeled cells; yellow background (info-cell-active) — salient/active value. Click opens detail (Info_showDetail(...)): mode, theme, situation, phantasm plot, problem, step, stimulus, Base, emotion, activity, and detectors (critical vital, important problem, rule response, shock, sudden worsening, play, learning, negative automatism effects, “bad”, console stimulus, search, teacher, operator ignore, dissatisfaction, misunderstanding, doubt, defense, fear, aggression, important object, mood, novelty, semantics, hard problem, action effects, answer wait, runs without effect, automatism usefulness, found automatism, etc.).
See InfoPicture in beast/_9_Conscience/informing.js.
3. How messages are shown
3.1. Static (in the page UI)
- Text in “Beast activity”, updated by consciousness and helper modules.
- Labels, counters, button/cell title (browser tooltips).
- Info picture and its cells — live view of
InfoPictureafterInfo_updateView().
3.2. Pop-up (modal dialogs)
Module beast/sys/alerts/alerts.js:
| Function | Purpose |
|---|---|
show_alert(message, timeShow, options) |
HTML message; timeShow > 0 — auto-close after N ms; timeShow === 0 — “Close” button. |
show_confirm(message, callback) |
Yes / No → callback('OK' | 'NO'). |
show_prompt(message, callback) |
Text input → callback(value). |
close_alert() |
Close active dialog. |
Special type dialogType: 'cyclelog' — main cycle log window (latest debugLog lines), updates as written; user close marks log suppressed for that cycle. Does not stack over other arbitrary modals.
More alert examples:
- Click Bad/Normal/Well in context header —
DiffZnacher, integral importance. - diff — old/new value and scaled difference.
- i on stimulus button — understanding model (semantics): summary or frame on z number clicks.
4. All button and stimulus kinds
Behavior from code (stimuls.js, stimuls_ui.js, genetic_reflexes.js, genetic_reflexes_engine.js, sleep_mode.js).
4.1. Common stimulus-row rules
- Each row has a header and header ×: clears all active stimuli in that row.
- Double-click any stimulus button (any row) — clear all stimuli in all four rows (
clearAllStimuli), except in sleep (blocked). - Active button: stronger fill and colored glow (
box-shadow). - OR readiness: 2px border and tooltip “Participates in orientation reflex” if remaining activations to threshold for linked
FinalImage= 0; else shows remaining count (or “unknown” on early pulses). - On OR / consciousness start for a button — brief flash glow top/bottom for one pulse.
- Sleep mode: disallowed buttons are faded and not clickable; allowed ones have outline. Allowed: motivation Punishment (Id 8); negative Howl (8), Siren (10), Growl (13), Fire (20). First click on an allowed stimulus wakes from sleep, then processes normally.
4.2. Global stimulus ids
To avoid duplicate numbers across arrays, memory uses global Ids: type * 1000 + localId where type: 1 — motivation, 2 — positive, 3 — negative, 4 — neutral (stimulus_global_id.js).
4.3. Motivating stimuli (stimulsRow)
bg in data: 1 — pink base, 2 — white/neutral, 3 — light green. Each row has vitalID and shift (sustained effect via reflex engine — see genetic_reflexes_engine.js).
| Id | Name | vitalID | shift (in table) | Note |
|---|---|---|---|---|
| 1 | Food | 6 | 0 | On activate: stress −20, SetWellForHolding; branch automatism cache reset when activated with Food/Water. |
| 2 | Water | 3 | 0 | Same as Food. |
| 3 | Warmth | 4 | −1 | |
| 4 | Cold | 5 | −1 | |
| 5 | Air | 2 | −2 | |
| 6 | Healing | 1 | −0.5 | |
| 7 | Encouragement | 7 | 0 | Strong stress drop + hold Well. |
| 8 | Punishment | 7 | 0 | Stress rise + hold Bad. |
| 9 | Pleasant | 7 | 0 | Stress −30; effect table also lists vitalID 17 (if vital missing from array, delta may not apply). |
| 10 | Unpleasant | 7 | 0 | Stress +30. |
| 11 | Calm | 7 | 0 | |
| 12 | Clear | 7 | 0 | |
| 13 | Unclear | 7 | 0 | |
| 14 | Forgive | 7 | 0 | |
| 15 | Laugh | 7 | 0 | |
| 16 | Joy | 7 | 0 | |
| 17 | Crush | 8 | 2 | |
| 18 | Ignore | 7 | 0 | |
| 19 | Play | 11 | 0 | Not via ActiveMotivationStimuls: toggles isGameMode, mutually exclusive with Teach; on — effect 103. |
| 20 | Teach | 12 | 0 | isAuthoritarianEducation, mutually exclusive with Play; effect 104. |
On activation of a motivating stimulus (except Play/Teach toggle) one-shot effects run from StimulMotivarion_EffectsToBContexts (vital deltas 1–10, codes 101–104: hold Well/Bad, play/learn mode).
4.4. Positive stimuli (stimulsRowPositiv)
Background: light green; active — stronger green glow. On activate, contexts merge per StimulPositiv_EffectsToBContexts (1–20 — basic context ids for hold period; 101–104 as motivation).
| Id | Name |
|---|---|
| 1 | Smile |
| 2 | Child |
| 3 | Puppy |
| 4 | Flower |
| 5 | Sun |
| 6 | Butterfly |
| 7 | Berry |
| 8 | Bell |
| 9 | Laugh |
| 10 | Singing |
| 11 | Melody |
| 12 | Rustle |
| 13 | Purr |
| 14 | Sweetness |
| 15 | Scent |
| 16 | Warmth |
| 17 | Breeze |
| 18 | Coolness |
| 19 | Touch |
| 20 | Caress |
4.5. Negative stimuli (stimulsRowNegative)
Background: pink; active — stronger pink glow. Contexts: StimulNegative_EffectsToBContexts (incl. 102 = SetBadForHolding for some buttons).
| Id | Name |
|---|---|
| 1 | Spite |
| 2 | Blood |
| 3 | Ruin |
| 4 | Spider |
| 5 | Snake |
| 6 | Mushroom |
| 7 | Rot |
| 8 | Howl |
| 9 | Moan |
| 10 | Siren |
| 11 | Squeak |
| 12 | Creak |
| 13 | Growl |
| 14 | Shards |
| 15 | Lightning |
| 16 | Dagger |
| 17 | Bitterness |
| 18 | Sourness |
| 19 | Stench |
| 20 | Fire |
“Test” button (red, after row): calls runTestNegativeInterrupt() — hard test interrupting comprehension with maximal negative salience; disabled in sleep.
4.6. Neutral stimuli (stimulsRowNeutral)
Gray background; on activate they do not call StimulPositiv/Negative_EffectsToBContexts (only accumulate active set in ActiveNeutralStimuls for image and OR).
| Id | Name |
|---|---|
| 1–9 | Brown … White (colors) |
| 10–18 | Circle … Triangle (shapes) |
| 19–23 | sound |
| 24–31 | other |
4.7. “i” badge on stimuli
Small corner i: opens understanding model for the stimulus (semantic frames, z, episode count); click z numbers for frame detail.
4.8. Other UI buttons (not stimulus rows)
| Button | Action |
|---|---|
| Sleep | SleepMode_toggle; gray page background; only “Sleep” context (id 15); auto-enter possible with many finished cycles (ConsciousnessFinCyclesTotal > 100). |
| B | SetBadForHolding — hold Bad; info picture to target mode and thought-bulb flash. |
| W | SetWellForHolding — hold Well. |
| diff | getDiffImportance() and show deltas in alert. |
| Save / Load | See §2.1. |
5. How development shows in the UI
- New stimuli — manual new rows in
StimulMotivarion/StimulPositiv/StimulNegative/StimulNeutraland if needed lines inStimul* _EffectsToBContexts/StimulMotivarion_EffectsToBContexts; UI rebuilds on load (stimuls_ui.js). - OR readiness — as semantics grow, button borders and tooltips change; after first cycle main cycle log may show in a modal.
- Info picture — new
InfoPicturedetectors mean new cells inindex.htmland branches inInfo_updateView/Info_showDetail(informing.js). - Consciousness levels 2–4, gestalt, abstractions — new counters (gestalt, phantasms, mental automatisms, etc.) and click-through alerts.
- Sleep and dreams — separate branch: “Sleep” button, stimulus limits,
sleep_dream_process.jsscenarios.
6. Growing Beast: sequence and focus
Suggested order for an operator-researcher (no code edits):
- Learn pulse and vitals — run Bad/Well scenarios, watch contexts and
DiffZnacher. - Learn stimuli — start with motivation and neutral, then positive/negative; watch OR readiness and understanding model (i).
- Watch tree and info picture — how Base, emotion, activity, step, stimulus connect.
- Episodic memory — use t for tests, watch wait bar, close frames with answers; read
about_episodic_memory*.md. - Sleep — use deliberately for dream scenarios; remember limited stimuli.
- Saves — save memory to file before experiments; Sx and Uh are irreversible for the session without reload.
For a developer:
- Keep script order in
index.html(end-of-file comment required). - New persistent data — one entry in
BEAST.persistentModules. - Update
about_*.mdand if neededPROJECT_STATE_FOR_NEW_CHAT.mdwith logic changes. - Architecture detail —
manuals/Mad_programmer_manual.md.
This document matches the BEAST codebase; if UI and behavior diverge, the repository implementation wins.