Download Latest Version v0.57.1 source code.zip (454.1 kB) Google Add to Preferred Sources
Home / v0.55.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-10-06 2.8 kB
v0.55.0 source code.tar.gz 2026-10-06 380.7 kB
v0.55.0 source code.zip 2026-10-06 429.8 kB
Totals: 3 Items   813.4 kB 0

Features

  • Add tiling kinds @tile.circle, @tile.slice, @tile.cube, @tile.penrose, @tile.hex, @tile.triangle and @tile.delaunay, with @tile.r, @tile.kind, @tile.x and @tile.y to read a cell's own tile.
  • Add @tile.voronoi with gap, points and seed.
  • Add edge: to bend tiling edges with a formula, and shift: to brick-layout @tile.grid rows and columns.
  • Add a density command for @plot.scatter.
  • Add squircle and cloud shape presets, and fit every preset to the box with a hand-tuned scale.
  • Extend @pattern with match { } arms, texture blocks and texture(), box(), segment(), ramp(), shape(), vec3 colors and color names, // comments and ** as power.
  • Read $name directly in @shaders and @pattern bodies, and pass cell variables into their textures.
  • Warn on more malformed input: missing colons, unclosed braces/quotes/tags/argument lists, invalid an+b, unnamed @pattern blocks, stray parentheses and empty list items.

Breaking Changes

  • Make slice and square the default shape for tiling, replacing voronoi. Pass a kind explicitly (e.g. @tile.voronoi) to keep the old look.
  • Drop the offset alias for @place and the expand alias for viewBox padding.

Changes

  • Multiply only adjacent values in an expression, so 2 t is no longer read as 2t.
  • Make @row, @col and @depth the canonical selector names internally, matching the grammar reference.
  • Restart animations on the applied sheet instead of a stripped copy on update(), and embed only the doodle's own Google fonts in export().
  • Raise the size cap to 200k.

Fixes

  • Fix shape presets: frame, bounds and star/clover/hypocycloid point counts; drop the whale preset.
  • Fix unary minus precedence, the @R() default, GLSL double minus, the percent suffix, π in strings, selector comments and image variable flicker.
  • Restore @t/@T in nested doodle variables so their clock keeps running, and give the prerender host a clock so a cssd-paused attribute doesn't break them.
  • Speed up @plot.scatter, and honor fill: evenodd.
  • Fix several @pattern parsing edge cases: comments, quoted parentheses, repeat() counts, rand() keying, and shader uniform names.
  • Keep only the latest image of each nested doodle in the url cache, and share one element between identical @svg-filter outputs.
  • Render the first frame with the full sheet, wait for a streamed doodle source, and report shader build errors as warnings quoting the failing statement.

Internals

  • Separate tiling from shapes into their own module, and simplify the shape and tile calculations.
  • Improve test speed, and trim the GLSL and esbuild output.
  • Drop dead code and the parse cache across the parsers, generator and component.
Source: README.md, updated 2026-10-06