Matt DesLauriers is a creative coder who writes about GPU graphics, generative art, pen plotters, and JavaScript tooling.
HN commenters link it as a guide to pen plotting and thick line rendering on the GPU, and ask him about his generative art process.
I don't know if using Xeon Phi for rendering makes that much sense. It's sort of the problem it's least competitive to solve on a raw performance, performance per watt or development cost basis.
> However, ‘smaller’ is a relative term as current visualizations can occur on a machine that contains less than a terabyte of RAM. Traditional raster-based rendering would have greatly increased the memory consumption as the convoluted shape of each neuron would require a mesh containing approximately 100,000 triangles per neuron.
That sounds like a poor approach to this problem. You could write a shader that renders thick lines for the dendrites, and the rest of the geometry can be conventional meshes. The same shader could have a pass specially designed for lines and depth of field rendering. That's the one unusual shader. It's hard, but not super hard to write. [0]
Besides, unless you need this to run in real time (which the Xeon Phi doesn't anyway), you could just raster render and page in the mesh data from wherever. So what if it's slow.
I think highly technical platform decisions like Xeon Phi versus NVIDIA CUDA is really about the details. You have to educate the reader both on the differences that matter and why they should choose one over the other. The comment in the article, "no GPU dependencies," is a very PR-esque don't-mention-your-competitor dance around what they're actually trying to say: the CUDA ecosystem can be a pain since you can't buy the MacBook Pro with…
Sigh. I had just about decided on using Browserify in my current projects (instead of Require.JS), and now I have to find out there's ANOTHER option... (Though looking at one comparison [1], I guess I'm sticking with Browserify moving forward.)
It does feel like information like this is siloed: Everyone talks about their own favorite solution, and few actually make intelligent comparisons. I didn't know about gulp until after I'd already set up grunt, for instance, and I don't really want to tell the team "now we're using gulp" after having selected grunt only two months ago. I hadn't even heard of Broccoli until just now, either. I obviously need a better JavaScript news feed.
That said, I don't feel a need to slam gulp or say grunt is great. But something that the article misses is that the kind of loud, rude argument that it describes is a basic, well-known psychological reaction to insecurity: The less self-confidence you have, the more you feel the need to be loud about your opinions. And I think a lot of JavaScript developers are insecure, based on the evidence.
[1] http://mattdesl.svbtle.com/browserify-vs-webpack
[2] https://en.wikipedia.org/wiki/Psychological_projection
Used "correctly" the web with JS is way better than the web without. There's plenty of sites that use JS great from actual apps to articles and tutorials with interactive examples. In fact personally I find myself disappointed when I see an article that would clearly be better with interactive diagrams but the authors are stuck thinking the web it just a transmitted book and not it's own medium but better strengths.
A couple of examples where IMO JS makes the page superior to one without
https://mattdesl.svbtle.com/drawing-lines-is-hard
https://bost.ocks.org/mike/algorithms/
https://pomax.github.io/bezierinfo/
Hey, i'm brainstorming for a 3d vector renderer in WebGPU on JS/TS and stumbled on your project [0] yesterday.
(Thick) line drawing is especially interesting to me, since it's hard [1].
I also stumbled upon this [2] recently and then wondered if i could use that technique for every shape, by converting it to quadratic bezier curve segments.
Do you think that's a path to follow?
[0] https://github.com/Lichtso/contrast_renderer
[1] https://mattdesl.svbtle.com/drawing-lines-is-hard
[2] https://scribe.rip/@evanwallace/easy-scalable-text-rendering-on-the-gpu-c3f4d782c5ac
Thank you! This is all in JavaScript with some open source tools I'm building[1]. I write about my process in a few places: often on Twitter, recently in a TinyLetter, and occasionally more in-depth on my blog[2].
I'd suggest Tim Holman's GenerativeArtistry[3] as a starting point to get back into it.
Good luck! Feel free to ping me any time on Twitter or IG if you have any Qs about generative art.
[1] - https://github.com/mattdesl/canvas-sketch
[2] - https://mattdesl.svbtle.com/
[3] - https://generativeartistry.com/
related:
https://surma.dev/things/webgpu/ (https://news.ycombinator.com/item?id=30600525)
https://mattdesl.svbtle.com/drawing-lines-is-hard (https://news.ycombinator.com/item?id=13671016)
https://blog.mapbox.com/drawing-antialiased-lines-with-opengl-8766f34192dc?gi=38f8cb8c1475
i'd like to try implementing this paper [1] in WebGPU, but think it's over my head currently, having mainly worked with Canvas2D.
[1] https://jcgt.org/published/0002/02/08/paper.pdf