Building the chart
Market Blocks
Generated chunks of realistic price action — twelve named shapes, all seeded, all reshapeable after the fact.
A Market Block is a generated chunk of price action that stays a live object. Click to place one, then reshape, rescale, rename or regenerate it at any point afterwards.
Why it looks real
The generator is not a random line. It is a geometric walk with volatility clustering (calm stretches and violent ones, the way markets actually behave), fat-tailed moves, wicks built as a bridge between the body's ends, and occasional gaps. That is why a block reads as a chart and a random walk reads as noise.
The twelve shapes
Beyond a plain trend, the tool carries twelve named formations as jittered skeletons — the structure is fixed, the exact prices are not, so no two placements look identical.
The knobs
| Control | Range | What it changes |
|---|---|---|
| Candles | ≥ 3 | How many columns the block covers |
| Drift | ± % | Net move from first candle to last, applied after the shape |
| Noise | 0 – 1 | Clean textbook shape ↔ realistic mess |
| Gap chance | 0 – 1 | How often a candle opens away from the last close |
| Extremity | 0 – 1 | Calm ↔ wild: fatter tails and stickier volatility |
Drift is a post-process, so it works on any shape — a head-and-shoulders that also ends 8% higher is one control away.
Same seed, same candles
Every random draw comes from the block's own seed. Adjusting a slider keeps the seed and adjusts the same walk, so you are refining one chart rather than rolling a new one. Regenerate is what mints a new seed. This is also why a project you export and re-import draws exactly the chart you left.
Frame and handles
A selected block has a frame:
- Top and bottom scale its prices — the whole shape stretches or compresses.
- Left and right change how many candles it covers, regenerating to fit.
- Dragging inside moves it.
Resizing by drag has a safety ceiling of 500 candles, because the count comes from a live pointer delta and not a number you typed.
Chaining blocks
Place a block while another generated block is selected and it attaches immediately after it instead of landing where you clicked. That is how a long move gets built out of several named shapes in sequence.
Add to sequence collects segments instead of placing them; Generate then places the whole queue back to back as a single undo step.
Manual groups
Ctrl+G wraps 2+ selected candles into a manual group; Ctrl+Shift+G ungroups. Gaps in the selection are fine, but a candle already in a group cannot join a second one.
A manual group is a pure container. There is no regenerate and no left/right resize — the candles are hand-drawn, and there is nothing to regenerate them from. Move, vertical scale, naming, the eye and use as a camera target all still work.
The block is a reference layer
The renderer and the export never see groups at all — they see flat candles. A block is a convenience for you, which is why deleting one can leave its candles behind and why nothing about grouping changes a single exported pixel.