Super-crude STL file reader I whipped up in 10 minutes:
<a href="https://codepen.io/dheera/pen/zQJBrx" rel="nofollow">https://codepen.io/dheera/pen/zQJBrx</a>
So cool. I looked at a few projects and was turned off by how much code was needed to render each result. However, when I looked closer I realized that most of the code was simply to define the shapes in the illustration, which, is nice, because it's not very logic heavy and means these scenes could be whipped up relatively quickly without confusing the hell out of me. Nice! To the author: you said you wanted to make it for a video game, would love to hear if that idea is going anywhere because I could imagine something like this as a game engine being super useful.
Remembering Dogz and digging through the Wikipedia rabbit hole, I just learned that PF Magic [1], the developer for Dogz/Catz, were also responsible for the SNES 3D fighting game Ballz [2], and its programmer later went on to develop the open-ended experimental adventure game Facade [3]. I knew of the existence of all of them but didn't knew they were all connected!<p>[1]: <a href="https://en.wikipedia.org/wiki/PF_Magic" rel="nofollow">https://en.wikipedia.org/wiki/PF_Magic</a><p>[2]: <a href="https://en.wikipedia.org/wiki/Ballz" rel="nofollow">https://en.wikipedia.org/wiki/Ballz</a><p>[3]: <a href="https://en.wikipedia.org/wiki/Fa%C3%A7ade_(video_game)" rel="nofollow">https://en.wikipedia.org/wiki/Fa%C3%A7ade_(video_game)</a>
I notice that there are some issues with depth sorting (which I guess would be expected). It'd be complicated, but one way you could do the same effect without that issue is to use signed distance fields in a shader:<p><a href="https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm" rel="nofollow">https://www.iquilezles.org/www/articles/distfunctions/distfu...</a><p>(Demo at the bottom of the page)
Does this library support dynamic rendering? I tried to add extra elements to the illustration after rendering it to the canvas and it doesn't appear to work. I might be using the API incorrectly though - is the idea that you can use this library to produce a static model which can then be transformed (eg. rotated), but can't be extended after the first render?
Been following this project on Twitter for a while through the creators (Dave DeSandro). Looks great.. Used to use masonry all the time in projects, glad to see he is still creating cool shit.
React bindings are ready for testing: <a href="https://github.com/drcmda/react-zdog" rel="nofollow">https://github.com/drcmda/react-zdog</a> :-)
This is really nifty. Bonus points for suggesting tau rather than pi across the whole set of examples. Use cases like this make it entirely obvious pi is Just Bad
Wow. Nice! I can imagine a plethora of things being built over this.
Less applicable in real life, but also fun:
<a href="https://www.youtube.com/watch?v=qoxmyH7GezE" rel="nofollow">https://www.youtube.com/watch?v=qoxmyH7GezE</a>
<a href="https://github.com/s0lly/Pseudo3DEngineInExcel" rel="nofollow">https://github.com/s0lly/Pseudo3DEngineInExcel</a>
Nice. I've been playing around with 2D Canvas for audio visualizations and looked into WebGL but was mortified by how complicated it was to render basic 3D shapes and just gave up.
Awesome, congratulations to the creator! I started doing something a little similar, to render pseudo 3d shapes to canvas, here is an example[0]. Try clicking on the page and moving the mouse.<p>[0] <a href="http://jsquest.net/chagas/shift.html" rel="nofollow">http://jsquest.net/chagas/shift.html</a>
Pop this on product hunt, you'll get your first few thousand users in no time.<p>> Zdog is directly inspired by Dogz, a virtual pet game by P.F. Magic released in 1995. It used flat 2D circle sprites to render the Dogz’ models, but in a 3D scene. See Dogz playthrough video here. Dogz were fully animated in real time, running, flopping, scratching (on Windows 3.1!). It was remarkable.<p>The new repeating the old. Love when someone looks historically, finds a great idea and re-implements it for a new usecase!