Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
5e8224cfbThis file is pinned to the selected release. Download the original to open it in your design tool.
<!doctype html>
<!-- Generated by store/tools/hands-on.mjs. Edit store/hands-on.json, not this file. -->
<html lang="en">
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="description" content="Eight hands-on OpenHarness experiences, with real native demos, starting prompts and work you can keep."><title>Get your hands on it · OpenHarness</title><link rel="stylesheet" href="hands-on.css"><script src="hands-on.js" defer></script></head>
<body>
<a class="skip-link" href="#experiences">Skip to the experiences</a>
<header class="masthead"><a href="../README.md" class="wordmark">OpenHarness</a><span>A field guide for the curious</span><a href="hands-on.md">Text guide <span aria-hidden="true">↗</span></a></header>
<main>
<div class="opening"><p class="eyebrow">From handoff to hands-on</p><h1>Get your hands on it.</h1><p>The agent brings the tools of a craft. You bring the idea, the taste and the next thing to try.</p></div>
<nav class="crafts" aria-label="Choose a craft"><a href="#mujoco" data-experience="mujoco"><span class="craft-number">01</span><span><strong>Physics</strong><small>MuJoCo</small></span></a>
<a href="#blender" data-experience="blender"><span class="craft-number">02</span><span><strong>3D design</strong><small>Blender</small></span></a>
<a href="#godogen" data-experience="godogen"><span class="craft-number">03</span><span><strong>Games</strong><small>Godogen</small></span></a>
<a href="#strudel" data-experience="strudel"><span class="craft-number">04</span><span><strong>Music</strong><small>Strudel</small></span></a>
<a href="#rdkit" data-experience="rdkit"><span class="craft-number">05</span><span><strong>Molecules</strong><small>RDKit</small></span></a>
<a href="#typst" data-experience="typst"><span class="craft-number">06</span><span><strong>Documents</strong><small>Typst</small></span></a>
<a href="#jev-sheets" data-experience="jev-sheets"><span class="craft-number">07</span><span><strong>Data</strong><small>Jev Sheets</small></span></a>
<a href="#circuitjs" data-experience="circuitjs"><span class="craft-number">08</span><span><strong>Circuits</strong><small>CircuitJS</small></span></a></nav>
<div id="experiences"><article id="mujoco" class="experience" aria-labelledby="mujoco-title">
<div class="overview">
<div class="invitation"><p class="eyebrow">MuJoCo / Physics</p><h2 id="mujoco-title">Try a different world.</h2><p class="intro">Take one moment in a robot's run and see two futures unfold together. Change the ground, gravity or a sideways shove, then scrub to the moment they part ways.</p><div class="keeps"><span class="eyebrow">Yours to keep</span><p>A reproducible physics experiment and measurements CSV.</p></div><a class="guide-link" href="../store/viewers/mujoco-viewer/README.md">Open the harness guide <span aria-hidden="true">↗</span></a></div>
<figure>
<div class="media-stage"><img class="poster" src="images/mujoco-what-if-shove.png" alt="A Unitree Go2 in the native MuJoCo viewer, comparing two futures with a shared timeline and body-height measurements." loading="lazy" decoding="async"><video hidden controls playsinline preload="none" data-src="images/mujoco-what-if-demo.mp4" poster="images/mujoco-what-if-shove.png" aria-label="MuJoCo recorded walkthrough" aria-describedby="mujoco-scene"></video></div>
<div class="media-actions"><button type="button" class="watch" data-watch><span aria-hidden="true">▶</span> Watch real session</button><a href="images/mujoco-what-if-shove.png" target="_blank" rel="noopener">Full image <span aria-hidden="true">↗</span></a><a class="video-file" href="images/mujoco-what-if-demo.mp4">Video file</a></div>
<figcaption id="mujoco-scene">A real MuJoCo session: a 100 N sideways force for 0.15 seconds, with the same recorded controls in both worlds.</figcaption>
</figure>
</div>
<div class="practice">
<section class="starting-point" aria-labelledby="mujoco-start"><p class="eyebrow">Start something of your own</p><h3 id="mujoco-start">Give the agent a direction.</h3><label class="sr-only" for="mujoco-prompt">Starting prompt for MuJoCo</label><textarea id="mujoco-prompt" class="prompt" readonly rows="5" spellcheck="false">Load the Unitree Go2 and make it stand, then do three slow squats. Record the motion so I can open What if, change the surface friction and compare what happens from the same moment.</textarea><div class="copy-row"><button type="button" class="primary" data-copy="mujoco-prompt">Copy starting prompt</button><span class="copy-status" role="status"></span></div><p class="start-help">In Harness, start a MuJoCo project and paste this into the agent chat. Change the idea to make it yours.</p><details><summary>Continue from something you kept</summary><label class="sr-only" for="mujoco-followup">Follow-up prompt for MuJoCo</label><textarea id="mujoco-followup" class="prompt followup" readonly rows="5" spellcheck="false">Read my saved physics-experiment.json and reproduce it with the MuJoCo experiment tool. Explain when the robot first loses height, then help me change the controller and record another run.</textarea><div class="copy-row"><button type="button" data-copy="mujoco-followup">Copy follow-up</button><span class="copy-status" role="status"></span></div><p class="start-help">Keep the result in this project, or give the agent the path to your downloaded copy.</p></details></section>
<section class="walkthrough" aria-labelledby="mujoco-try"><p class="eyebrow">Then get your hands on it</p><h3 id="mujoco-try">Make a choice. See it happen.</h3><ol><li><h4>Catch a moment</h4><p>Open What if, choose a body to follow and pin the current state.</p></li><li><h4>Change one thing</h4><p>Try Slippery ground or Lunar gravity, then Compare futures. Scrub both worlds together, or click Farthest apart to inspect the greatest sampled difference.</p></li><li><h4>Keep the experiment</h4><p>Save experiment preserves the model, its assets, the starting state, controls and measured frames. Measurements CSV keeps the numbers too.</p></li></ol><p class="scope-note">Both futures use the same recorded controls. This compares open-loop physics; it does not rerun the Python controller.</p></section>
</div>
<div class="next-craft"><span>There is another craft to try.</span><a href="#blender" data-experience="blender">3D design with Blender <span aria-hidden="true">→</span></a></div>
</article>
<article id="blender" class="experience" aria-labelledby="blender-title">
<div class="overview">
<div class="invitation"><p class="eyebrow">Blender / 3D design</p><h2 id="blender-title">Shape it until it feels right.</h2><p class="intro">Ask for the controls that matter to your design. Turn them yourself, watch Blender rebuild the geometry, and keep the directions you want to come back to.</p><div class="keeps"><span class="eyebrow">Yours to keep</span><p>Source, chosen values, model, measurements and a standalone rebuild script.</p></div><a class="guide-link" href="../store/agents/blender/README.md">Open the harness guide <span aria-hidden="true">↗</span></a></div>
<figure>
<div class="media-stage"><img class="poster" src="images/blender-shape-lab.png" alt="Shape Lab displaying a sculptural ribbon lamp with adjustable dimensions and a shelf of saved designs." loading="lazy" decoding="async"><video hidden controls playsinline preload="none" data-src="images/blender-shape-lab-demo.mp4" poster="images/blender-shape-lab.png" aria-label="Blender recorded walkthrough" aria-describedby="blender-scene"></video></div>
<div class="media-actions"><button type="button" class="watch" data-watch><span aria-hidden="true">▶</span> Watch real session</button><a href="images/blender-shape-lab.png" target="_blank" rel="noopener">Full image <span aria-hidden="true">↗</span></a><a class="video-file" href="images/blender-shape-lab-demo.mp4">Video file</a></div>
<figcaption id="blender-scene">A real Blender build of an authored ribbon lamp, with saved design variants.</figcaption>
</figure>
</div>
<div class="practice">
<section class="starting-point" aria-labelledby="blender-start"><p class="eyebrow">Start something of your own</p><h3 id="blender-start">Give the agent a direction.</h3><label class="sr-only" for="blender-prompt">Starting prompt for Blender</label><textarea id="blender-prompt" class="prompt" readonly rows="5" spellcheck="false">Design a sculptural desk lamp from twisting ribbons. Give me Shape Lab controls for height, twist, ribbon count and finish, with sensible ranges. I want to explore the proportions myself and keep a few directions before the final render.</textarea><div class="copy-row"><button type="button" class="primary" data-copy="blender-prompt">Copy starting prompt</button><span class="copy-status" role="status"></span></div><p class="start-help">In Harness, start a Blender project and paste this into the agent chat. Change the idea to make it yours.</p><details><summary>Continue from something you kept</summary><label class="sr-only" for="blender-followup">Follow-up prompt for Blender</label><textarea id="blender-followup" class="prompt followup" readonly rows="5" spellcheck="false">Use my chosen Shape Lab values for the next build. Refine the base and cable opening without losing these proportions, then export the model and render a turntable.</textarea><div class="copy-row"><button type="button" data-copy="blender-followup">Copy follow-up</button><span class="copy-status" role="status"></span></div><p class="start-help">Keep the result in this project, or give the agent the path to your downloaded copy.</p></details></section>
<section class="walkthrough" aria-labelledby="blender-try"><p class="eyebrow">Then get your hands on it</p><h3 id="blender-try">Make a choice. See it happen.</h3><ol><li><h4>Choose your controls</h4><p>Ask the agent for meaningful Shape Lab controls in the scene it builds. The starter mug already has a set to try.</p></li><li><h4>Find a direction</h4><p>Change the values and build a preview. Orbit the actual geometry, keep a named design and compare it with another.</p></li><li><h4>Make it yours</h4><p>Download a kept design's project ZIP. Use values on next build carries your chosen values into the agent's next full export and render.</p></li></ol><p class="scope-note">Each preview builds real Blender geometry. Build time depends on the scene; previews stay separate from the main export until the next full build.</p></section>
</div>
<div class="next-craft"><span>There is another craft to try.</span><a href="#godogen" data-experience="godogen">Games with Godogen <span aria-hidden="true">→</span></a></div>
</article>
<article id="godogen" class="experience" aria-labelledby="godogen-title">
<div class="overview">
<div class="invitation"><p class="eyebrow">Godogen / Games</p><h2 id="godogen-title">Try that moment again.</h2><p class="intro">Miss a jump, rewind and try another move. When something feels great or needs work, pin the exact moment so the agent can see what you mean.</p><div class="keeps"><span class="eyebrow">Yours to keep</span><p>A screenshot, complete game state, feedback and that version's compiled game.</p></div><a class="guide-link" href="../store/viewers/game-viewer/README.md">Open the harness guide <span aria-hidden="true">↗</span></a></div>
<figure>
<div class="media-stage"><img class="poster" src="images/godogen-rewind.png" alt="A playable game paused on its Rewind timeline with Try from here and Pin moment controls." loading="lazy" decoding="async"><video hidden controls playsinline preload="none" data-src="images/godogen-rewind-demo.mp4" poster="images/godogen-rewind.png" aria-label="Godogen recorded walkthrough" aria-describedby="godogen-scene"></video></div>
<div class="media-actions"><button type="button" class="watch" data-watch><span aria-hidden="true">▶</span> Watch real session</button><a href="images/godogen-rewind.png" target="_blank" rel="noopener">Full image <span aria-hidden="true">↗</span></a><a class="video-file" href="images/godogen-rewind-demo.mp4">Video file</a></div>
<figcaption id="godogen-scene">A real playable browser game, including state restoration and saved playtest feedback.</figcaption>
</figure>
</div>
<div class="practice">
<section class="starting-point" aria-labelledby="godogen-start"><p class="eyebrow">Start something of your own</p><h3 id="godogen-start">Give the agent a direction.</h3><label class="sr-only" for="godogen-prompt">Starting prompt for Godogen</label><textarea id="godogen-prompt" class="prompt" readonly rows="5" spellcheck="false">Make a small rooftop delivery game with three jumps, a visible destination and forgiving controls. Make Rewind and Try from here work for the complete game state, so I can replay a difficult moment and leave useful playtest notes.</textarea><div class="copy-row"><button type="button" class="primary" data-copy="godogen-prompt">Copy starting prompt</button><span class="copy-status" role="status"></span></div><p class="start-help">In Harness, start a Godogen project and paste this into the agent chat. Change the idea to make it yours.</p><details><summary>Continue from something you kept</summary><label class="sr-only" for="godogen-followup">Follow-up prompt for Godogen</label><textarea id="godogen-followup" class="prompt followup" readonly rows="5" spellcheck="false">Read the saved playtest moments in out/playtests. Make the jump in my Change note easier to read, preserve the movement I marked Keep, then let me play the revised version.</textarea><div class="copy-row"><button type="button" data-copy="godogen-followup">Copy follow-up</button><span class="copy-status" role="status"></span></div><p class="start-help">Keep the result in this project, or give the agent the path to your downloaded copy.</p></details></section>
<section class="walkthrough" aria-labelledby="godogen-try"><p class="eyebrow">Then get your hands on it</p><h3 id="godogen-try">Make a choice. See it happen.</h3><ol><li><h4>Play a little</h4><p>Enter Play in a game with Rewind support. The viewer remembers the recent run while you play.</p></li><li><h4>Try another move</h4><p>Open Rewind and scrub back. Try from here resumes from that state; returning to the live moment restores the run you left.</p></li><li><h4>Pin what matters</h4><p>Pin moment with a Keep, Change or Explore note. Saved moments reopens that game version, screenshot and state after later edits.</p></li></ol><p class="scope-note">Rewind needs snapshot support in the authored game. Saved moments preserve compiled output; editable source stays in the project, and external assets still need their original service.</p></section>
</div>
<div class="next-craft"><span>There is another craft to try.</span><a href="#strudel" data-experience="strudel">Music with Strudel <span aria-hidden="true">→</span></a></div>
</article>
<article id="strudel" class="experience" aria-labelledby="strudel-title">
<div class="overview">
<div class="invitation"><p class="eyebrow">Strudel / Music</p><h2 id="strudel-title">Perform the version you love.</h2><p class="intro">A track is an instrument you can play. Bring voices in and out, try a code change and mark the part you want to hear again. Keep the sound of that performance.</p><div class="keeps"><span class="eyebrow">Yours to keep</span><p>A stereo WAV, played code versions and a timed performance journal in a ZIP.</p></div><a class="guide-link" href="../store/agents/strudel/README.md">Open the harness guide <span aria-hidden="true">↗</span></a></div>
<figure>
<div class="media-stage"><img class="poster" src="images/strudel-live-take.png" alt="Strudel's live voice lanes beside a recorded take with waveform, named moments and an audio-and-source download." loading="lazy" decoding="async"><video hidden controls playsinline preload="none" data-src="images/strudel-live-take-demo.mp4" poster="images/strudel-live-take.png" aria-label="Strudel recorded walkthrough" aria-describedby="strudel-scene"></video></div>
<div class="media-actions"><button type="button" class="watch" data-watch><span aria-hidden="true">▶</span> Watch real session · with music</button><a href="images/strudel-live-take.png" target="_blank" rel="noopener">Full image <span aria-hidden="true">↗</span></a><a class="video-file" href="images/strudel-live-take-demo.mp4">Video file</a></div>
<figcaption id="strudel-scene">A real performance of the original Lantern room track. The video includes the captured audio.</figcaption>
</figure>
</div>
<div class="practice">
<section class="starting-point" aria-labelledby="strudel-start"><p class="eyebrow">Start something of your own</p><h3 id="strudel-start">Give the agent a direction.</h3><label class="sr-only" for="strudel-prompt">Starting prompt for Strudel</label><textarea id="strudel-prompt" class="prompt" readonly rows="5" spellcheck="false">Write a warm 96 bpm evening groove with drums, a rounded bass, soft chords and a small bell melody. Use synths so it works offline, name the voices, and leave space for me to mute, solo and record a live take.</textarea><div class="copy-row"><button type="button" class="primary" data-copy="strudel-prompt">Copy starting prompt</button><span class="copy-status" role="status"></span></div><p class="start-help">In Harness, start a Strudel project and paste this into the agent chat. Change the idea to make it yours.</p><details><summary>Continue from something you kept</summary><label class="sr-only" for="strudel-followup">Follow-up prompt for Strudel</label><textarea id="strudel-followup" class="prompt followup" readonly rows="5" spellcheck="false">Listen to the take I kept and read its journal in out/takes. Build the next arrangement around the quiet section I marked, using the source version that was playing there.</textarea><div class="copy-row"><button type="button" data-copy="strudel-followup">Copy follow-up</button><span class="copy-status" role="status"></span></div><p class="start-help">Keep the result in this project, or give the agent the path to your downloaded copy.</p></details></section>
<section class="walkthrough" aria-labelledby="strudel-try"><p class="eyebrow">Then get your hands on it</p><h3 id="strudel-try">Make a choice. See it happen.</h3><ol><li><h4>Start the instrument</h4><p>Click Play, listen to the voices and choose Record take when you are ready.</p></li><li><h4>Perform it</h4><p>Mute or solo a voice, run a code change and mark a moment. Finish take opens the captured stereo audio with a seekable waveform.</p></li><li><h4>Keep the sound</h4><p>Name the performance and Keep take. Reopen it from Takes or download Audio + source to carry it away.</p></li></ol><p class="scope-note">Takes capture up to two minutes of the instrument's output. The WAV preserves what you heard from it; external samples and custom imports are not bundled.</p></section>
</div>
<div class="next-craft"><span>There is another craft to try.</span><a href="#rdkit" data-experience="rdkit">Molecules with RDKit <span aria-hidden="true">→</span></a></div>
</article>
<article id="rdkit" class="experience" aria-labelledby="rdkit-title">
<div class="overview">
<div class="invitation"><p class="eyebrow">RDKit / Molecules</p><h2 id="rdkit-title">See a molecule turn.</h2><p class="intro">Choose a flexible bond and move through its sampled shapes. Watch atoms approach one another, follow the calculated energy curve and keep a pose worth investigating.</p><div class="keeps"><span class="eyebrow">Yours to keep</span><p>Input and sampled conformers, selected SDF, energy CSV and reproducible calculation source.</p></div><a class="guide-link" href="../store/agents/rdkit/README.md">Open the harness guide <span aria-hidden="true">↗</span></a></div>
<figure>
<div class="media-stage"><img class="poster" src="images/rdkit-bond-scan.png" alt="An authored molecule in 3D with a reference pose, native MMFF94 bond-energy curve and a selected rotation angle." loading="lazy" decoding="async"><video hidden controls playsinline preload="none" data-src="images/rdkit-bond-scan-demo.mp4" poster="images/rdkit-bond-scan.png" aria-label="RDKit recorded walkthrough" aria-describedby="rdkit-scene"></video></div>
<div class="media-actions"><button type="button" class="watch" data-watch><span aria-hidden="true">▶</span> Watch real session</button><a href="images/rdkit-bond-scan.png" target="_blank" rel="noopener">Full image <span aria-hidden="true">↗</span></a><a class="video-file" href="images/rdkit-bond-scan-demo.mp4">Video file</a></div>
<figcaption id="rdkit-scene">A native RDKit bond scan on an authored molecule, shown with its starting conformer.</figcaption>
</figure>
</div>
<div class="practice">
<section class="starting-point" aria-labelledby="rdkit-start"><p class="eyebrow">Start something of your own</p><h3 id="rdkit-start">Give the agent a direction.</h3><label class="sr-only" for="rdkit-prompt">Starting prompt for RDKit</label><textarea id="rdkit-prompt" class="prompt" readonly rows="5" spellcheck="false">Build a 3D conformer of 2-phenylethanol with explicit hydrogens. I want to explore a flexible non-ring single bond in Bond scan, compare its shapes and understand where steric crowding raises the rigid MMFF94 energy.</textarea><div class="copy-row"><button type="button" class="primary" data-copy="rdkit-prompt">Copy starting prompt</button><span class="copy-status" role="status"></span></div><p class="start-help">In Harness, start a RDKit project and paste this into the agent chat. Change the idea to make it yours.</p><details><summary>Continue from something you kept</summary><label class="sr-only" for="rdkit-followup">Follow-up prompt for RDKit</label><textarea id="rdkit-followup" class="prompt followup" readonly rows="5" spellcheck="false">Read the note and selected.sdf from my kept study in out/torsions. Reproduce its energy curve, explain the crowded poses and suggest another bond to explore.</textarea><div class="copy-row"><button type="button" data-copy="rdkit-followup">Copy follow-up</button><span class="copy-status" role="status"></span></div><p class="start-help">Keep the result in this project, or give the agent the path to your downloaded copy.</p></details></section>
<section class="walkthrough" aria-labelledby="rdkit-try"><p class="eyebrow">Then get your hands on it</p><h3 id="rdkit-try">Make a choice. See it happen.</h3><ol><li><h4>Pick a bond</h4><p>Open Bond scan and Use current conformer. Choose a four-atom chain, or measure a dihedral with T and four atom clicks.</p></li><li><h4>Explore its shapes</h4><p>Scan bond, then drag the energy curve, scrub the rotation or jump to the lowest sampled point. Compare against the starting pose.</p></li><li><h4>Keep a study</h4><p>Choose a pose, add a note and Keep study. Download the full scan and its Python reproducer, or reopen it from the saved library.</p></li></ol><p class="scope-note">This is a rigid MMFF94 scan, with the other internal coordinates fixed. It does not establish a relaxed barrier, equilibrium population or biological activity.</p></section>
</div>
<div class="next-craft"><span>There is another craft to try.</span><a href="#typst" data-experience="typst">Documents with Typst <span aria-hidden="true">→</span></a></div>
</article>
<article id="typst" class="experience" aria-labelledby="typst-title">
<div class="overview">
<div class="invitation"><p class="eyebrow">Typst / Documents</p><h2 id="typst-title">Point at what you mean.</h2><p class="intro">Hold a draft still while you read it. Quote a sentence, circle a detail or leave a page note, then compare the next draft without losing the one you reviewed.</p><div class="keeps"><span class="eyebrow">Yours to keep</span><p>The reviewed PDF, anchored notes, readable feedback and a portable review ZIP.</p></div><a class="guide-link" href="../store/viewers/doc-viewer/README.md">Open the harness guide <span aria-hidden="true">↗</span></a></div>
<figure>
<div class="media-stage"><img class="poster" src="images/doc-review.png" alt="A native PDF draft held for review, with anchored Change, Keep and Question notes." loading="lazy" decoding="async"><video hidden controls playsinline preload="none" data-src="images/doc-review-demo.mp4" poster="images/doc-review.png" aria-label="Typst recorded walkthrough" aria-describedby="typst-scene"></video></div>
<div class="media-actions"><button type="button" class="watch" data-watch><span aria-hidden="true">▶</span> Watch real session</button><a href="images/doc-review.png" target="_blank" rel="noopener">Full image <span aria-hidden="true">↗</span></a><a class="video-file" href="images/doc-review-demo.mp4">Video file</a></div>
<figcaption id="typst-scene">A real Typst PDF rendered by pdf.js, with review notes carried into a later revision.</figcaption>
</figure>
</div>
<div class="practice">
<section class="starting-point" aria-labelledby="typst-start"><p class="eyebrow">Start something of your own</p><h3 id="typst-start">Give the agent a direction.</h3><label class="sr-only" for="typst-prompt">Starting prompt for Typst</label><textarea id="typst-prompt" class="prompt" readonly rows="5" spellcheck="false">Make a two-page design brief for a small desk lamp: the idea, intended use, dimensions, materials and three open questions. Use Typst and give it a clear visual hierarchy. I want to review the PDF in the pane before we revise it.</textarea><div class="copy-row"><button type="button" class="primary" data-copy="typst-prompt">Copy starting prompt</button><span class="copy-status" role="status"></span></div><p class="start-help">In Harness, start a Typst project and paste this into the agent chat. Change the idea to make it yours.</p><details><summary>Continue from something you kept</summary><label class="sr-only" for="typst-followup">Follow-up prompt for Typst</label><textarea id="typst-followup" class="prompt followup" readonly rows="5" spellcheck="false">Read the kept review in .harness/doc-reviews, including review.md and reference.pdf. Revise the editable Typst source around my Change notes and preserve the details marked Keep.</textarea><div class="copy-row"><button type="button" data-copy="typst-followup">Copy follow-up</button><span class="copy-status" role="status"></span></div><p class="start-help">Keep the result in this project, or give the agent the path to your downloaded copy.</p></details></section>
<section class="walkthrough" aria-labelledby="typst-try"><p class="eyebrow">Then get your hands on it</p><h3 id="typst-try">Make a choice. See it happen.</h3><ol><li><h4>Hold this draft</h4><p>Open Review and Hold this draft. The exact PDF stays still while the agent continues working.</p></li><li><h4>Point and explain</h4><p>Select text and Note selected text, Pin an area or add a Page note. Mark it Change, Keep or Question and write what you mean.</p></li><li><h4>Carry it forward</h4><p>Keep review, then ask the agent to read its review.md. Compare latest deliberately; unique exact quotations can follow text to another page.</p></li></ol><p class="scope-note">Changed or repeated quotations need human inspection. Area and page notes stay with the reviewed PDF. The packet includes the PDF and feedback; editable source stays in the workspace.</p></section>
</div>
<div class="next-craft"><span>There is another craft to try.</span><a href="#jev-sheets" data-experience="jev-sheets">Data with Jev Sheets <span aria-hidden="true">→</span></a></div>
</article>
<article id="jev-sheets" class="experience" aria-labelledby="jev-sheets-title">
<div class="overview">
<div class="invitation"><p class="eyebrow">Jev Sheets / Data</p><h2 id="jev-sheets-title">Ask a better question.</h2><p class="intro">Before asking a whole spreadsheet, compare two versions of a question on frozen rows. Read the answers side by side and use your judgment to decide what the wording missed.</p><div class="keeps"><span class="eyebrow">Yours to keep</span><p>Frozen rows, exact questions, answers, probabilities, provider details, your notes and CSV/ZIP exports.</p></div><a class="guide-link" href="../store/agents/jev-sheets/README.md">Open the harness guide <span aria-hidden="true">↗</span></a></div>
<figure>
<div class="media-stage"><img class="poster" src="images/question-lab.png" alt="Question Lab comparing two urgency questions on fictional support rows, prominently labeled offline practice." loading="lazy" decoding="async"><video hidden controls playsinline preload="none" data-src="images/question-lab-demo.mp4" poster="images/question-lab.png" aria-label="Jev Sheets recorded walkthrough" aria-describedby="jev-sheets-scene"></video></div>
<div class="media-actions"><button type="button" class="watch" data-watch><span aria-hidden="true">▶</span> Watch real session</button><a href="images/question-lab.png" target="_blank" rel="noopener">Full image <span aria-hidden="true">↗</span></a><a class="video-file" href="images/question-lab-demo.mp4">Video file</a></div>
<figcaption id="jev-sheets-scene"><strong class="practice-badge">Offline practice demo</strong> Offline practice with fictional rows. The demo shows the workflow, not Jev's live judgment quality.</figcaption>
</figure>
</div>
<div class="practice">
<section class="starting-point" aria-labelledby="jev-sheets-start"><p class="eyebrow">Start something of your own</p><h3 id="jev-sheets-start">Give the agent a direction.</h3><label class="sr-only" for="jev-sheets-prompt">Starting prompt for Jev Sheets</label><textarea id="jev-sheets-prompt" class="prompt" readonly rows="5" spellcheck="false">Help me turn our support tickets into a sheet. Start with an urgency question, then suggest clearer wording to compare in Question Lab. I want to review a small sample and the unsure rows before asking the entire file.</textarea><div class="copy-row"><button type="button" class="primary" data-copy="jev-sheets-prompt">Copy starting prompt</button><span class="copy-status" role="status"></span></div><p class="start-help">In Harness, start a Jev Sheets project and paste this into the agent chat. Change the idea to make it yours.</p><details><summary>Continue from something you kept</summary><label class="sr-only" for="jev-sheets-followup">Follow-up prompt for Jev Sheets</label><textarea id="jev-sheets-followup" class="prompt followup" readonly rows="5" spellcheck="false">Read my kept trial in .harness/question-trials, including the rows and review.md. Help me choose clearer wording and retain that header in sheet.json before running the whole file.</textarea><div class="copy-row"><button type="button" data-copy="jev-sheets-followup">Copy follow-up</button><span class="copy-status" role="status"></span></div><p class="start-help">Keep the result in this project, or give the agent the path to your downloaded copy.</p></details></section>
<section class="walkthrough" aria-labelledby="jev-sheets-try"><p class="eyebrow">Then get your hands on it</p><h3 id="jev-sheets-try">Make a choice. See it happen.</h3><ol><li><h4>Freeze a sample</h4><p>Open Question Lab, choose an existing question and write a candidate. Preview 10, 20 or 40 rows and inspect the exact text and context.</p></li><li><h4>Compare the wording</h4><p>Compare asks both versions together. Inspect changed answers and full probabilities, then mark Original, New wording or Unsure and add your notes.</p></li><li><h4>Keep your reasoning</h4><p>Keep this trial saves the evidence. Try on whole sheet adds the candidate as a separate column; ask the agent to retain the chosen header in sheet.json.</p></li></ol><p class="scope-note">Real answers send sampled rows to your connected Jev provider and require a key. Offline mode is practice only. Confidence and reviewer preferences are not measures of accuracy.</p></section>
</div>
<div class="next-craft"><span>There is another craft to try.</span><a href="#circuitjs" data-experience="circuitjs">Circuits with CircuitJS <span aria-hidden="true">→</span></a></div>
</article>
<article id="circuitjs" class="experience" aria-labelledby="circuitjs-title">
<div class="overview">
<div class="invitation"><p class="eyebrow">CircuitJS / Circuits</p><h2 id="circuitjs-title">See what changed in the signal.</h2><p class="intro">Capture a circuit, turn a component value and overlay the new trace. Place two cursors around the part that interests you and keep the observations with the circuit that produced them.</p><div class="keeps"><span class="eyebrow">Yours to keep</span><p>Native circuit exports, timestamped measurements, an SVG plot, notes and a checksummed ZIP.</p></div><a class="guide-link" href="../store/agents/circuitjs/README.md">Open the harness guide <span aria-hidden="true">↗</span></a></div>
<figure>
<div class="media-stage"><img class="poster" src="images/scope-lab.png" alt="Scope Lab comparing native RC filter traces at two resistance values with A and B measurement cursors." loading="lazy" decoding="async"><video hidden controls playsinline preload="none" data-src="images/scope-lab-demo.mp4" poster="images/scope-lab.png" aria-label="CircuitJS recorded walkthrough" aria-describedby="circuitjs-scene"></video></div>
<div class="media-actions"><button type="button" class="watch" data-watch><span aria-hidden="true">▶</span> Watch real session</button><a href="images/scope-lab.png" target="_blank" rel="noopener">Full image <span aria-hidden="true">↗</span></a><a class="video-file" href="images/scope-lab-demo.mp4">Video file</a></div>
<figcaption id="circuitjs-scene">A native CircuitJS RC filter at two resistance values, captured by its real solver.</figcaption>
</figure>
</div>
<div class="practice">
<section class="starting-point" aria-labelledby="circuitjs-start"><p class="eyebrow">Start something of your own</p><h3 id="circuitjs-start">Give the agent a direction.</h3><label class="sr-only" for="circuitjs-prompt">Starting prompt for CircuitJS</label><textarea id="circuitjs-prompt" class="prompt" readonly rows="5" spellcheck="false">Build a 100 Hz RC low-pass filter with a 1 kΩ resistor and 1 µF capacitor. Label the input and output nodes. I want to capture both in Scope Lab, double the resistance and compare the amplitude and timing.</textarea><div class="copy-row"><button type="button" class="primary" data-copy="circuitjs-prompt">Copy starting prompt</button><span class="copy-status" role="status"></span></div><p class="start-help">In Harness, start a CircuitJS project and paste this into the agent chat. Change the idea to make it yours.</p><details><summary>Continue from something you kept</summary><label class="sr-only" for="circuitjs-followup">Follow-up prompt for CircuitJS</label><textarea id="circuitjs-followup" class="prompt followup" readonly rows="5" spellcheck="false">Read both kept captures in .harness/circuit-captures. Compare their CSV measurements and my notes, explain what changing the resistance did, then help me choose the next circuit value to try.</textarea><div class="copy-row"><button type="button" data-copy="circuitjs-followup">Copy follow-up</button><span class="copy-status" role="status"></span></div><p class="start-help">Keep the result in this project, or give the agent the path to your downloaded copy.</p></details></section>
<section class="walkthrough" aria-labelledby="circuitjs-try"><p class="eyebrow">Then get your hands on it</p><h3 id="circuitjs-try">Make a choice. See it happen.</h3><ol><li><h4>Capture a window</h4><p>Open Scope Lab, choose named nodes or component voltage/current, select a duration and Capture circuit.</p></li><li><h4>Compare a change</h4><p>Change a component in the circuit and capture again. Choose the earlier take in Compare with; place A and B cursors and zoom between them.</p></li><li><h4>Keep both traces</h4><p>Name each take, record what you noticed and Keep capture. Your captures reopens saved traces; Download capture.zip carries the circuit and observations away.</p></li></ol><p class="scope-note">Each capture starts a separate native simulation from the current circuit export. It uses a fresh time origin; initial transients can differ. Keep both captures to preserve a comparison.</p></section>
</div>
<div class="next-craft"><span>There is another craft to try.</span><a href="#mujoco" data-experience="mujoco">Physics with MuJoCo <span aria-hidden="true">→</span></a></div>
</article></div>
<noscript><p class="no-script">All eight experiences are shown below. Starting prompts can be selected and copied; open a Video file link to watch a recording.</p></noscript>
</main>
<footer><p>Eight experiences in this source checkout. <a href="../README.md#run-it">Get started with Harness</a> · <a href="try-hands-on.md">Run a native starter</a> · <a href="../README.md#domain-specific-harnesses-dsh">Browse all harnesses</a></p><p>Videos and images are recorded native sessions, authored separately from these suggested prompts. This guide runs locally without a service; media plays only when you choose it. Jev's demonstration uses offline practice answers.</p></footer>
</body></html>