I try and install it, almost two hours later, I can’t get the f***ing thing to run. I get paid to do this for a living, that’s how good at least some people consider me, and yet I can’t draw a picture on the screen because of build errors so complicated I can’t even begin to understand what’s causing them. How did we get here? Why can’t I use my computer to do almost anything that isn’t bootstrapping a web application?!

@neauoire @jcmorrow Because you chose a new stack, perhaps? If my goal was to just draw a picture, I could easily use Processing, but I would have a hard time if I decided to do the same thing with a language I had never used.

@neauoire @jcmorrow I guess my more general point is: you will become accustomed to the trade-offs and quirks of your day-to-day interfaces and languages. To an outsider, they are likely arcane.

@stephen @neauoire I hear that. Setting things up is always a bit of a struggle. Perhaps this is horribly misguided, but I'd make a comparison: a crayon can be used by a four year old as well as by a master artist. I don't need software that can be used by a four year old, but I'm upset that it requires an advanced degree to express yourself artistically using software.

@neauoire @jcmorrow I don't agree. To do it in the exact way you want might be a challenge, but to use the given analogy, you can't use a crayon to make an oil painting. Execution requires time and skill regardless of medium.


@neauoire @stephen @jcmorrow legacy method that still works on linux (virtual terminal) today: writing to /dev/fb0

for i in $(seq 1000000)
echo -e "\xff\x00"
done > /dev/fb0

@neauoire @eel @stephen @jcmorrow

This, btw, is essentially how you can draw stuff on the #norns. It's just a plain ol framebuffer /dev/fb0. Nothing fancy about it. Here's a small example for the norns that I wrote in C:


There's no "modern" way to draw pixels on screens, because most people want to draw a shitload of triangles instead. That's really slow to do pixel-by-pixel. So slow, that we've collectively built special silicon (GPUs) and lots of specialized pipelines to accommodate drawing tons-o pretty triangles.

@paul @neauoire @eel @stephen @jcmorrow To be fair, the challenge is to compute every pixel onscreen 60+ times a second.

From what I've seen that requires extensive low-level and high-level optimizations, whether or not you do so by creating special hardware to parallelise it. Computer graphics is fundamentally slow.

@alcinnz @paul @neauoire @eel @stephen @jcmorrow You can mmap() that device into your local address space to gain raw read/write access. That's how most console graphics programs worked back in the day.

@alcinnz @neauoire @eel @stephen @jcmorrow I find the fact that computer graphics fundamentally slow to be one of the best parts of the field. You get to actually use and throw cool algos + data structures at your program, see dramatic improvements, and get a pretty picture at the end of it! With audio DSP, I've found it more challenging to utilize concepts more rooted in CS. It's more focus on EE than anything. As a colleague of mine once said, "it's all multiplies and adds eventually".

Another neat thing about computer graphics is it's pretty "full stack", it concerns itself with everything from the wave equation to low level computer architectures that the programs run on. It's made me appreciate Toy Story way more.

@paul @alcinnz @neauoire @eel @stephen that's a fair point! As a programmer, the complexity of graphics is alluring (I've built a ray tracer for fun, I get it!). What's *not* alluring is coming at it from the angle of someone who wants to use language to create visual art. There, it feels like a slog more than I think it should.

@eel @neauoire @jcmorrow That's awesome. I was very tempted to say during this conversation, "make ASCII art."

i am waiting to test an mpeg video player written entirely in bash now! 😁😎😉
@neauoire @stephen @jcmorrow

Sign in to participate in the conversation

Merveilles is a community project aimed at the establishment of new ways of speaking, seeing and organizing information — A culture that seeks augmentation through the arts of engineering and design. A warm welcome to any like-minded people who feel these ideals resonate with them.