top | item 26972837

Show HN: Minimal 3D creative coding tool – control 8×8×8 dots with JavaScript

206 points| doersino | 4 years ago |doersino.github.io | reply

30 comments

order
[+] doersino|4 years ago|reply
Repeatedly click the dots for a tutorial, click and drag to rotate, and – after writing a function of your own – hit "enter" to generate a shareable URL!

The source code can be found here: https://github.com/doersino/tixyz

Let me be clear: This thing is wholly derivative, merely adding a third dimension to Martin Kleppe's excellent creative code golfing tool tixy [0] (which you should definitely check out if you find yourself liking this 3D variant of it) by mashing it up with David DeSandro's equally-excellent 3D library Zdog [1]. Those two deserve any and all credit.

[0]: https://tixy.land and previously discussed at https://news.ycombinator.com/item?id=24974534

[1]: https://zzz.dog and https://news.ycombinator.com/item?id=20036169

[+] huhtenberg|4 years ago|reply
This looks way to close to the original, and deceptively so at that.

I doubt it was your intent, but at the very least you should give the credit to tixy.land, with a link, front and center right there on the page.

Also, something as simple as using a different color pair would really help to distance it from the original.

[+] yesenadam|4 years ago|reply
This is so cool! Great job.

sin(i+t) : https://doersino.github.io/tixyz/?code=sin(i%2Bt)

If you stop that one rotating with the mouse, it's some kind of brain-damaging illusion. Or thousands of illusions, most of which do something weird to your eyes–it looks very different from different angles. Hmm that is such a great way of generating (2D) optical illusions!

[+] peanutz454|4 years ago|reply
This is so cool, I am still unable to clearly comprehend what is going on at one layer. I wonder if there is some way to set others layers to zero!
[+] rjmunro|4 years ago|reply
I think this would might better with a slight perspective transformation, at least for some effects - sometimes the 3d is hard to appreciate.

Also once you drag manually there is no way to put it back into auto-rotate mode. It would be great if there was a bit of momentum when you drag - it should carry on at the speed you dragged it.

[+] richrichardsson|4 years ago|reply
Also came here to make the same suggestion.

A configurable perspective transform would be brilliant.

[+] _Microft|4 years ago|reply
Did you fix the bug in the tixy.land code where one could inject as much code as wanted via location.hash?

Here is the post from when I discovered it:

https://news.ycombinator.com/item?id=24980221

Edit: no, that still works, here is an example:

https://doersino.github.io/tixyz/?code=eval(%27%2F*%27%2Bpar...

[+] schaefer|4 years ago|reply
I love this project.

but also, if you are sensitive to flashing lights, this web page has 512 of them.

[+] tuukkah|4 years ago|reply
Easiest fix could be to tone down the white and red colors by default so that any flashing stays under the accessibility threshold.

It would also be cheap to render frames one second ahead, but I don't know if a client-side accessibility analyzer exists to create a warning dialog in case the frames contain too much flashing.

[+] gregmac|4 years ago|reply
I've wanted to build a LED cube [1] for a while, but just haven't had the time to get to it yet. This is basically a virtual version of the same thing, very cool. And significantly simpler to experiment with before committing to several days of soldering.

[1] https://www.instructables.com/Led-Cube-8x8x8/

[+] abstractfoundry|4 years ago|reply
Blatant self promotion, but my friend and I just launched an LED cube kit on Kickstarter [1] which you might be interested in (no soldering). It's just the outermost LEDs on three sides, but the idea is similar, you create all sorts of animations in just a few lines of Python, e.g. use 4D noise to create a digital lava lamp effect etc. Also every component exposes a REST endpoint, so you can use other languages too.

[1] https://www.kickstarter.com/projects/1202256831/lumicube-an-...

[+] rsiqueira|4 years ago|reply
There can be a real-life 2D version of this: it probably can be integrated to an Arduino project using a LED 8x8 Red Dot Matrix Display (piece code MAX7219).