(this thought is brought to you by trying to do linework in pencil crayon, doing experimental coloring with gel pen, extremely disliking the result, and not being able to play around with it at all to find out what would work better)
sometimes people tell i should try to draw in more permanent mediums because committing to lines and being more okay with drawing badly helps with being creative
but i find in practice the opposite seems to be true?
like, being able to erase and experiment with 90 different things quickly has been a lot more informative and fun for seeing what works, and what doesn't
if i try to draw with things i can't tweak, i just draw worse and try less since each experiment takes so much more effort
hee. i got some gel pens a while ago, and i'm still figuring out how to use them tastefully
it's nice being able to have more bold colors for lines though!
anyway, fennel continues to be a super-cool language that i like lots, so it's cool finding excuses to use it more
oh, and if you are curious about the faces i drew in literally 5 seconds in mspaint because i needed something to test with, here they are!
the magic is that resuming a coroutine just jumps right back to the place i yielded from, so i can break this coroutine into tiny pieces that get rendered every frame
meaning, i only ever need to interact with it in once place after making it; it's completely self-contained!
(i wonder how this compares to how scheme continuations work?)
this is what the closure actually looks like if you're curious! https://gist.github.com/Archenoth/d189ce7b20ea922be3d3169f6b369fef
(i named it .clj because github doesn't recognize fennel)
basically, every tick, the coroutine to render a single line of dialogue resumes with a new time in scope, and based on that, renders a subset of text
after it renders a full line, it continues to a new yield loop to render the bouncy triangle at the bottom to note you can progress
and when the coroutine finally finishes, a new line takes its place
this is the *entire* code to use this
render-text literally is just a coroutine closure that gets resumed every tick, and automatically handles how to render it based on the current time
oh! i'm not sure how many emacs peeps follow me, but i finally updated Archemacs' readme so that it would be easier to setup for others~
i tend to try and stick pretty close to the defaults, so the end result is really light, and i use tangling to trim support for things you don't have installed making it even lighter!
the end goal is basically having a really light emacs that looks good (i use doom's dracula style), but also has a lot of modern niceties
oh hi! i do computers, and sometimes draw stuff~ i like lo-fi things and cute aesthetics!
i also probably like you
(also, tagged #abdl ahead, soooo 🔞)