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?!
@jcmorrow this echoes a lot of what I'm thinking these days..
@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.
But I'm taking that what you mean would be to clone that p5js repo, spin a localhost, and run that processing code?
I hope it doesn't require too many weird dependencies, but let's say I went through that process, it's not what I would call painlessly drawing a pixel on a screen.
@neauoire @jcmorrow p5js doesn't have dependencies: https://github.com/processing/p5.js/blob/master/package.json#L136
You need a browser which can support canvas or webgl.
@neauoire @jcmorrow You could also use the canvas API directly: https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API
I was recently invited to meet with Google's canvas team. They've showed me the megacluster of computers that is required to build and test Chrome.
I've been trying to find a dev solution that isn't so catastrophically energy hungry, so I can draw some pixels on my screen.
@neauoire It sounds to me like you should take a stick out onto the beach. It's the best and most relaxing way to draw.
It also doesn't require child slaves cobalt mining in the global south.
@jcmorrow How do you define a dependency?
@stephen A piece of software required to run another piece of software?
@jcmorrow Then you can follow that logic all the way down to the kernel for any implementation of "draw a pixel to the screen".
@stephen That's true! I completely agree. An OS is, generally, a giant dependency. If I could make it not that way, and still write code that produced art, I would be over the moon! I realize that that is a weird thing to say in a conversation about software, but that's how I think about the problem.
@jcmorrow Knitting is code which produces art – maybe try that? 😅
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.
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 @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.
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.