Compare all models on this prompt →
L-system tree · gpt-5.1-codex-mini
Output generated Cost / run $0.0049 Runtime 21.4s
Prompt for this run
Using the pre-provided p5.min.js (global p5), grow a procedural L-system fractal tree that branches recursively and sways gently in the wind.
⛨ sandboxed Open in new tab ↗
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
modelgpt-5.1-codex-mini
vendorOpenAI
harnesspi-agent
generated2026-08-01
METRICS
runtime21.4s
tokens in5.7k
tokens out2.3k
cached4.6k
cost / run$0.0049
Transcript · 8 messages
user
Using the pre-provided p5.min.js (global p5), grow a procedural L-system fractal tree that branches recursively and sways gently in the wind.
assistant
→ bash
{"command":"pwd"}toolResult
/tmp/ws
assistant
→ bash
{"command":"ls"}toolResult
p5.min.js
assistant
thinking
**Implementing tree generation** I'm working on a project to create a tree generation using L-systems. I need to set up the treeSentence and define how many iterations I'll run—five for now. I'll generate a string in that process. In the setup, I'll create a canvas and set the frame rate, then generate the initial structure. In the draw function, I plan to manage the background and apply stroke effects. Finally, I'll make sure to create an index file and include necessary instructions in the HTML for proper loading.**Setting up an L-System Tree** I'm drafting the HTML structure for a procedural L-system tree. The document starts with a standard doctype and essential meta tags. I'm styling the page to have a dark background and white text, using 'Segoe UI' as the font. There's a canvas that I'll generate with the p5.js library. In the JavaScript, I define the axiom and rules for generation. The generateLSystem function will iterate and apply rules to build the tree structure. In the setup, I'll create the canvas and initialize my sentence, adjusting the length based on the height. I also plan to handle window resizing to maintain the layout.**Implementing the drawing function** I'm diving into the drawing logic for the L-system tree. The dynamic angle combines the base angle with an oscillating sway for some movement. I'll translate to the center bottom of the canvas and set the stroke color and weight for the lines. In the drawSentence function, I'm using a loop to process the sentence generated earlier. I'll handle different characters: "F" for drawing lines and translating, "+" and "-" for rotations. For branches represented by "[" and "]", I plan to utilize the built-in push and pop functions in p5.js to manage transformations, simplifying the drawing states without using an external stack.**Finalizing the drawing function** I’m refining the drawSentence function for the L-system tree. I'll use a switch statement to handle different characters in the sentence. For "F," I'll draw a line and translate accordingly; for "+" and "-", I'll rotate by the specified angle. I need to be careful with stack operations so they don’t mismatch. Considering how to reduce the line length gradually, I might set it as a constant relative to the height, perhaps 0.12 times the height. Once I finalize these details, I’ll ensure the stack isn't necessary and wrap up the coding file.
→ write
index.html (2090 bytes)toolResult
Successfully wrote 2090 bytes to index.html
assistant
Created `index.html` with a self-contained procedural L-system tree rendered using the pre-provided `p5.min.js`. The HTML includes embedded CSS/JS and displays a swaying fractal tree that grows recursively.