Settings

View

Pinch or mouse-wheel zoom the view; two-finger scroll, Alt-drag, or middle-drag pans the view. The artboard grows to fit metaballs so editing never gets cut off.

Fill packs dots inside each letter. Pen strokes uses corner points plus extra dots along each stroke segment. Connect balls to join the path.

Text overlay

Normal text on top of the metaballs. Drag on the canvas to position; separate from the dot type tool above.

Add text to place a layer you can drag on the canvas.

App icon preview

Rounded square mask over the canvas (non-interactive). Dimmed area simulates the home screen; compose your logo inside the icon window.

Metaball field

Attraction and falloff control how balls merge. Threshold sets blob size. Noise sliders apply when noise amount is above zero.

100% shows every ball in the current layout. Lower values hide balls in a fixed random order for this layout (same positions when you raise it again). New clicks add to the pool (up to 128 total).

Distance-based links

By default each ball links to its nearest neighbors (not every other ball). Use max link distance to drop connections beyond that length while still targeting the neighbor count. Far links are drawn longer and thinner. Metaball bridges add faint merged tubes (best with lower surface threshold).

Saved dot layouts

Your work autosaves every 5s to data/logo-dot-current.json and restores after a dev reload. Use Save named preset to keep a numbered snapshot in data/logo-dot-presets.json.

Pinch or mouse wheel zooms the view toward the cursor. Two-finger scroll, Alt-drag, or middle-drag pans the view. The artboard grows to fit metaballs so editing balls doesn't get cut off. Ball size and jitter update all balls. Noise appears only near balls.