Teach it yourself
Exemplar’s offline half running in your browser on recorded facts, checked against the engine.
What the Lab does
Replay a recorded teaching session, or change the examples and watch the rule search re-run in your browser over a recorded bank of 37 sketches.
Mode and checks
The solver and what its result was compared with.
Not recomputed yet
Details
- Press “Recompute in your browser” to re-solve every recorded sketch here and compare with the recorded engine run.
Examples
The real examples this recorded run was taught from.
Taught from Playground recordings. The run started from 7 labelled examples (3 yes, 4 no), each weighing 3. Recorded in 36.3 s. Proposer: Claude on Amazon Bedrock via the Strands agent, recorded.
yesgiven as an examplePlayground recordinglicence: CC BYPlayground recording 01: box on the steps
A cardboard box sits on the snowy front steps and remains there unchanged throughout the clip, with no people or vehicles entering the view.
31.7 s
yesgiven as an examplePlayground recordinglicence: CC BYPlayground recording 06: box on the steps
A cardboard box sits motionless on the steps throughout the clip with no people or vehicles appearing, so nothing happens apart from changing light and snow.
31.7 s
yesgiven as an examplePlayground recordinglicence: CC BYPlayground recording 07: box seen on the steps and the porch
A cardboard box sits on the porch and a blue object near the steps stays unchanged across the clip, with no people or motion visible.
31.7 s
nogiven as an exampleCC BY video windowlicence: CC BYDoorstep video, 35 to 55 s
A person in a dark jacket carrying a cardboard box walks along the sidewalk past the front walkway and steps, then exits the view to the right.
20.0 s
nogiven as an exampleCC BY video windowlicence: CC BYDoorstep video, 40 to 60 s
A delivery person in a dark jacket carrying a cardboard box walks along the sidewalk toward the front steps, then leaves the view without placing the package at the door.
20.0 s
nogiven as an examplePlayground recordingRing sandbox outputPlayground recording 01: cars in a parking lot
Over a 21-second window, several cars are parked in the lot while a few others drive through the driveway, and no people or packages appear.
21.8 s
nogiven as an examplePlayground recordingRing sandbox outputPlayground recording 01: birds at snowy feeders
A red-bellied woodpecker feeds at a snowy suet feeder while a junco and later a cardinal visit the neighbouring feeder, with no people or packages involved.
39.6 s
Agent timeline
The recorded session, or the same loop re-run in your browser.
Recomputing replays the recorded sketches through the same loop.
12 sketches12 solved8 counterexamples36.3 s
- Round 1proposer: strands
Rule sketch proposed
+3.6 sexists k: Package: holds_for >= ?d (in_zone(k, steps) or in_zone(k, porch))The solver is filling in the numbers
+3.6 sexists k: Package: holds_for >= ?d (in_zone(k, steps) or in_zone(k, porch))The solver found the numbers that fit best
+3.7 sexists k: Package: holds_for >= ?d (in_zone(k, steps) or in_zone(k, porch))d = 15margin 0.45
76 ms; placement: slack-centre
Re-checked with the evaluator
+3.7 sexists k: Package: holds_for >= ?d (in_zone(k, steps) or in_zone(k, porch))NumPy evaluator agrees with Z3 on 7 examples (margin 0.45)
Rule sketch proposed
+5.3 sexists k: Package: holds_for >= ?d in_zone(k, steps)Rule sketch proposed
+5.3 sexists k: Package: holds_for >= ?d in_zone(k, porch)The solver is filling in the numbers
+7.7 sexists k: Package: holds_for >= ?d in_zone(k, steps)The solver found the numbers that fit best
+7.7 sexists k: Package: holds_for >= ?d in_zone(k, steps)d = 15margin 0.45
68 ms; placement: slack-centre
Re-checked with the evaluator
+7.7 sexists k: Package: holds_for >= ?d in_zone(k, steps)NumPy evaluator agrees with Z3 on 7 examples (margin 0.45)
A labelled clip does not fit this rule
+7.7 sexists k: Package: holds_for >= ?d in_zone(k, steps)
Playground recording 07: box seen on the steps and the porch
The facts read from these clips disagree with their labels, so the rule does not fit them. Either the label or the reading may be off.
The solver is filling in the numbers
+7.7 sexists k: Package: holds_for >= ?d in_zone(k, porch)The solver found the numbers that fit best
+8.0 sexists k: Package: holds_for >= ?d in_zone(k, porch)d = 15margin 0.45
308 ms; placement: slack-centre
Re-checked with the evaluator
+8.0 sexists k: Package: holds_for >= ?d in_zone(k, porch)NumPy evaluator agrees with Z3 on 7 examples (margin 0.45)
A labelled clip does not fit this rule
+8.0 sexists k: Package: holds_for >= ?d in_zone(k, porch)
Playground recording 01: box on the steps
Playground recording 06: box on the steps
The facts read from these clips disagree with their labels, so the rule does not fit them. Either the label or the reading may be off.
- Round 2proposer: strands
Type check failed, sketch sent back
+10.5 sexists k: Package: holds_for >= ?d in_zone(k, steps) or exists k: Package: holds_for >= ?d in_zone(k, porch)Error: syntax error: line 1, column 57: unexpected 'exists'; expected a formula (an atom like present(p), or not / eventually[a, b] / always[a, b] / holds_for >= d, or '(')
Rule sketch proposed
+10.5 sexists k: Package: always[0, ?b] (in_zone(k, steps) or in_zone(k, porch))Rule sketch proposed
+10.5 sexists k: Package: eventually[0, ?b] in_zone(k, steps) and eventually[?a, ?b] (in_zone(k, steps) or in_zone(k, porch))Rule sketch proposed
+12.8 sexists k: Package: holds_for >= ?d in_zone(k, steps) or holds_for >= ?d in_zone(k, porch)The solver is filling in the numbers
+24.8 sexists k: Package: always[0, ?b] (in_zone(k, steps) or in_zone(k, porch))The solver found the numbers that fit best
+24.9 sexists k: Package: always[0, ?b] (in_zone(k, steps) or in_zone(k, porch))b = 19.5margin 0.45
41 ms; placement: slack-centre
Re-checked with the evaluator
+24.9 sexists k: Package: always[0, ?b] (in_zone(k, steps) or in_zone(k, porch))NumPy evaluator agrees with Z3 on 7 examples (margin 0.45)
The solver is filling in the numbers
+24.9 sexists k: Package: eventually[0, ?b] in_zone(k, steps) and eventually[?a, ?b] (in_zone(k, steps) or in_zone(k, porch))The solver found the numbers that fit best
+25.1 sexists k: Package: eventually[0, ?b] in_zone(k, steps) and eventually[?a, ?b] (in_zone(k, steps) or in_zone(k, porch))b = 19.5a = 0margin 0.45
204 ms; placement: slack-centre
Re-checked with the evaluator
+25.1 sexists k: Package: eventually[0, ?b] in_zone(k, steps) and eventually[?a, ?b] (in_zone(k, steps) or in_zone(k, porch))NumPy evaluator agrees with Z3 on 7 examples (margin 0.45)
A labelled clip does not fit this rule
+25.1 sexists k: Package: eventually[0, ?b] in_zone(k, steps) and eventually[?a, ?b] (in_zone(k, steps) or in_zone(k, porch))
Playground recording 07: box seen on the steps and the porch
The facts read from these clips disagree with their labels, so the rule does not fit them. Either the label or the reading may be off.
The solver is filling in the numbers
+25.1 sexists k: Package: holds_for >= ?d in_zone(k, steps) or holds_for >= ?d in_zone(k, porch)The solver found the numbers that fit best
+25.1 sexists k: Package: holds_for >= ?d in_zone(k, steps) or holds_for >= ?d in_zone(k, porch)d = 15margin 0.45
58 ms; placement: slack-centre
Re-checked with the evaluator
+25.1 sexists k: Package: holds_for >= ?d in_zone(k, steps) or holds_for >= ?d in_zone(k, porch)NumPy evaluator agrees with Z3 on 7 examples (margin 0.45)
- Round 3proposer: strands
- Round 4proposer: strands
- Round 4template-library back-fill
Rule sketch proposed
+34.4 sexists k: Package: eventually[0, ?b] attr(k, cardboard_box)Rule sketch proposed
+34.4 sexists k: Package: eventually[0, ?b] in_zone(k, porch)Rule sketch proposed
+34.4 sexists k: Package: eventually[0, ?b] in_zone(k, steps)Rule sketch proposed
+34.4 sexists k: Package: holds_for >= ?d attr(k, cardboard_box)Rule sketch proposed
+34.4 sexists o: Object: eventually[0, ?b] attr(o, watering_can_blue)Rule sketch proposed
+34.4 sexists o: Object: eventually[0, ?b] in_zone(o, steps)The solver is filling in the numbers
+34.4 sexists k: Package: eventually[0, ?b] attr(k, cardboard_box)The solver found the numbers that fit best
+34.6 sexists k: Package: eventually[0, ?b] attr(k, cardboard_box)b = 19.5margin 0.3
192 ms; placement: slack-centre
Re-checked with the evaluator
+34.6 sexists k: Package: eventually[0, ?b] attr(k, cardboard_box)NumPy evaluator agrees with Z3 on 7 examples (margin 0.30)
A labelled clip does not fit this rule
+34.6 sexists k: Package: eventually[0, ?b] attr(k, cardboard_box)
Doorstep video, 35 to 55 s
Doorstep video, 40 to 60 s
The facts read from these clips disagree with their labels, so the rule does not fit them. Either the label or the reading may be off.
The solver is filling in the numbers
+34.6 sexists k: Package: eventually[0, ?b] in_zone(k, porch)The solver found the numbers that fit best
+34.6 sexists k: Package: eventually[0, ?b] in_zone(k, porch)b = 19.5margin 0.45
60 ms; placement: slack-centre
Re-checked with the evaluator
+34.6 sexists k: Package: eventually[0, ?b] in_zone(k, porch)NumPy evaluator agrees with Z3 on 7 examples (margin 0.45)
A labelled clip does not fit this rule
+34.6 sexists k: Package: eventually[0, ?b] in_zone(k, porch)
Playground recording 01: box on the steps
Playground recording 06: box on the steps
The facts read from these clips disagree with their labels, so the rule does not fit them. Either the label or the reading may be off.
The solver is filling in the numbers
+34.6 sexists k: Package: eventually[0, ?b] in_zone(k, steps)The solver found the numbers that fit best
+34.7 sexists k: Package: eventually[0, ?b] in_zone(k, steps)b = 19.5margin 0.45
52 ms; placement: slack-centre
Re-checked with the evaluator
+34.7 sexists k: Package: eventually[0, ?b] in_zone(k, steps)NumPy evaluator agrees with Z3 on 7 examples (margin 0.45)
A labelled clip does not fit this rule
+34.7 sexists k: Package: eventually[0, ?b] in_zone(k, steps)
Playground recording 07: box seen on the steps and the porch
The facts read from these clips disagree with their labels, so the rule does not fit them. Either the label or the reading may be off.
The solver is filling in the numbers
+34.7 sexists k: Package: holds_for >= ?d attr(k, cardboard_box)The solver found the numbers that fit best
+34.8 sexists k: Package: holds_for >= ?d attr(k, cardboard_box)d = 24margin 0.3
143 ms; placement: slack-centre
Re-checked with the evaluator
+34.8 sexists k: Package: holds_for >= ?d attr(k, cardboard_box)NumPy evaluator agrees with Z3 on 7 examples (margin 0.30)
The solver is filling in the numbers
+34.8 sexists o: Object: eventually[0, ?b] attr(o, watering_can_blue)The solver found the numbers that fit best
+34.9 sexists o: Object: eventually[0, ?b] attr(o, watering_can_blue)b = 19.5margin 0.3
37 ms; placement: slack-centre
Re-checked with the evaluator
+34.9 sexists o: Object: eventually[0, ?b] attr(o, watering_can_blue)NumPy evaluator agrees with Z3 on 7 examples (margin 0.30)
A labelled clip does not fit this rule
+34.9 sexists o: Object: eventually[0, ?b] attr(o, watering_can_blue)
Playground recording 01: box on the steps
Playground recording 06: box on the steps
The facts read from these clips disagree with their labels, so the rule does not fit them. Either the label or the reading may be off.
The solver is filling in the numbers
+34.9 sexists o: Object: eventually[0, ?b] in_zone(o, steps)The solver found the numbers that fit best
+34.9 sexists o: Object: eventually[0, ?b] in_zone(o, steps)b = 19.5margin 0.1
34 ms; placement: slack-centre
Re-checked with the evaluator
+34.9 sexists o: Object: eventually[0, ?b] in_zone(o, steps)NumPy evaluator agrees with Z3 on 7 examples (margin 0.10)
A labelled clip does not fit this rule
+34.9 sexists o: Object: eventually[0, ?b] in_zone(o, steps)
Playground recording 01: box on the steps
Playground recording 06: box on the steps
The facts read from these clips disagree with their labels, so the rule does not fit them. Either the label or the reading may be off.
Candidate rules ready
+34.9 s6 candidate rule(s), ranked by MDL
One question is ready
+36.3 syour candidate rules disagree most on one unlabelled clip
Done
+36.3 s
Candidates
Each with its recorded rank in the recorded run.
Selected rule
English, rule text, filled blanks and margin.
There is a package k such that (k is on the steps or k is on the porch) continuously for at least 15 s.
exists k: Package: holds_for >= 15 (in_zone(k, steps) or in_zone(k, porch))- Blank ?d filled with
- 15 s
- Margin
- 0.45
- Description length
- 29.96
- Examples it misses
- 0
Backtest
The selected rule scored on the whole library, by class. Select a clip to see its frames and the rule’s witness.
Calibration
The recorded false-alarm bound, or an exploratory recalibration marked as such.