24 more contact effects, grouped by character rather than by geometry

Featurekamo-internal
Shipped
September 7, 2026 at 8:14 AM UTC
Author
Kamo
Commit
bb6b752

The catalogue sorted itself by what an effect DID — converging, expanding, lively. Nobody opens a settings pane wanting "something that expands"; they want something quiet, or something ridiculous, or something that looks like an instrument. The groups are now Quiet, Classic, Graceful, Eccentric, Brute force and Technical, running from restraint to force, and twenty-four new effects fill them out. Forty-eight in all. Graceful petal five rounds swing open like a flower ribbon a wave runs around an unfurling ring lace a scalloped edge of twelve half-rounds plume a feather sweeps out from the point firefly motes drift and twinkle out of step veil two soft rounds grow and lift away Eccentric wobble a circle that never quite manages it boing a ring on a spring, overshooting pinwheel five curved blades thrown out spinning scribble a scrawl that draws itself bubbles rounds of odd sizes rise and sway starpop a five-pointed star arrives spinning Brute hammer driven onto the point and stopped dead crack six fracture lines split the surface crater a heavy rim with debris thrown clear quake three heavy rings leave with a shudder shards eight thick pieces tumble outward rivet punched in, one hard ring, done Technical radar a sweep goes round with its afterglow caliper two jaws close on a marked scale grid a lattice snaps down onto the point waveform an oscilloscope trace runs outward chevrons two ranks of arrows close in nodes points come online and wire together No effect stays first in every list, the six defaults are unchanged, and every existing id survives the regrouping, so nobody's stored choice is disturbed. The palette and the marks move to paint.ts so effects.ts is nothing but the effects. Two new primitives earn their place: polyline, and shapedRing for anything defined by a radius function — between them they buy the wobbling ring, the scallops, the star, the trace and the scrawl. That widened what a mark can be, and it broke the reach assertion in a way worth recording. The recording context bounded a path by its first and last point, which is exact for a segment and blind for everything else: a star's furthest pixel is a tip in the MIDDLE of the path, and a wobbling ring's is a lobe. It now records every vertex. The invariants held for all 47 painting effects on the first run afterwards, at three seeds across ten points of each life. Two effects were rebuilt after rendering them. The bubbles all left the same pixel at the same rate and climbed as a single knot; they now start from their own pixel at their own rate. The plume's barbs were too short on too tight an arc and it read as a comb rather than a feather. Verified in a browser: 48 options, No effect first, seven groups all emitting role="group" with presentational headings, and type-to-filter reaching the whole catalogue.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing