Simulating hand-drawn motion with SVG filters

(camillovisini.com)

255 points | by camillovisini 4 days ago ago

18 comments

  • jchw 12 hours ago ago

    I have played around with using SVG effects as they are stunningly powerful, but I wouldn't recommend deploying them for too much: even though apparently Firefox does some level of GPU acceleration for SVG filter graphs, in practice a lot of very simple looking graphs I've tried constructing seem to fall back to CPU even with webrender.all turned on. This is kind of a shame because feTurbulence in particular is pretty useful. You could use it for a lot of things. One case I wanted to use it for was to make a gradient grainier, to reduce the obvious banding. Unfortunately, I found that it pegs all of the CPU cores on my laptop immediately :)

    • nicoburns 3 hours ago ago

      WebRender unfortunately doesn't handle vector content at all, so all vector content in Firefox is rendered using CPU (CPU part of Skia). This is not true of other browsers.

  • Daub 18 minutes ago ago

    For a fun example of what the author describes as ‘boil’ in an animated line, check out the animation series ‘Baman and Piderman’. Lots of episodes on YouTube.

  • memalign 14 hours ago ago

    Charming wiggling! Similar to Wobblepaint (drawing tool made by the creator of PICO-8).

    https://www.lexaloffle.com/bbs/?tid=40058

  • gabriben 16 hours ago ago

    Really cool! Reminded me of this post [1] from ~2 weeks ago ago. Could it be combined with your approach?

    [1] https://news.ycombinator.com/item?id=44498133

  • nine_k 16 hours ago ago

    The technique is cool to know. SVG has many non-obvious abilities.

    But the effect, due to the way it's produced, is more like a hot air distortion, only without the faint shimmering. It's completely raster in nature, AFAICT, and is likely implemented as a GPU shader (which is good from the performance POV).

    An effect more like an unsteady human hand could likely be achieved by oscillating nodes in the direction perpendicular to the curvature, and adding some random jitter to the control points.

    • Hasnep 14 hours ago ago

      I had to re-read the second paragraph to make sure you weren't saying that heat haze is a GPU shader effect. Using the phrase "in nature" really didn't help me!

  • hamish-b 14 hours ago ago

    I had hand-done mine on https://kurnell.ai - its really cool to see that I could have computationally done this instead :)

    I used rive.app to encode the frames and create a state machine to move between the states. Perhaps I can simplify this even more.

  • rckt 4 hours ago ago

    Amazing. When I was experimenting with this, I was recreating the paths to get the wiggly effect. And it obviously was resource intensive. This feels much faster.

  • mirkodrummer 15 hours ago ago

    Wonderful, svg has so manu unexplored capabilities that feels like a crime using it mostly for icons on the web

  • tubs 16 hours ago ago

    Pretty site and good write up but my phone turned to molten lava viewing it!

  • socki 16 hours ago ago

    Dr. Katz.

    • andrewmcwatters 13 hours ago ago

      Home Movies!

    • im_down_w_otp 8 hours ago ago

      Sweet baby Jesus, please make it rain potatoes!

    • netsharc 14 hours ago ago

      Kids these days, not knowing Dr. Katz...

  • teeray 17 hours ago ago
  • westurner 8 hours ago ago