Documentation

Learning instruments

36 behaviors · std/behaviors

atoms

std-learn-arrangement

a config-declared roster of items (each with a correct position index and an optional hint) is tapped one at a time from a remaining-items button row onto a growing sequence of ordered slots rendered on a math-canvas; a tapped item becomes unavailable, an Undo button removes the last placement, and once every slot is filled a Check button grades the arrangement with per-slot correct/wrong coloring, a score readout, and a verdict badge. Retry clears the placements and keeps the same roster. Item vocabulary is entirely config-declared, so the same mechanism serves any ordering task (process steps, chronology, procedure, ranking) standalone. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnArrangement from "std/behaviors/std-learn-arrangement"

Entity: LearnArrangementScene (runtime)

Traits

Traiteventsemits
LearnArrangementSimMODE_SELECTED, PLACE, UNDO, CHECK, RETRYARRANGEMENT_CHECKED, ARRANGEMENT_RESET, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
LearnArrangementSimanimatebooleanAnimate
LearnArrangementSimcheckLabelstringCheck Button Label
LearnArrangementSimcorrectColorstringCorrect Slot Color
LearnArrangementSimemptySlotColorstringEmpty Slot Color
LearnArrangementSimheightnumberHeight
LearnArrangementSimincorrectColorstringIncorrect Slot Color
LearnArrangementSiminteractivebooleanInteractive
LearnArrangementSimitems[LearnArrangementItem]Items
LearnArrangementSimmatchModestringMatch Mode
LearnArrangementSimpendingColorstringPending Slot Color
LearnArrangementSimretryLabelstringRetry Button Label
LearnArrangementSimslotBorderColorstringSlot Border Color
LearnArrangementSimslotFontSizestringSlot Text Size
LearnArrangementSimslotHeightnumberSlot Height (px)
LearnArrangementSimslotLeftnumberFirst Slot X (px)
LearnArrangementSimslotSpacingnumberSlot Spacing (px)
LearnArrangementSimslotTextColorstringSlot Text Color
LearnArrangementSimslotWidthnumberSlot Width (px)
LearnArrangementSimslotYnumberSlot Row Y (px)
LearnArrangementSimsummarystringConcept
LearnArrangementSimtitlestringTitle
LearnArrangementSimundoLabelstringUndo Button Label
LearnArrangementSimwidthnumberWidth

std-learn-classify

items are presented one at a time on a current-item card (with an optional config-declared hint), the learner picks a category from an ordered stacked-backdrop ladder (the picked rung rings, the correct rung glows green, a wrong pick glows red), an explicit verdict beat shows a correct/incorrect badge plus a config-declared explanation, a progress readout tracks item k of n and a running score, and after the last item the learner reaches an end-of-round summary with a per-category breakdown and a Retry affordance. Category and item vocabulary is entirely config-declared, so the same mechanism serves any classification domain (needs hierarchies, checks-and-balances, sociological imagination, and beyond) on a biology-canvas. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnClassify from "std/behaviors/std-learn-classify"

Entity: LearnClassifyScene (runtime)

Traits

Traiteventsemits
LearnClassifySimMODE_SELECTED, PICK, ADVANCE, RETRY, TOGGLE_RUNCLASSIFY_UPDATED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
LearnClassifySimadvanceLabelstringAdvance Button Label
LearnClassifySimadvanceMsnumberAuto-Advance Interval (ms)
LearnClassifySimanimatebooleanAnimate
LearnClassifySimautoRunbooleanAuto Run
LearnClassifySimbackgroundColorstringBackground Color
LearnClassifySimcategories[LearnClassifyOption]Categories
LearnClassifySimcorrectColorstringCorrect Highlight Color
LearnClassifySimheightnumberHeight
LearnClassifySimincorrectColorstringIncorrect Highlight Color
LearnClassifySiminteractivebooleanInteractive
LearnClassifySimitems[LearnClassifyItem]Items
LearnClassifySimloopRoundbooleanLoop Round
LearnClassifySimmatchModestringMatch Mode
LearnClassifySimorderStridenumberOrder Stride
LearnClassifySimpassScorenumberPass Score
LearnClassifySimpenaltyPerMissnumberPenalty Per Miss
LearnClassifySimpointsPerCorrectnumberPoints Per Correct
LearnClassifySimretryLabelstringRetry Button Label
LearnClassifySimscoreCapnumberScore Cap
LearnClassifySimshowHintbooleanShow Hint
LearnClassifySimsummarystringConcept
LearnClassifySimtapernumberTaper
LearnClassifySimtitlestringTitle
LearnClassifySimwidthnumberWidth

std-learn-compare

two instances of the same config-declared curve family (power y = A·xᴮ, linear y = A + B·x, or sine y = A·sin(B·x)) render overlaid on one canvas, each side driven by its own parameter pair of sliders, with a live delta readout of the two values at the midpoint x. Changing either side recomputes immediately, so the learner sees exactly how the two settings diverge. All labels and defaults are config-declared, so the same mechanism serves any side-by-side contrast: two interest rates compounding, two spring constants, two demand elasticities, two wave frequencies. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnCompare from "std/behaviors/std-learn-compare"

Entity: CompareScene (runtime)

Traits

Traiteventsemits
CompareSimMODE_SELECTED, SET_PARAMCOMPARISON_CHANGED

Config knobs

TraitKnobTypeLabel
CompareSimcompareTextstringCompare Text
CompareSimcurveKindstringCurve Kind
CompareSimgridStepnumberGrid Step
CompareSimheightnumberHeight
CompareSimleftADefaultnumberLeft A Default
CompareSimleftBDefaultnumberLeft B Default
CompareSimleftColorstringLeft Color
CompareSimleftLabelstringLeft Label
CompareSimmatchModestringMatch Mode
CompareSimparamALabelstringParameter A Label
CompareSimparamAMaxnumberParameter A Max
CompareSimparamAMinnumberParameter A Min
CompareSimparamAStepnumberParameter A Step
CompareSimparamBLabelstringParameter B Label
CompareSimparamBMaxnumberParameter B Max
CompareSimparamBMinnumberParameter B Min
CompareSimparamBStepnumberParameter B Step
CompareSimrightADefaultnumberRight A Default
CompareSimrightBDefaultnumberRight B Default
CompareSimrightColorstringRight Color
CompareSimrightLabelstringRight Label
CompareSimshowAxesbooleanShow Axes
CompareSimshowGridbooleanShow Grid
CompareSimsummarystringConcept
CompareSimtitlestringTitle
CompareSimwidthnumberWidth
CompareSimxMaxnumberX Max
CompareSimxMinnumberX Min

std-learn-coupled-sim

two named quantities evolve each tick under a config-selected interaction family (predator-prey: dP = aP − bPQ, dQ = cbPQ − dQ; epidemic: dS = −aSI, dI = aSI − bI; kinetics: dP = −aP, dQ = aP − bQ), drawn live as two time-series curves while Run is engaged. The two governing rates are exposed as sliders the learner can retune mid-run, and shock buttons inject or remove a burst of the first quantity so the learner feels how the coupled system absorbs disturbance. All names, coefficients, and scales are config-declared, so one mechanism serves rabbits and foxes, infection and recovery, reactant and product, adopters and churn. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnCoupledSim from "std/behaviors/std-learn-coupled-sim"

Entity: CoupledSimScene (runtime)

Traits

Traiteventsemits
CoupledSimSimMODE_SELECTED, TOGGLE_RUN, SPEED_SET, RUN, PAUSE, RESET, SET_A, SET_B, SHOCKRUN_TOGGLED, SIM_RESET, COEFS_CHANGED, SHOCK_APPLIED

Config knobs

TraitKnobTypeLabel
CoupledSimSimautoRunbooleanAuto Run
CoupledSimSimcoefADefaultnumberCoefficient A Default
CoupledSimSimcoefALabelstringCoefficient A Label
CoupledSimSimcoefAMaxnumberCoefficient A Max
CoupledSimSimcoefAMinnumberCoefficient A Min
CoupledSimSimcoefAStepnumberCoefficient A Step
CoupledSimSimcoefBDefaultnumberCoefficient B Default
CoupledSimSimcoefBLabelstringCoefficient B Label
CoupledSimSimcoefBMaxnumberCoefficient B Max
CoupledSimSimcoefBMinnumberCoefficient B Min
CoupledSimSimcoefBStepnumberCoefficient B Step
CoupledSimSimcoefCnumberCoefficient C
CoupledSimSimcoefDnumberCoefficient D
CoupledSimSimdurationnumberDuration
CoupledSimSimgridStepnumberGrid Step
CoupledSimSimheightnumberHeight
CoupledSimSimkindstringInteraction Family
CoupledSimSimmatchModestringMatch Mode
CoupledSimSimpColorstringP Color
CoupledSimSimpLabelstringP Label
CoupledSimSimpStartnumberP Start
CoupledSimSimqColorstringQ Color
CoupledSimSimqLabelstringQ Label
CoupledSimSimqStartnumberQ Start
CoupledSimSimshockDownLabelstringShock Down Label
CoupledSimSimshockSizenumberShock Size
CoupledSimSimshockUpLabelstringShock Up Label
CoupledSimSimsummarystringConcept
CoupledSimSimtaskTextstringTask Text
CoupledSimSimtimeScalenumberTime Scale
CoupledSimSimtitlestringTitle
CoupledSimSimvalueMaxnumberValue Max
CoupledSimSimwidthnumberWidth

std-learn-derivation

config-declared starting lines (facts and two-sided links) sit in a scrollable derivation panel with per-line badges, a roster of config-declared candidate steps render as buttons, and picking one dynamically matches it against the CURRENT lines (a left/right side of some link plus a same/opposite negation sense) to derive a new line, appending it with config-declared badge styling on success or surfacing a config-declared feedback string on failure; an inline clock can auto-apply the first applicable candidate every autoApplyIntervalMs while running, a Reset restores the starting lines, and the goal is reached when a derived line's label matches the config-declared goal label. Left/right and same/opposite are structural roles, not domain vocabulary, so the same matching mechanism serves propositional inference, chained implications, precursor/product chemistry, or any other two-sided-relation derivation on a biology-canvas-free text panel. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnDerivation from "std/behaviors/std-learn-derivation"

Entity: LearnDerivationScene (runtime)

Traits

Traiteventsemits
LearnDerivationSimMODE_SELECTED, APPLY_STEP, TOGGLE_RUN, RESETDERIVATION_UPDATED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
LearnDerivationSimautoApplyIntervalMsnumberAuto-Apply Interval (ms)
LearnDerivationSimautoRunbooleanAuto Run
LearnDerivationSimautoRunOffMessagestringAuto Run Off Message
LearnDerivationSimautoRunOnMessagestringAuto Run On Message
LearnDerivationSimcandidates[LearnDerivationCandidate]Candidates
LearnDerivationSimgoalLabelstringGoal
LearnDerivationSimgoalPrefixstringGoal Caption Prefix
LearnDerivationSimgoalReachedMessagestringGoal Reached Message
LearnDerivationSimheightnumberHeight
LearnDerivationSimmatchModestringMatch Mode
LearnDerivationSimnegationSymbolstringNegation Symbol
LearnDerivationSimnoStepAvailableMessagestringNo Step Available Message
LearnDerivationSimpremises[LearnDerivationLine]Premises
LearnDerivationSimresetLabelstringReset Button Label
LearnDerivationSimsummarystringConcept
LearnDerivationSimtitlestringTitle
LearnDerivationSimwidthnumberWidth

std-learn-diagram

Generic annotated-diagram instrument. Contract: a config-declared roster of labeled parts (id, label, description, x, y, radius, color) plus optional connector links (from, to, color, label); the whole diagram renders as circles connected by lines with always-visible part labels on a biology-canvas; the learner selects a part via its choice-button and the selected part is visually emphasized with a highlight ring and enlarged radius while its description renders in a caption card alongside a "part k of n selected" readout; a Clear button returns to the no-selection overview state where the caption card shows a config-declared overview text. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnDiagram from "std/behaviors/std-learn-diagram"

Entity: LearnDiagramScene (runtime)

Traits

Traiteventsemits
LearnDiagramSimMODE_SELECTED, SELECT_PART, CLEAR_PARTPART_SELECTED, SELECTION_CLEARED

Config knobs

TraitKnobTypeLabel
LearnDiagramSimbackgroundColorstringBackground Color
LearnDiagramSimclearLabelstringClear Button Label
LearnDiagramSimheightnumberHeight
LearnDiagramSimhighlightColorstringHighlight Color
LearnDiagramSimlinks[LearnDiagramLink]Links
LearnDiagramSimmatchModestringMatch Mode
LearnDiagramSimoverviewTextstringOverview Text
LearnDiagramSimparts[LearnDiagramPart]Parts
LearnDiagramSimsummarystringConcept
LearnDiagramSimtitlestringTitle
LearnDiagramSimwidthnumberWidth

std-learn-doser

the learner adds a quantity in large or small config-declared increments (or lets it auto-drip on its own inline clock) and watches an accumulated dose climb through a config-declared roster of bands/zones (thresholds, labels, colors all config), rendered as a reservoir/source vessel pair plus a dose-history trace on a canvas. Crossing into a terminal band is irreversible — done latches true and only Reset revives it. Standalone by default it renders its own control strip AND scene canvas; set showCanvas false to embed only the control strip (via @trait.<name>) beneath a composed sibling trait that owns the domain-accurate scene — see std-chem-titration for the transport-sibling shape. Behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnDoser from "std/behaviors/std-learn-doser"

Entity: DoserScene (runtime)

Traits

Traiteventsemits
LearnDoserSimMODE_SELECTED, ADD_SMALL, ADD_LARGE, TOGGLE_DRIP, RESETDOSE_ADDED, DOSE_RESET, DOSER_UPDATED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
LearnDoserSimautoDripbooleanAuto Drip
LearnDoserSimbackgroundColorstringBackground Color
LearnDoserSimbands[DoserBand]Bands
LearnDoserSimcapacitynumberCapacity
LearnDoserSimdripIntervalMsnumberDrip Interval (ms)
LearnDoserSimheightnumberHeight
LearnDoserSimhistoryLengthnumberDose History
LearnDoserSimmatchModestringMatch Mode
LearnDoserSimquantityLabelstringQuantity Label
LearnDoserSimreservoirLabelstringReservoir Label
LearnDoserSimseries[string]Palette
LearnDoserSimshowCanvasbooleanShow Canvas
LearnDoserSimsourceColorstringSource Color
LearnDoserSimsourceLabelstringSource Label
LearnDoserSimstepLargenumberLarge Step
LearnDoserSimstepSmallnumberSmall Step
LearnDoserSimsummarystringConcept
LearnDoserSimtitlestringTitle
LearnDoserSimunitstringUnit
LearnDoserSimwidthnumberWidth
LearnDoserSimzoneReadoutLabelstringZone Readout Label

std-learn-estimate

a config-declared prompt roster asks for a quantity, the learner commits an estimate on a slider and locks it in, and the guess is graded by relative-error band: within the exact band scores full points, within the close band partial, outside none, with the true answer and the learner's percentage error revealed after each lock-in and a running score across the round. All vocabulary and bands are config-declared, so the same mechanism serves any quantitative intuition: orders of magnitude, unit conversions, historical dates, population sizes, physical constants, probabilities. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnEstimate from "std/behaviors/std-learn-estimate"

Entity: EstimateScene (runtime)

Traits

Traiteventsemits
EstimateSimMODE_SELECTED, SET_ESTIMATE, LOCK_IN, NEXT, RETRYESTIMATE_JUDGED, PROMPT_ADVANCED, ROUND_RESTARTED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
EstimateSimclosePctnumberClose Band
EstimateSimclosePointsnumberClose Points
EstimateSimexactPctnumberExact Band
EstimateSimexactPointsnumberExact Points
EstimateSimlockLabelstringLock Label
EstimateSimmatchModestringMatch Mode
EstimateSimnextLabelstringNext Label
EstimateSimprompts[EstimatePrompt]Prompts
EstimateSimretryLabelstringRetry Label
EstimateSimsliderDefaultnumberSlider Default
EstimateSimsliderMaxnumberSlider Max
EstimateSimsliderMinnumberSlider Min
EstimateSimsliderStepnumberSlider Step
EstimateSimsummarystringConcept
EstimateSimtitlestringTitle

std-learn-fx-cues

correct/wrong beats, streak glow at a threshold, and a celebration on completion. Cues are typed FxCue config values carrying their own style (position, ttl, screen effect, color), so a lab opts in with two uses lines plus an overlay node and restyles or disables any cue purely through config; the instruments never learn about visuals, and this atom never learns about subjects. A new judged event elsewhere in the substrate means a new arm here — this listens list is the closed extension point. Renders nothing.

lolo
1 uses LearnFxCues from "std/behaviors/std-learn-fx-cues"

Entity: LearnFxCuesScene (runtime)

Traits

Traiteventsemits
LearnFxCuesANSWER_JUDGED, TAP_JUDGED, ESTIMATE_JUDGED, CLASSIFY_UPDATED, ARRANGEMENT_CHECKED, GOAL_CHECKED, LEARN_ROUND_COMPLETE, TRACE_DONEBURST

Config knobs

TraitKnobTypeLabel
LearnFxCuesbandCues[FxBandCue]Band Cues
LearnFxCuescelebrationCueFxCueCelebration Cue
LearnFxCuescorrectCueFxCueCorrect Cue
LearnFxCuesprogressCueFxCueProgress Cue
LearnFxCuesrunningbooleanRunning
LearnFxCuesstreakCueFxCueStreak Cue
LearnFxCuesstreakThresholdnumberStreak Threshold
LearnFxCuesverdictCues[FxBandCue]Verdict Cues
LearnFxCueswrongCueFxCueWrong Cue

std-learn-goal-seek

a config-declared target curve is drawn from a hidden parameter pair, and the learner tunes their own two parameters with sliders until their curve matches it, then presses Check to be graded against an RMS-distance tolerance. The curve family (power y = A·xᴮ, linear y = A + B·x, or sine y = A·sin(B·x)), the hidden target parameters, the tolerance, and every label are config-declared, so the same mechanism serves any inverse problem: fit a demand curve, match a projectile arc, tune a growth rate, recover a wave's amplitude and frequency. A live distance readout (optionally hidden for a harder variant) plays warmer/colder. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnGoalSeek from "std/behaviors/std-learn-goal-seek"

Entity: GoalSeekScene (runtime)

Traits

Traiteventsemits
GoalSeekSimMODE_SELECTED, SET_PARAM_A, SET_PARAM_B, CHECK, RESETPARAMS_CHANGED, GOAL_CHECKED, GOAL_RESET, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
GoalSeekSimcheckLabelstringCheck Label
GoalSeekSimcurveKindstringCurve Kind
GoalSeekSimgoalTextstringGoal Text
GoalSeekSimgridStepnumberGrid Step
GoalSeekSimheightnumberHeight
GoalSeekSimlearnerColorstringLearner Color
GoalSeekSimlearnerLabelstringLearner Label
GoalSeekSimmatchModestringMatch Mode
GoalSeekSimparamADefaultnumberParameter A Default
GoalSeekSimparamALabelstringParameter A Label
GoalSeekSimparamAMaxnumberParameter A Max
GoalSeekSimparamAMinnumberParameter A Min
GoalSeekSimparamAStepnumberParameter A Step
GoalSeekSimparamBDefaultnumberParameter B Default
GoalSeekSimparamBLabelstringParameter B Label
GoalSeekSimparamBMaxnumberParameter B Max
GoalSeekSimparamBMinnumberParameter B Min
GoalSeekSimparamBStepnumberParameter B Step
GoalSeekSimshowAxesbooleanShow Axes
GoalSeekSimshowGridbooleanShow Grid
GoalSeekSimshowLiveDistancebooleanShow Live Distance
GoalSeekSimsummarystringConcept
GoalSeekSimtargetAnumberTarget A
GoalSeekSimtargetBnumberTarget B
GoalSeekSimtargetColorstringTarget Color
GoalSeekSimtargetLabelstringTarget Label
GoalSeekSimtitlestringTitle
GoalSeekSimtolerancenumberTolerance
GoalSeekSimwidthnumberWidth
GoalSeekSimxMaxnumberX Max
GoalSeekSimxMinnumberX Min

std-learn-grid-sim

a tappable cellular grid evolves under a config-selected local rule: life (Conway's birth-3, survive-2-or-3), spread (anything with an active 4-neighbour activates — wavefronts, fire, contagion), or diffusion (each cell relaxes toward its neighbourhood average with decay — heat, concentration). The learner seeds the world by tapping cells directly on the canvas, then Runs, Pauses, or single-Steps the evolution, with a generation counter and live active-cell census. Rule, grid dimensions, seeds, and palette are all config-declared, so one mechanism serves emergence, percolation, epidemic fronts, heat flow, and any local-rules-global-behaviour lesson. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnGridSim from "std/behaviors/std-learn-grid-sim"

Entity: GridSimScene (runtime)

Traits

Traiteventsemits
GridSimSimMODE_SELECTED, TOGGLE_RUN, SPEED_SET, RUN, PAUSE, STEP, TAP_CELL, RESETRUN_TOGGLED, GRID_STEPPED, CELL_TOGGLED, GRID_RESET

Config knobs

TraitKnobTypeLabel
GridSimSimautoRunbooleanAuto Run
GridSimSimbackgroundColorstringBackground Color
GridSimSimcellSizenumberCell Size
GridSimSimcolsnumberColumns
GridSimSimdecaynumberDecay
GridSimSimdiffuseRatenumberDiffuse Rate
GridSimSimheightnumberHeight
GridSimSimlowColorstringLow Color
GridSimSimmatchModestringMatch Mode
GridSimSimmidColorstringMid Color
GridSimSimoffColorstringOff Color
GridSimSimonColorstringOn Color
GridSimSimrowsnumberRows
GridSimSimrulestringRule
GridSimSimseeds[number]Seeds
GridSimSimstepLabelstringStep Label
GridSimSimsummarystringConcept
GridSimSimtaskTextstringTask Text
GridSimSimtitlestringTitle
GridSimSimwidthnumberWidth

std-learn-hotspot

a config-declared roster of labeled hotspots (id, label, x, y, radius, color) renders on a learning-canvas, and a config-declared prompt roster asks the learner to tap the right part directly on the canvas: a first-try hit scores, a miss names what was actually tapped and invites another try, and a hit reveals the part's explanation with a highlight ring before advancing. All vocabulary is config-declared, so the same mechanism serves any labeled scene: organs on a cell, countries on a sketch map, components on a circuit, bones on a skeleton. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnHotspot from "std/behaviors/std-learn-hotspot"

Entity: HotspotScene (runtime)

Traits

Traiteventsemits
HotspotSimMODE_SELECTED, TAP_SHAPE, NEXT, RETRYTAP_JUDGED, PROMPT_ADVANCED, ROUND_RESTARTED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
HotspotSimbackgroundColorstringBackground Color
HotspotSimheightnumberHeight
HotspotSimhitColorstringHit Ring Color
HotspotSimmatchModestringMatch Mode
HotspotSimnextLabelstringNext Label
HotspotSimprompts[HotspotPrompt]Prompts
HotspotSimretryLabelstringRetry Label
HotspotSimshapes[HotspotShape]Hotspots
HotspotSimsummarystringConcept
HotspotSimtitlestringTitle
HotspotSimwidthnumberWidth

std-learn-live-sim

the live-integration sibling of std-physics-projectile: config-declared initial bodies (position, velocity, radius, color) fall under gravity, lose speed to damping, and bounce off the world bounds every tick while Run is engaged; Pause freezes the simulation and Reset restores the initial bodies. Gravity and damping are each exposed as a range-slider so the learner can retune the dynamics live, with a readout of elapsed ticks and a sample body's current speed. So the same mechanism serves any bouncing-particle domain (gas molecules, falling objects, orbit sketches, and beyond) on a physics-canvas. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnLiveSim from "std/behaviors/std-learn-live-sim"

Entity: LiveSimScene (runtime)

Traits

Traiteventsemits
LiveSimSimMODE_SELECTED, TOGGLE_RUN, RUN, PAUSE, RESET, SET_GRAVITY, SET_DAMPINGRUN_TOGGLED, SIM_RESET

Config knobs

TraitKnobTypeLabel
LiveSimSimbackgroundColorstringBackground Color
LiveSimSimbodies[LiveSimBody]Bodies
LiveSimSimdampingnumberDamping
LiveSimSimgravitynumberGravity
LiveSimSimheightnumberHeight
LiveSimSimmatchModestringMatch Mode
LiveSimSimrestitutionnumberRestitution
LiveSimSimrunningbooleanRunning
LiveSimSimshowVelocitybooleanShow Velocity
LiveSimSimsummarystringConcept
LiveSimSimtitlestringTitle
LiveSimSimvelocityScalenumberVelocity Scale
LiveSimSimwidthnumberWidth

std-learn-measure

a config-declared signal (sine A·sin(B·t), growth A·(1+B)ᵗ, or half-life decay A·(1/2)^(t/B)) evolves live while Run is engaged, drawing its trace across the chart, and the learner presses Probe to record the instantaneous value as a data point: recorded points accumulate on the chart with a running sample count and mean, teaching the discipline of sampling a changing quantity rather than reading a printed table. Pause freezes time mid-run and Reset clears the experiment. All vocabulary and dynamics are config-declared, so the same mechanism serves any measure-the-system exercise: temperature during a reaction, voltage on a discharging capacitor, population through a season, a pendulum's displacement. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnMeasure from "std/behaviors/std-learn-measure"

Entity: MeasureScene (runtime)

Traits

Traiteventsemits
MeasureSimMODE_SELECTED, TOGGLE_RUN, SPEED_SET, RUN, PAUSE, PROBE, RESETRUN_TOGGLED, PROBE_RECORDED, MEASURE_RESET

Config knobs

TraitKnobTypeLabel
MeasureSimamplitudenumberAmplitude
MeasureSimdurationnumberDuration
MeasureSimgridStepnumberGrid Step
MeasureSimheightnumberHeight
MeasureSimmatchModestringMatch Mode
MeasureSimprobeColorstringProbe Color
MeasureSimprobeLabelstringProbe Label
MeasureSimratenumberRate
MeasureSimsignalColorstringSignal Color
MeasureSimsignalKindstringSignal Kind
MeasureSimsummarystringConcept
MeasureSimtaskTextstringTask Text
MeasureSimtitlestringTitle
MeasureSimvalueLabelstringValue Label
MeasureSimvalueMaxnumberValue Max
MeasureSimvalueMinnumberValue Min
MeasureSimwidthnumberWidth

std-learn-param-explorer

two sliders drive a config-selected curve family (power y = A·xᴮ, linear y = A + B·x, or sine y = A·sin(B·x)) sampled onto a math-canvas, with a live readout of both parameters and the curve's value at the midpoint x. Subject atoms narrow the curve family and parameter labels through config; this atom owns only the sample-and-recompute mechanics. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnParamExplorer from "std/behaviors/std-learn-param-explorer"

Entity: ParamExplorerScene (runtime)

Traits

Traiteventsemits
ParamExplorerSimMODE_SELECTED, SET_PARAM_A, SET_PARAM_BPARAMS_CHANGED

Config knobs

TraitKnobTypeLabel
ParamExplorerSimanimatebooleanAnimate
ParamExplorerSimcolorstringCurve Color
ParamExplorerSimcurveKindstringCurve Kind
ParamExplorerSimgridStepnumberGrid Step
ParamExplorerSimheightnumberHeight
ParamExplorerSiminteractivebooleanInteractive
ParamExplorerSimmatchModestringMatch Mode
ParamExplorerSimparamADefaultnumberParameter A Default
ParamExplorerSimparamALabelstringParameter A Label
ParamExplorerSimparamAMaxnumberParameter A Max
ParamExplorerSimparamAMinnumberParameter A Min
ParamExplorerSimparamAStepnumberParameter A Step
ParamExplorerSimparamBDefaultnumberParameter B Default
ParamExplorerSimparamBLabelstringParameter B Label
ParamExplorerSimparamBMaxnumberParameter B Max
ParamExplorerSimparamBMinnumberParameter B Min
ParamExplorerSimparamBStepnumberParameter B Step
ParamExplorerSimshowAxesbooleanShow Axes
ParamExplorerSimshowGridbooleanShow Grid
ParamExplorerSimsummarystringConcept
ParamExplorerSimtitlestringTitle
ParamExplorerSimwidthnumberWidth
ParamExplorerSimxMaxnumberX Max
ParamExplorerSimxMinnumberX Min

std-learn-perturb

a single named quantity relaxes each tick toward an adjustable setpoint at an adjustable recovery rate (dV = k·(E − V)), drawn live against the setpoint line. Shock buttons knock the quantity up or down mid-run and the learner watches it recover; moving the setpoint slider mid-run makes the system chase a new equilibrium, and the recovery-rate slider shows sluggish versus snappy regulation. All names and scales are config-declared, so one mechanism serves every negative-feedback lesson: body temperature homeostasis, a thermostat, market price around equilibrium, blood glucose, reservoir level, ecological resilience. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnPerturb from "std/behaviors/std-learn-perturb"

Entity: PerturbScene (runtime)

Traits

Traiteventsemits
PerturbSimMODE_SELECTED, TOGGLE_RUN, SPEED_SET, RUN, PAUSE, RESET, SET_POINT, SET_RATE, SHOCKRUN_TOGGLED, SIM_RESET, SETPOINT_CHANGED, RATE_CHANGED, SHOCK_APPLIED

Config knobs

TraitKnobTypeLabel
PerturbSimautoRunbooleanAuto Run
PerturbSimdurationnumberDuration
PerturbSimgridStepnumberGrid Step
PerturbSimheightnumberHeight
PerturbSimmatchModestringMatch Mode
PerturbSimrateDefaultnumberRate Default
PerturbSimrateLabelstringRate Label
PerturbSimrateMaxnumberRate Max
PerturbSimrateMinnumberRate Min
PerturbSimrateStepnumberRate Step
PerturbSimsetpointColorstringSetpoint Color
PerturbSimsetpointDefaultnumberSetpoint Default
PerturbSimsetpointLabelstringSetpoint Label
PerturbSimsetpointMaxnumberSetpoint Max
PerturbSimsetpointMinnumberSetpoint Min
PerturbSimsetpointStepnumberSetpoint Step
PerturbSimshockDownLabelstringShock Down Label
PerturbSimshockSizenumberShock Size
PerturbSimshockUpLabelstringShock Up Label
PerturbSimsummarystringConcept
PerturbSimtaskTextstringTask Text
PerturbSimtitlestringTitle
PerturbSimvalueColorstringValue Color
PerturbSimvalueLabelstringValue Label
PerturbSimvalueMaxnumberValue Max
PerturbSimvalueMinnumberValue Min
PerturbSimvalueStartnumberValue Start
PerturbSimwidthnumberWidth

std-learn-predict

each config-declared scenario states a setup and a question, the learner commits to one of the predicted outcomes, and only then does the outcome play out: a timed reveal draws the scenario's declared value frames one by one as a growing curve with per-frame captions, ending in a verdict against the committed prediction and the scenario's explanation, with a running score across scenarios. All vocabulary is config-declared, so the same mechanism serves any commit-before-you-see teaching beat: what happens to the population, which way does the price move, does the reaction speed up, where does the phase go next. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnPredict from "std/behaviors/std-learn-predict"

Entity: PredictScene (runtime)

Traits

Traiteventsemits
PredictSimMODE_SELECTED, PREDICT, NEXT, RETRYPREDICTION_COMMITTED, SCENARIO_ADVANCED, ROUND_RESTARTED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
PredictSimgridStepnumberGrid Step
PredictSimheightnumberHeight
PredictSimmatchModestringMatch Mode
PredictSimnextLabelstringNext Label
PredictSimretryLabelstringRetry Label
PredictSimrevealColorstringReveal Color
PredictSimrevealLabelstringReveal Label
PredictSimscenarios[PredictScenario]Scenarios
PredictSimsummarystringConcept
PredictSimtitlestringTitle
PredictSimvalueMaxnumberValue Max
PredictSimvalueMinnumberValue Min
PredictSimwidthnumberWidth

std-learn-sample-accumulator

a Draw button adds a batch of pseudo-random samples from a config-selected source (uniform 0..1, or a coin flip weighted by bias) into a fixed-bin histogram on a math-canvas, with running sample count, running mean, and (for the coin source) observed proportion vs bias. Subject atoms narrow the source kind and labels through config; this atom owns only the draw-and-accumulate mechanics. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnSampleAccumulator from "std/behaviors/std-learn-sample-accumulator"

Entity: SampleAccumulatorScene (runtime)

Traits

Traiteventsemits
SampleAccumulatorSimMODE_SELECTED, DRAW, SET_BATCH_SIZE, RESETSAMPLES_DRAWN, ACCUMULATOR_RESET

Config knobs

TraitKnobTypeLabel
SampleAccumulatorSimbatchSizenumberBatch Size
SampleAccumulatorSimbiasnumberBias
SampleAccumulatorSimbinCountnumberBin Count
SampleAccumulatorSimcolorstringBar Color
SampleAccumulatorSimheightnumberHeight
SampleAccumulatorSimmatchModestringMatch Mode
SampleAccumulatorSimsourceKindstringSource Kind
SampleAccumulatorSimsummarystringConcept
SampleAccumulatorSimtitlestringTitle
SampleAccumulatorSimwidthnumberWidth

std-learn-sandbox

a config-declared roster of elements (each with a weight and a default enabled state) sits on a biology-canvas connected by config-declared links; each element has a toggle button, and toggling recomputes a derived total (the summed weight of enabled elements) against a config-declared threshold, with a readout stating whether the system currently holds. Links to or from a disabled element render dimmed. Reset restores every element to its config-declared default. Element and link vocabulary is entirely config-declared, so the same mechanism serves any threshold-system exploration (coalition building, load balancing, ecosystem tipping points, circuit continuity) standalone. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnSandbox from "std/behaviors/std-learn-sandbox"

Entity: LearnSandboxScene (runtime)

Traits

Traiteventsemits
LearnSandboxSimMODE_SELECTED, TOGGLE, RESETSYSTEM_CHANGED, SANDBOX_RESET

Config knobs

TraitKnobTypeLabel
LearnSandboxSimanimatebooleanAnimate
LearnSandboxSimbackgroundColorstringBackground Color
LearnSandboxSimdisabledColorstringDisabled Node Color
LearnSandboxSimdisabledEdgeColorstringDisabled Edge Color
LearnSandboxSimelements[LearnSandboxElement]Elements
LearnSandboxSimenabledColorstringEnabled Node Color
LearnSandboxSimenabledEdgeColorstringEnabled Edge Color
LearnSandboxSimheightnumberHeight
LearnSandboxSiminteractivebooleanInteractive
LearnSandboxSimlinks[LearnSandboxLink]Links
LearnSandboxSimmatchModestringMatch Mode
LearnSandboxSimnodeRadiusnumberNode Radius
LearnSandboxSimoutcomeLabelstringOutcome Label
LearnSandboxSimresetLabelstringReset Button Label
LearnSandboxSimsummarystringConcept
LearnSandboxSimthresholdnumberThreshold
LearnSandboxSimtitlestringTitle
LearnSandboxSimwidthnumberWidth

std-learn-scatter-fit

points on a math-canvas (config-declared axis ranges/labels/colors) with a live least-squares refit: slope, intercept, r, and R² recompute as points are added (button or auto-add tick, up to maxPoints) or dragged. An optional guess-then-reveal mode lets the learner drag slope/intercept sliders to propose a line, scored against the fit until Reveal Fit; dashed residual segments and the r/R² readout are config-toggleable. Run/Pause drives a fixed-interval auto-add tick, Reset reseeds from the configured point roster. SCATTER_FIT_UPDATED broadcasts the fit after every learner action, tick, or reset. Every button label, caption, curve label/color, and narration phrase is config-declared so the same mechanism serves any scatter-fit domain (correlation, physics data fitting, trend lines, and beyond) on a math-canvas. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnScatterFit from "std/behaviors/std-learn-scatter-fit"

Entity: LearnScatterFitScene (runtime)

Traits

Traiteventsemits
LearnScatterFitSimMODE_SELECTED, ADD_POINT, DRAG_POINT, GUESS_LINE, REVEAL_FIT, TOGGLE_RUN, RESETLEARN_SCATTER_FIT_UPDATED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
LearnScatterFitSimaddPointLabelstringAdd Point Button Label
LearnScatterFitSimanimatebooleanAnimate
LearnScatterFitSimautoRunbooleanAuto Run
LearnScatterFitSimaxisXMaxnumberX Axis Max
LearnScatterFitSimaxisXMinnumberX Axis Min
LearnScatterFitSimaxisYMaxnumberY Axis Max
LearnScatterFitSimaxisYMinnumberY Axis Min
LearnScatterFitSimfitColorstringFit Curve Color
LearnScatterFitSimfitLabelstringFit Curve Label
LearnScatterFitSimgridStepnumberGrid Step
LearnScatterFitSimguessColorstringGuess Curve Color
LearnScatterFitSimguessInterceptCaptionstringGuess Intercept Caption
LearnScatterFitSimguessInterceptMaxnumberGuess Intercept Max
LearnScatterFitSimguessInterceptMinnumberGuess Intercept Min
LearnScatterFitSimguessInterceptStepnumberGuess Intercept Step
LearnScatterFitSimguessLabelstringGuess Curve Label
LearnScatterFitSimguessModebooleanGuess Mode
LearnScatterFitSimguessSlopeCaptionstringGuess Slope Caption
LearnScatterFitSimguessSlopeMaxnumberGuess Slope Max
LearnScatterFitSimguessSlopeMinnumberGuess Slope Min
LearnScatterFitSimguessSlopeStepnumberGuess Slope Step
LearnScatterFitSimheightnumberHeight
LearnScatterFitSiminitialPoints[LearnScatterFitPoint]Initial Points
LearnScatterFitSiminteractivebooleanInteractive
LearnScatterFitSimmatchModestringMatch Mode
LearnScatterFitSimmaxPointsnumberMax Points
LearnScatterFitSimnarrationAddedTemplatestringAdded Narration Template
LearnScatterFitSimnarrationAutoAddingTemplatestringAuto-Adding Narration
LearnScatterFitSimnarrationFitRevealedTemplatestringFit Revealed Narration Template
LearnScatterFitSimnarrationGuessUpdatedTemplatestringGuess Updated Narration Template
LearnScatterFitSimnarrationLoadedTemplatestringLoaded Narration Template
LearnScatterFitSimnarrationMaxReachedSuffixstringMax Reached Narration Suffix
LearnScatterFitSimnarrationMovedTemplatestringMoved Narration Template
LearnScatterFitSimnarrationPausedTemplatestringPaused Narration
LearnScatterFitSimnewPointColorstringNew Point Color
LearnScatterFitSimnewPointRadiusnumberNew Point Radius
LearnScatterFitSimpauseLabelstringPause Button Label
LearnScatterFitSimpointMarginPctnumberPoint Margin Percent
LearnScatterFitSimresetLabelstringReset Button Label
LearnScatterFitSimresidualColorstringResidual Color
LearnScatterFitSimresidualDashstringResidual Dash Style
LearnScatterFitSimrevealLabelstringReveal Fit Button Label
LearnScatterFitSimrunLabelstringRun Button Label
LearnScatterFitSimshowAxesbooleanShow Axes
LearnScatterFitSimshowGridbooleanShow Grid
LearnScatterFitSimshowRbooleanShow r and R²
LearnScatterFitSimshowResidualsbooleanShow Residuals
LearnScatterFitSimshowTickLabelsbooleanShow Tick Labels
LearnScatterFitSimsummarystringConcept
LearnScatterFitSimtitlestringTitle
LearnScatterFitSimwidthnumberWidth

std-learn-scenario

a config-declared node graph of situations and choices plays out as a choose-your-path story with modeled consequences: every choice shifts two config-named metrics, appends to a visible decision log, and moves to its declared next node, until a node with no choices ends the run with the final metrics and the full path. This simulates decisions rather than browsing records: the learner feels trade-offs compound. All vocabulary is config-declared, so the same mechanism serves any consequence-chain lesson: fiscal policy choices, ecosystem interventions, historical what-ifs, medical triage, engineering trade-offs. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnScenario from "std/behaviors/std-learn-scenario"

Entity: ScenarioScene (runtime)

Traits

Traiteventsemits
ScenarioSimMODE_SELECTED, CHOOSE, RESTARTCHOICE_MADE, SCENARIO_RESTARTED

Config knobs

TraitKnobTypeLabel
ScenarioSimmatchModestringMatch Mode
ScenarioSimmetricALabelstringMetric A Label
ScenarioSimmetricAStartnumberMetric A Start
ScenarioSimmetricBLabelstringMetric B Label
ScenarioSimmetricBStartnumberMetric B Start
ScenarioSimnodes[ScenarioNode]Nodes
ScenarioSimrestartLabelstringRestart Label
ScenarioSimstartIdstringStart Node
ScenarioSimsummarystringConcept
ScenarioSimtitlestringTitle

std-learn-sim-3d

a Play/Pause toggle, Reset and a SPEED_SET 0.5x/1x/2x/4x group (legacy RUN, PAUSE and SPEED_HALF/NORMAL/DOUBLE/QUAD events are still honored) drive a running flag and speed multiplier, and a 32ms tick advances steps and simTime by dt x speedMultiplier, emitting SIM_3D_TICK { dt, simTime } each step WITHOUT rendering; a composed sibling trait transitions directly on the SIM_3D_TICK / SIM_3D_UPDATED broadcasts (the same bare-event cascade the lab routers use), applies the domain physics, and owns the scene render — this atom renders no canvas. A caption readout shows steps, sim time, and current speed. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnSim3d from "std/behaviors/std-learn-sim-3d"

Entity: Learn3DSimScene (runtime)

Traits

Traiteventsemits
Learn3DSimTransportMODE_SELECTED, TOGGLE_RUN, SPEED_SET, RUN, PAUSE, RESET, SPEED_HALF, SPEED_NORMAL, SPEED_DOUBLE, SPEED_QUADSIM_3D_TICK, SIM_3D_UPDATED

Config knobs

TraitKnobTypeLabel
Learn3DSimTransportdtnumberTimestep
Learn3DSimTransportmatchModestringMatch Mode
Learn3DSimTransportrunningbooleanRunning
Learn3DSimTransportsummarystringConcept
Learn3DSimTransporttitlestringTitle

std-learn-slope-probe

the slope dy/dx, a tangent-line segment of half-width window centered on the contact point, a rise-over-run triangle (run triRun, rise slope·run), and the glow window of curve samples around the contact — all written to a [runtime, shared] entity so the board renders the math the player is physically riding. Emits the sparse SLOPE_CHANGED signal only when the slope crosses a 0.5 bucket boundary, so fx and HUD meters react to changes in steepness without paying a per-tick event. The curve is the same sample table the body skates and the canvas draws — one source, three views. Renders nothing.

lolo
1 uses LearnSlopeProbe from "std/behaviors/std-learn-slope-probe"

Entity: SlopeProbeState (runtime)

Traits

Traiteventsemits
LearnSlopeProbeSET_CURVE, BODY_MOVED, RESTARTSLOPE_CHANGED

Config knobs

TraitKnobTypeLabel
LearnSlopeProbecurve[ProbeSample]Curve
LearnSlopeProberunningbooleanRunning
LearnSlopeProbetriRunnumberTriangle Run
LearnSlopeProbewindownumberTangent Window

std-learn-speed-drill

a config-declared item roster of prompt + options runs against a live countdown: answering while the clock runs scores the base points plus a speed bonus proportional to the time left, letting the clock hit zero counts as a miss and reveals the answer, and a streak counter rewards consecutive hits with an end-of-round summary of score and best streak. All vocabulary and timing is config-declared, so the same mechanism serves any fluency drill: times tables, sight vocabulary, chemical symbols, flag recognition, interval identification — anywhere fast retrieval is the skill. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnSpeedDrill from "std/behaviors/std-learn-speed-drill"

Entity: SpeedDrillScene (runtime)

Traits

Traiteventsemits
SpeedDrillSimMODE_SELECTED, ANSWER, NEXT, RETRYANSWER_JUDGED, PROMPT_ADVANCED, ROUND_RESTARTED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
SpeedDrillSimbasePointsnumberBase Points
SpeedDrillSimitems[SpeedDrillItem]Items
SpeedDrillSimmatchModestringMatch Mode
SpeedDrillSimnextLabelstringNext Label
SpeedDrillSimretryLabelstringRetry Label
SpeedDrillSimspeedBonusnumberSpeed Bonus
SpeedDrillSimsummarystringConcept
SpeedDrillSimtimeLimitnumberTime Limit
SpeedDrillSimtitlestringTitle

std-learn-stepper

the learner moves a Next/Prev cursor across an ordered roster of stages laid out as a timeline: a legend names each category color, the cursor stage rings and grows while past/future stages stay visually distinct by reveal state, the current stage label and description render prominently in a card, a per-category running tally updates live, progress reads stage k of n, and the Prev/Next cursor clamps deliberately at either end with a narrated note rather than silently doing nothing. The category-lens filter dims non-matching stages instead of hiding them, keeping the whole timeline in view. Stage and category vocabulary is entirely config-declared, so the same mechanism serves any ordered-sequence domain (periodization timelines, phase cycles, stellar evolution, and beyond) on a math-canvas. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnStepper from "std/behaviors/std-learn-stepper"

Entity: LearnStepperScene (runtime)

Traits

Traiteventsemits
LearnStepperSimMODE_SELECTED, NEXT, PREV, FILTER_CATEGORY, RESET_STEPPERSTEPPER_ADVANCED

Config knobs

TraitKnobTypeLabel
LearnStepperSimallLabelstringAll Filter Label
LearnStepperSimallSummarystringAll-Lens Summary
LearnStepperSimanimatebooleanAnimate
LearnStepperSimatEndNotestringAt-End Note
LearnStepperSimaxisMarginLeftnumberAxis Left Margin
LearnStepperSimaxisMarginRightnumberAxis Right Margin
LearnStepperSimaxisYnumberAxis Y
LearnStepperSimbackgroundColorstringBackground Color
LearnStepperSimcategories[LearnStepperCategory]Categories
LearnStepperSimcategorySummaries[LearnStepperCategorySummary]Category Summaries
LearnStepperSimheightnumberHeight
LearnStepperSiminteractivebooleanInteractive
LearnStepperSimmarkerHighlightRadiusnumberMarker Highlight Radius
LearnStepperSimmarkerRadiusnumberMarker Radius
LearnStepperSimmatchModestringMatch Mode
LearnStepperSimmaxPositionnumberMax Position
LearnStepperSimminPositionnumberMin Position
LearnStepperSimstages[LearnStepperStage]Stages
LearnStepperSimstartPromptstringStart Prompt
LearnStepperSimsummarystringConcept
LearnStepperSimtitlestringTitle
LearnStepperSimunreachedColorstringUnreached Marker Color
LearnStepperSimwidthnumberWidth

std-learn-tour-3d

either way the camera retargets onto the selected station's x/y/z, the station enlarges, a name — caption narration renders, and a progress readout tracks visited stations until every station has been toured. A backdrop knob renders non-station scene geometry under the stations (painted, never toured). SYNC_STATIONS hot-swaps the roster mid-flight (a composed preset coordinator emits it with new stations/edges/backdrop; the tour adopts them and restarts progress at the first new station) — the single-writer entry point for dynamic rosters. Composed of a biology-canvas in 3D mode plus a tour state machine. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnTour3d from "std/behaviors/std-learn-tour-3d"

Entity: Learn3DTourScene (runtime)

Traits

Traiteventsemits
Learn3DTourSimMODE_SELECTED, TOUR, SELECT_STATION, RESET, SYNC_STATIONSTOUR_3D_UPDATED, LEARN_ROUND_COMPLETE

Config knobs

TraitKnobTypeLabel
Learn3DTourSimazimuthnumberAzimuth
Learn3DTourSimbackdrop[Learn3DStation]Backdrop Nodes
Learn3DTourSimbackgroundColorstringBackground Color
Learn3DTourSimedges[Learn3DEdge]Edges
Learn3DTourSimfovnumberField of View
Learn3DTourSimheightnumberHeight
Learn3DTourSimlightingLighting3DLighting
Learn3DTourSimmatchModestringMatch Mode
Learn3DTourSimpostPost3DPost Processing
Learn3DTourSimresetLabelstringReset Button Label
Learn3DTourSimstations[Learn3DStation]Stations
Learn3DTourSimsummarystringConcept
Learn3DTourSimtitlestringTitle
Learn3DTourSimtourLabelstringTour Button Label
Learn3DTourSimwidthnumberWidth
Learn3DTourSimzoomnumberZoom

std-learn-trace-player

the timed-autoplay sibling of std-learn-stepper: a config-declared ordered roster of frames (each frame a label, caption, and a numeric value snapshot with optional highlighted indices) advances on a fixed tick while Play is engaged, Pause freezes the cursor in place, and Restart rewinds to the first frame; reaching the last frame either loops back to the start (config loop) or stops and emits a completion signal. The current frame's values render as bars on an algorithm-canvas with highlighted indices picked out by color, alongside a frame k of n readout and a caption card narrating what changed, so the same mechanism serves any ordered numeric-trace domain (sorting steps, iterative approximations, simulation snapshots, and beyond). Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnTracePlayer from "std/behaviors/std-learn-trace-player"

Entity: TracePlayerScene (runtime)

Traits

Traiteventsemits
TracePlayerSimMODE_SELECTED, TOGGLE_RUN, SPEED_SET, PLAY, PAUSE, RESTARTFRAME_ADVANCED, TRACE_DONE

Config knobs

TraitKnobTypeLabel
TracePlayerSimbackgroundColorstringBackground Color
TracePlayerSimbaseColorstringBase Bar Color
TracePlayerSimframes[TraceFrame]Frames
TracePlayerSimheightnumberHeight
TracePlayerSimhighlightColorstringHighlight Bar Color
TracePlayerSimloopbooleanLoop
TracePlayerSimmatchModestringMatch Mode
TracePlayerSimsummarystringConcept
TracePlayerSimtickMsnumberTick Milliseconds
TracePlayerSimtitlestringTitle
TracePlayerSimwidthnumberWidth

std-learn-transport

the substrate twin of std-learn-sim-3d for discrete-step instruments. Contract: the atom owns the Step/Run-Pause/Reset transport and the clock but NOT the subject computation — STEP advances one step manually, TOGGLE_RUN engages a 32ms tick that accumulates elapsed time and fires one step every stepIntervalMs, RESET zeroes the counters and restores autoRun. Every step (button or clock) broadcasts LEARN_STEP; a composed sibling trait transitions directly on the LEARN_STEP / LEARN_RESET / LEARN_UPDATED broadcasts (the same bare-event cascade the lab routers use), applies the domain computation, halts the clock by setting the shared entity's done flag (the sibling is done's ONLY writer — it must also clear it on LEARN_RESET), and owns the scene render — this atom renders only its control strip and step caption. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnTransport from "std/behaviors/std-learn-transport"

Entity: LearnTransportScene (runtime)

Traits

Traiteventsemits
LearnTransportSimMODE_SELECTED, STEP, TOGGLE_RUN, RESET, SPEED_SETLEARN_STEP, LEARN_RESET, LEARN_UPDATED

Config knobs

TraitKnobTypeLabel
LearnTransportSimautoRunbooleanAuto Run
LearnTransportSimmatchModestringMatch Mode
LearnTransportSimstepIntervalMsnumberStep Interval (ms)
LearnTransportSimsummarystringConcept
LearnTransportSimtitlestringTitle
LearnTransportSimtotalStepsintTotal Steps

std-learn-tree

inserts values one by one from a config-declared sequence, each value descends left/right by comparison against the current node and attaches as a leaf; the tree renders on algo-graph-canvas (layout: tree, auto-positioned from the parent/child edges), settled nodes green, the descent cursor red, the comparison trail amber. Traverse sweeps the tree to the chosen order (inorder/preorder/levelorder) one node per press or on auto-run, narrating the visit order so far. Vocabulary, sample values, colors, and labels are entirely config-declared, so the same mechanism serves any ordered-tree domain. Standalone by default; behind a lab router set matchMode and it renders only when MODE_SELECTED matches.

lolo
1 uses LearnTree from "std/behaviors/std-learn-tree"

Entity: LearnTreeScene (runtime)

Traits

Traiteventsemits
LearnTreeSimMODE_SELECTED, INSERT_VALUE, DELETE_VALUE, RUN_TRAVERSAL, TOGGLE_RUN, RESETTREE_UPDATED

Config knobs

TraitKnobTypeLabel
LearnTreeSimautoRunbooleanAuto Run
LearnTreeSimbackgroundColorstringBackground Color
LearnTreeSimbalancedbooleanBalance Readout
LearnTreeSimheightnumberHeight
LearnTreeSimmatchModestringMatch Mode
LearnTreeSimshowComparisonsbooleanShow Comparisons
LearnTreeSimsummarystringConcept
LearnTreeSimtitlestringTitle
LearnTreeSimtraversalKindstringTraversal Kind
LearnTreeSimvalues[number]Values
LearnTreeSimwidthnumberWidth

Pattern factories

One ui-* behavior per UI pattern, generated 1:1 from the pattern registry: its config knobs are the pattern's props.

NameDescription
ui-algo-graph-canvasAlgoGraphCanvas
ui-algorithm-canvasAlgorithmCanvas
ui-biology-canvasBiologyCanvas
ui-chemistry-canvasChemistryCanvas
ui-learning-canvasLearningCanvas
ui-math-canvasMathCanvas
ui-physics-canvasPhysicsCanvas
Orb

The language where the rule is the program.

© 2026 Almadar. Ljubljana, Slovenia.