Settings

Theme

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

doersino.github.io

206 points by doersino 5 years ago · 30 comments

Reader

doersinoOP 5 years ago

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 5 years ago

    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.

    • doersinoOP 5 years ago

      The author of tixy.land didn't seem to take issue with my "clone" (or the many others) – quite the opposite: https://twitter.com/aemkei/status/1325525563579244548

      I don't think "deceptively" is the best word here – there's no money or private data involved, at most a small bit of street cred. The near-identical look was intended to preserve the simplicity of the original. Note that there's a reference to tixy.land in my comment here, in the README.md on GitHub, and in the tweet that's behind the "more info here" link. Anyone looking to do more than just idly play around with this tool will come across one of them.

      But I get your point – I'll be adding an unobtrusive link back directly to tixy.land soon!

      EDIT: Done.

      • huhtenberg 5 years ago

        I opened your page, saw the thing and the first question was if it's from the same guy or not. There's no answer and there should be. tixy.land is an ingenious, one of a kind construct. You piggy-back on it, it's only fair, polite and respectful to give a credit. Basic manners, really. A simple line at the bottom of the page saying "inspired by tixy.land" would do the trick. The fact that you instead chose to argue that it's not needed is really quite bizarre.

        Edit: excellent, thanks for listening.

chaosmachine 5 years ago

My best:

  tan(i*t/999)*(~~(t*24%7)==i%7)
https://doersino.github.io/tixyz/?code=tan%28i*t%2F999%29*%2...

Play with the frame rate ("24") for some interesting effects.

Edit: One more:

https://doersino.github.io/tixyz/?code=sin%28i*t%2F999%29*%2...

yesenadam 5 years ago

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!

rjmunro 5 years ago

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.

azhenley 5 years ago

Inspired by tixy.land, I recently made a simple game engine with 16x16 animated “pixels”. We used it as an in-class activity during the last week of the semester.

https://github.com/AZHenley/wiggleface

_Microft 5 years ago

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...

simlevesque 5 years ago

Old ambulance light: https://doersino.github.io/tixyz/?code=%28Math.random%28%29%...

Edit: i just figured out that t is a float, I thought it was the seconds as an int.

Edit 2: if anyone reads this, try to make a barbershop type thing.

schaefer 5 years ago

I love this project.

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

  • tuukkah 5 years ago

    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 5 years ago

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 5 years ago

    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-...

pantelisk 5 years ago

ha, awesome! I love how minimal the whole approach is

I call this, "Sweeping Vertigo" https://doersino.github.io/tixyz/?code=tan%28i%2Bt%29*random...

quickthrower2 5 years ago

Jelly: Math.random(1)

https://doersino.github.io/tixyz/?code=Math.random(1)

rsiqueira 5 years ago

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).

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection