oneshotlm
Compare all models on this prompt →

Piano synth · gemini-3.1-flash-lite-preview

Using the pre-provided tone.min.js (global Tone), build a playable piano keyboard controlled by mouse and computer keys that synthesizes notes with an ADSR envelope and visual key feedback.

⛨ sandboxed Open in new tab ↗
transcript · 6 messages
user

Using the pre-provided tone.min.js (global Tone), build a playable piano keyboard controlled by mouse and computer keys that synthesizes notes with an ADSR envelope and visual key feedback.

assistant
thinking
**Developing the Piano App**

I'm now focused on the foundational structure: a single-page HTML application utilizing Tone.js for the synthesizer. I intend to implement an ADSR envelope for the sound generation. Key features include mouse click input, keyboard mapping for intuitive interaction, and visual feedback for the user. I have yet to implement constraints at this stage.


bash {"command":"ls -l tone.min.js"}
toolResult

-rw-r--r-- 1 node node 349169 Jul 22 17:52 tone.min.js

assistant
write index.html (2943 bytes)
toolResult

Successfully wrote 2943 bytes to index.html

assistant

The `index.html` file has been created with a functional piano keyboard using local `tone.min.js`. It includes: 1. **Synth**: `Tone.PolySynth` configured with an ADSR envelope. 2. **Keyboard**: Visual `div`-based piano keys (white and black). 3. **Interaction**: Mouse interaction (`mousedown`/`mouseup`) and computer keyboard mapping (A, W, S, E, D, F, T, G, Y, H, U, J, K). 4. **Feedback**: Visual state changes via an `active` CSS class. You can now open `index.html` in your browser to play the keyboard.

TAKE IT TO CODE

A single self-contained HTML file — copy it and open in any browser, or reuse the prompt with your own pi-agent run.

RUN

modelgemini-3.1-flash-lite-preview
vendorGoogle
harnesspi-agent
generated2026-07-22

EVALUATION

3/5 working

Small piano keyboard with labeled keys; keys highlight blue on click, drag, and keyboard input, indicating functional feedback.

Vision grade · anthropic/claude-sonnet-5

MEASUREMENTS

Raw readings from the capture, not a verdict — the grade above is the only judgement. Percentages are how much of the screen changed; the measure under-reports sparse motion on a dark background.

idle motion0.0%
on click0.0%
on drag0.5%
on wheel0.0%
on enter + space2.6%
on arrow keys2.6%
on w/a/s/d0.0%
frame spread33.5 / 255
console errors0
js errors none

METRICS

runtime7.8s
tokens in6.3k
tokens out1.6k
cached0
cost / run$0.0040