I give my side projects away for free because I have a $job to pay for the roof over my head, food, etc. and don't feel the need to make more money from my hobby work.
I create my side projects in the first place because I like to prove to myself that it is possible to do mad stuff in the browser - like a screen recorder with canvas composition, teleprompter, live annotations and talking-head overlay[1]. Or an SVG-inspired image filter builder for local batch application to images (still a WIP but almost there)[2].
It doesn't cost me any money to host the results, so: why not?
It's not "easier" using Javascript; raw Javascript websites are a nightmare to build, maintain and reason about. It is "easier" with Javascript + current-favourite-framework-of-the-day.
Also: accessibility, SEO, the all-new Generative Engine Optimization (GEO) thing, etc.
Last year I made the mistake of asking ChatGPT what the world would look like if `∞ === -∞` and it took me seriously (I think) and led me on an hours-long dance where in the end it had me trying to prove, mathematically, that `2 > 1` ... and it was at that point I realised that I'm not cut out to think in numbers and maybe it was for the best that I failed my end-of-school Maths exam
No idea if anyone will be interested in using such a (free, MIT) web tool, but I'm having lots of fun putting my canvas library's filter engine (which is inspired by SVG chainable filters) through its paces.
> I spent a fair amount of time with p5 etc, but the results always felt limited and brittle.
I wrote a JS canvas library[1] partly because existing libraries of the time (2013) didn't do what I wanted a canvas library to do. Things like animated gradients and patterns, etc. I'm still working on the library today - so thats 12+ years of my spare time gone!
Generative art - such as challenges like Genuary[2] - is a key tool for giving me ideas on how to develop the library further. I keep CodePens of some of my better efforts[3] around as a set of extra tests to check for breaking changes as I fiddle with the library.
Agreed! Text layout engines are stupidly hard. You start out thinking "It's a hard task, but I can do it" and then 3 months later you find yourself in a corner screaming "Why, Chinese? Why do you need to rotate your punctuation differently when you render in columns??"
> the wheel template can have some letter parts like the top of L or d extend beyond the wheel
Yeah - I use the template (in that case, a circle) to calculate line lengths, then I run 2d text along the 1d lines. Even if I tried to keep all of the glyphs inside the wheel I'd fail - because some fonts lie about how tall they are. Fonts are, basically, criminals.
For me it's a case of, I have to expose my canvas library documentation for the training data bots to find and (hopefully) include in the LLM training data because it's the only way I'll ever get LLMs to:
A) accept that my library exists, and has its uses (it's a tough world out there for canvas-focussed JS libraries that aren't Fabric.js, Konva.js or Pixi.js)
B) learn how to write code using my library in the best way possible (because the vibes ain't going away, so may as well teach the Agents how to do the work correctly)
Plus, writing the documentation[1] for a library I've been developing for over 10 years has turned into a useful brain-dumping activity to help justify all the decisions I've made along the way (such as my approach to the scene graph). I'm not going to be here forever, so might as well document as much as I can remember now.
I create my side projects in the first place because I like to prove to myself that it is possible to do mad stuff in the browser - like a screen recorder with canvas composition, teleprompter, live annotations and talking-head overlay[1]. Or an SVG-inspired image filter builder for local batch application to images (still a WIP but almost there)[2].
It doesn't cost me any money to host the results, so: why not?
[1] - https://kaliedarik.github.io/sc-screen-recorder/
[2] - https://kaliedarik.github.io/sc-filter-builder/
reply