Shaped strokes
Cloud, squares, spikes
open full size ↗Three outlines built from the same path: a cloud of large discs, a run of rounded squares, and a broad stroke with sharp spikes.
Details
Cloud: Discs are seeded offsets from the spine with large radii, and the fragment shader draws their union. A union has one well-defined outline whatever the placement, so the boundary never crosses itself, however far the blobs are thrown.
Rounded squares: Cells are stamped on a fixed grid like the pixel stroke, but drawn as a smooth-minimum over every cell's rounded-box distance. Adding a square reshapes the outline around it instead of overlapping it: the boundary is recomputed as a whole each time.
Spikes: The boundary is pushed outward by a power of a triangle wave. The corner at each tip survives any power, while the valley's derivative goes to zero, so the tips stay sharp and the valleys stay rounded.
Tube strokes
open full size ↗3D tubes around the spine, closed by rounded caps: candy stripes, a wobbling width, and metal that reflects the canvas.
Details
Depth and rotation: The spine gains depth from a seeded wave of arc length, so the tube reads as an object lying over the canvas. The shape also rotates around the spine by an angle keyed to the distance from the stroke's end, and a seeded offset pushes it slightly off the spine in a direction that rotates with the same angle, so the whole mark visibly turns and orbits while it is drawn. The rotation is the one deliberate exception to prefix stability. The mark floats about 100 pixels over the canvas, lit from the upper left.
Candy: Diagonal stripes from a list of colors, wrapping with the tube's angle so they run like a barber pole, shaded like glossy plastic: the shadow side and the rim fall back to a saturated deep version of the stripe color, as if light scatters inside the body, under a tight white highlight.
Wobble: The radius swells and thins on a seeded wave, and the color runs a gradient driven by both the wobble and the position along the stroke.
Metal: The current canvas is the environment map: the reflected direction offsets a lookup into it, so the tube mirrors whatever has been drawn around it.
Tetrahedron strokes
open full size ↗Chains of 3D tetrahedrons along the spine, flat-shaded: same-hue facets, flat palette colors, and metal that reflects the canvas.
Details
Placement: Each tetrahedron takes a random size and orientation from the stroke's seed, on the same deepened, rotating spine as the tubes, so the chain turns as the stroke grows. The step between neighbors is their two circumradii plus spacing of their sum, so they cannot touch.
spacing倍を足したものなので、四面体どうしが触れることはありません。Facets: Every face's color keeps the base color's hue while its lightness and chroma vary, so the chain reads as one material in many cuts.
Colors: Every face takes one flat random color from the palette.
Metal: The same canvas reflection as the tubes, but the flat normals break it per face.
Try drawing
open full size ↗Draw with the strokes on this page, in the drawing tool: the settings panel picks the tool, its colors, and its parameters exactly, the floating dials reroll the palette, set the width, and walk a trail of rolled tools, and Clear, Replay, and recording work as on the Drawing Tool Demo page. A turn sharper than a threshold splits the drawn line, so a fast zigzag bakes as separate strokes; each piece appears once its direction settles, and the wider the stroke, the harder its turns smooth. With a pen tablet, pressure scales the stroke around the set width, light thinner and heavy wider, each tool by its own amount; a mouse draws at the set width.