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.

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

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

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

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

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”:

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)

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:


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

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


6. Growing Beast: sequence and focus

Suggested order for an operator-researcher (no code edits):

  1. Learn pulse and vitals — run Bad/Well scenarios, watch contexts and DiffZnacher.
  2. Learn stimuli — start with motivation and neutral, then positive/negative; watch OR readiness and understanding model (i).
  3. Watch tree and info picture — how Base, emotion, activity, step, stimulus connect.
  4. Episodic memory — use t for tests, watch wait bar, close frames with answers; read about_episodic_memory*.md.
  5. Sleep — use deliberately for dream scenarios; remember limited stimuli.
  6. Saves — save memory to file before experiments; Sx and Uh are irreversible for the session without reload.

For a developer:


This document matches the BEAST codebase; if UI and behavior diverge, the repository implementation wins.