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

ControlRangeWhat it changes
Candles≥ 3How many columns the block covers
Drift± %Net move from first candle to last, applied after the shape
Noise0 – 1Clean textbook shape ↔ realistic mess
Gap chance0 – 1How often a candle opens away from the last close
Extremity0 – 1Calm ↔ 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.