

T * sin (t) ≈ Christmas tree - adamnemecek
https://github.com/anvaka/atree

======
adamnemecek
Someone also reimplemented it in Mathematica

[http://community.wolfram.com/groups/-/m/t/175891](http://community.wolfram.com/groups/-/m/t/175891)

------
zafka
This reminds me of when I first started programming in Turbo Pascal. I made a
Christmas tree using graphic mode and trig functions. I also only used if-then
statements so i ended up with about a thousand lines :) Looking at this more
elegant tree reminds me of why I went into this career.

------
jwmerrill
Quick reimplementation in the desmos graphing calculator:
[https://www.desmos.com/calculator/brjshfkaof](https://www.desmos.com/calculator/brjshfkaof)

Press play next to t_0 to animate.

------
sheetjs
Original reddit post:
[http://www.reddit.com/r/programming/comments/1tswai/t_sin_t_...](http://www.reddit.com/r/programming/comments/1tswai/t_sin_t_christmas_tree/)

------
CodeWithCoffee
It seems awfully appropriate 'starring' this repository.

------
swamp40
I _really_ like the simplicity.

Can you reverse the direction of one of the spirals?

Or maybe slow down one to half-speed?

(Maybe it would look better, maybe not.)

------
popotamonga
Same formula on Quake's Railgun

~~~
icefox
Got a link? Google found this Quake2 railgun, but it doesn't look to be the
same on first glance [https://github.com/id-
Software/Quake-2/blob/master/ctf/g_wea...](https://github.com/id-
Software/Quake-2/blob/master/ctf/g_weapon.c#L653)

~~~
angersock
That's the game attack logic, not the rendering logic. You want this instead:

[https://github.com/id-
Software/Quake-2/blob/master/client/cl...](https://github.com/id-
Software/Quake-2/blob/master/client/cl_fx.c#L1613)

------
callmevlad
Extra credit to anyone who can implement this in HTML/CSS without using the
canvas element. Since CSS transformations are hardware accelerated, I bet it
can be made to look as smooth as the reference GIF.

~~~
elwell
Still canvas, but is that any smoother?:
[http://jsfiddle.net/rYa5d/8/](http://jsfiddle.net/rYa5d/8/)

~~~
karanbhangui
Nice touch with the subtle parallax!

------
elwell
with dynamic alpha, and mouse orient around x-axis:
[http://jsfiddle.net/rYa5d/1/](http://jsfiddle.net/rYa5d/1/)

~~~
elwell
Actually it's a little better when more spaced out:
[http://jsfiddle.net/rYa5d/8/](http://jsfiddle.net/rYa5d/8/)

------
c3d
Yet another entry. The Christmas tree in Tao Presentations is less than 30
lines of code, with a star at the top and blinking lights. Code here:
[http://www.taodyne.com/shop/dev/en/blog/275-a-christmas-
tree...](http://www.taodyne.com/shop/dev/en/blog/275-a-christmas-tree-is-x-
sin-x).

------
prafulrana
[http://runnable.com/Ur4mzpVUigJbAALD/christmas-
tree-%5Bt-*-s...](http://runnable.com/Ur4mzpVUigJbAALD/christmas-
tree-%5Bt-*-sin-t-%E2%89%88-christmas-tree%5D-for-javascript-and-animation)

------
coherentpony
Yeah it's a helix.

------
gky2
Oh god staring at this just motivates me to work. Thanks a lot for sharing, as
well as all the commenters showing the different implementations of it.

------
kevining
Link to github.io page for the lazy:
[http://anvaka.github.io/atree/](http://anvaka.github.io/atree/)

------
GeorgeKangas
May I suggest t * sin( k * ln(t) ), for some constant k? That makes the path
self similar about the (0, 0) point. Maybe you'd like that.

------
chippy
Very merry cleverness

------
coverband
Very nice and not complicated at all -- good work!

------
marcosscriven
Really like that - beautiful and elegant.

------
mamadou
Thanks for sharing!

------
thejacenxpress
Nice job

