Hacker Newsnew | past | comments | ask | show | jobs | submit | rikroots's commentslogin

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?

[1] - https://kaliedarik.github.io/sc-screen-recorder/

[2] - https://kaliedarik.github.io/sc-filter-builder/


> when it's much easier to just build a nice website using JavaScript

I'm currently building a web-based tool that uses dynamic forms for UI, without the help of of a framework (yeah I know; I have reasons). This is the result: https://github.com/KaliedaRik/sc-filter-builder/blob/main/js...

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

> Last year I made the mistake of asking ChatGPT

That's the only way to ask it.

But in the spirit of generosity you may be interested in the "one-point compactification of the line".


As the other reply alluded to, this is actually a real thing [0].

[0]: https://en.wikipedia.org/wiki/Projectively_extended_real_lin...


I'm building a client-side-only web page that will (eventually) allow users to build their own image filter and batch-apply it to a bunch of images.

https://kaliedarik.github.io/sc-filter-builder/

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.

[1] - https://github.com/KaliedaRik/Scrawl-canvas

[2] - https://genuary.art/

[3] - https://codepen.io/collection/RzzMjw


No install, no backend, no fees. MIT licensed for hacking and local use.

Link to tool: https://kaliedarik.github.io/sc-screen-recorder/


> This thing is very impressive.

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??"

This effort feeds back to the DOM, making it far more useful than my efforts which are confined to rendering multiline text on a canvas - for example: https://scrawl-v8.rikweb.org.uk/demo/canvas-206.html


Why do you bring up Chinese cornes if the basic Latin text in the Pretext demo is deficient?

(by the way, in your cool demo the wheel template can have some letter parts like the top of L or d extend beyond the wheel)


> 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.


My tool uses the browser's built in encoders (which vary by browser, but whatever). I did use wasm though, for the MediaPipe background removal stuff.

https://kaliedarik.github.io/sc-screen-recorder/


Browser screen recorder with canvas composition, teleprompter, live annotations and talking-head overlay.


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.

[1] - https://scrawl-v8.rikweb.org.uk/docs/reference/index.html


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: