Almost every animation/image there suffers from horrible moiré because a normal browser canvas was not meant for this. Fine line art needs supersampling and high quality filtering.
jakegmaths 2 days ago [-]
I loved tixy when I first discovered it a few years ago so created this https://www.mathsuniverse.com/tixy (with permission from the original author) with puzzles to solve on the tixy grid. I use it with my computer science students who get really into it.
I was blown away by the little functions at first and I too made a clone to experiment with calculang [1].
I added an evaluation feature (F9) so you can select sub-expressions and see what they do, which was helpful to figure out some patterns (video in [2])
Why isn't "(sin(i) * (x > 7)) - (i == 5) + (i == 20) + 0.5 * (i == 32)" a solution to puzzle 36?
acomjean 2 days ago [-]
Fun. Thanks!
Works well on phone. The phone keyboard is a bit clumsy but it works (that’s a phone issue)
soegaard 2 days ago [-]
Well done!
chrisjj 2 days ago [-]
> In computer graphics, the origin (0, 0) is top-left rather than bottom-left
Umm...
LocalH 2 days ago [-]
What's wrong with that statement? It has historically and traditionally been true for raster displays, even if there do exist ways to use standard Cartesian-style coordinates with a computer.
taneq 16 hours ago [-]
There top left has usually been (0, 0) for hardware pixel coordinates (although even then there’s plenty of exceptions, e.g. mode 13h scrolling) but as a blanket statement about computer graphics in general it’s misleading.
levzzz 13 hours ago [-]
[dead]
jakegmaths 2 days ago [-]
I'm struggling to see the problem with this statement, other than maybe to add in the word "usually". My students will know of graphs in maths where the origin is always bottom left. When working with HTML canvas and every other computer graphics situation I've worked in, it's top left instead.
ForOldHack 2 days ago [-]
"PostScript uses a coordinate system where the origin is at the bottom-left corner of the page, with the x-axis increasing to the right and the y-axis increasing upwards."
Oscilloscopes use middle-left.
Unreal engine and SketchUp use Screen middle with xy increasing to the right.
in AutoCAD, the user coordinate system is 1/3 of the screen to the left for the origin, with X increasing to the right, and Y increasing upwards.
Almost all raster displays, and memory based programs assume top left, because that is how it was done first - counter intuitive.
Lerc 2 days ago [-]
It it not counter intuitive and the decision extends far earlier than the first displays.
A raster image onscreen is displayed in the order that the data appears when written down. It stands to reason that a data depiction should be in the same orientation as the display orientation. Displays were created by people who read from left to right, top to bottom. If the displays did not follow that order. images would be flipped or rotated when displayed in a data form.
The first pixel written to the display is in the top left because we read from the top left. If writers of another language had have popularised the text, perhaps things might have been different.
Timwi 1 days ago [-]
Why does the BMP file format store the image upside-down though?
It draws a slightly tilted sine wave gradient (i=16y+x so atan(1/16) ≈ 3.6°) whose frequency increases until it starts to alias due ro the limited resolution (cf. Nyquist sampling theorem) and exhibit what’s essentially the wagon wheel effect [1]. Nice illustration of signal processing fundamentals!
Cool! I can see it being usable as a spinner as well.
How did you come up with these magic numbers?
relaxing 2 days ago [-]
A lot of these tricks I first learned from Noah Spurrier’s acidwarp.exe VGA demos in the 90s.
Now I’m wondering who first published these trig function pixel paint tricks. Somewhere between HAKMEM munching squares and the 80s demoscene?
nopakos 2 days ago [-]
That's fantastic!
I would love something like this in my living room. Especially if it is not just a screen. Maybe a grid of 256 screens? Or inflating balloons? Something easier to make? Just on/off big pixels?
Wow this is extremely well done! All the defaults are chosen so well to make simple inputs get pretty results. The interpretation of the result value, the scale of `t`, the colors, it's all not trivial at all to get right! Hats off
Is there a pattern or animation you can manually animate on those dots that can’t be represented by an equation?
echoangle 18 hours ago [-]
If the animation is finite in time and with finite time steps and sample points, I think no. Because you can fit a polygon through any set of points if the polygon has enough dimensions.
ur-whale 9 hours ago [-]
Why is the "=>" going in the wrong direction ?
tgv 2 days ago [-]
I’m considering that as a load screen animation. Bunch of different functions, and the user will be entertained.
nicman23 10 hours ago [-]
is this just shaders but not?
spencerflem 2 days ago [-]
this is beautiful. i love it so much :)
chrisjj 2 days ago [-]
> // hit "enter" to save in URL
There's no enter on Android Chrome on phone.
dtagames 2 days ago [-]
The enter key on the phone keyboard works if you tap that message.
yusina 1 days ago [-]
Isn't i == x + 16*y? Why is it needed?
stefanfisk 1 days ago [-]
To make the code cleaner I’d assume.
yusina 21 hours ago [-]
I got the impression though that i is the least useful of the bunch.
GenshoTikamura 2 days ago [-]
Would be cool to implement this physically as an array of iris diaphragms
https://muffinman.io/pulsar/
I wanted to create animations for my LED matrix screen, and I couldn’t find tixy anywhere. Only after I built pulsar I found it again.
Another similar project is https://sliderland.blinry.org/ which uses HTML sliders.
Fun stuff!
https://tixy.land/?code=y%3C7%26%26%28x%2Bsin%28y%29%3C6.4%2...
edit: much better with a negation :)
Almost every animation/image there suffers from horrible moiré because a normal browser canvas was not meant for this. Fine line art needs supersampling and high quality filtering.
I was blown away by the little functions at first and I too made a clone to experiment with calculang [1].
I added an evaluation feature (F9) so you can select sub-expressions and see what they do, which was helpful to figure out some patterns (video in [2])
[1] https://calculang-editables.netlify.app/tixyish
[2] https://www.youtube.com/watch?v=uXUd_-xrycs
Works well on phone. The phone keyboard is a bit clumsy but it works (that’s a phone issue)
Umm...
Oscilloscopes use middle-left.
Unreal engine and SketchUp use Screen middle with xy increasing to the right.
in AutoCAD, the user coordinate system is 1/3 of the screen to the left for the origin, with X increasing to the right, and Y increasing upwards.
Almost all raster displays, and memory based programs assume top left, because that is how it was done first - counter intuitive.
A raster image onscreen is displayed in the order that the data appears when written down. It stands to reason that a data depiction should be in the same orientation as the display orientation. Displays were created by people who read from left to right, top to bottom. If the displays did not follow that order. images would be flipped or rotated when displayed in a data form.
The first pixel written to the display is in the top left because we read from the top left. If writers of another language had have popularised the text, perhaps things might have been different.
Why are device-independent bitmaps upside down? Raymond Chen https://devblogs.microsoft.com/oldnewthing/20210525-00/?p=10...
I think you had to wait for WinG or maybe even DirectX to get normal 1:1 mapping.
OpenGL is so old it had same stupid ideas about coordinates.
White blood cells attack: https://tixy.land/?code=sin%28x%2Bt%29%2Fcos%28y%2Bi%29%2Bco...
X Plus Star https://tixy.land/?code=%28sin%28t*0.8*-sqrt%28%28x-7.5%29**...
Sin Sin https://tixy.land/?code=sin%28sin%28i*sin%28t%2F10%29%29%29
Traffic https://tixy.land/?code=sin%28i*i*t*0.0005%29
https://tixy.land/?code=Math.sin%28y%2F8%2By%3C9%26%26Math.a...
https://fig.sonnet.io
It’s pretty fun because the shape dynamics are time, and not pressure/tilt based, so you need to draw in a rhythm.
Here’s how they work and how they’re implemented:
https://untested.sonnet.io/notes/fig-tree-brushes/
https://tixy.land/?code=sin%28t%29*%281%2Bx%2By%29-x
a radar
https://c50.fingswotidun.com/show/?code=28*ddx*%24%3Ay*%243o...*
Quite a fun challenge.
The Suffix is 2<02->P8dus:vs
which is
https://aem1k.com/world/
https://aem1k.com/qlock/
https://tixy.land/?code=(y%2Fi*y%2Fsin(x%2Bt))*max(cos(t)%2C...
https://tixy.land/?code=sin%28i%2Bt%29
[1] https://en.m.wikipedia.org/wiki/Wagon-wheel_effect
https://tixy.land/?code=Math.sin%28t+%2B+Math.atan2%28y+-+7....
'Vanishing Curve'
Tixy.land - https://news.ycombinator.com/item?id=36646163 - July 2023 (2 comments)
Minimal 16x16 Dots Coding Environment - https://news.ycombinator.com/item?id=24974534 - Nov 2020 (37 comments)
Learned by scrolling far enough right in view source: The last line is editable and eval'd.
Request to author: keep the newlines.
Right. https://tixy.land/?code=alert(%22foo%22)
Now I’m wondering who first published these trig function pixel paint tricks. Somewhere between HAKMEM munching squares and the 80s demoscene?
I would love something like this in my living room. Especially if it is not just a screen. Maybe a grid of 256 screens? Or inflating balloons? Something easier to make? Just on/off big pixels?
https://tixy.land/?code=sin%28t*x%29%2Bi%2F256
Strobe warning, especially after about 20 seconds.
(sin(t) * sin(t) + 0.2) * (sin(y / (cos(t) * cos(t) + 0.7)) + sin(x))
https://tixy.land/?code=floor(t%256)%20%3D%3D%3D%200%20%3F%0...
There's no enter on Android Chrome on phone.
candy lasers redux: https://tixy.land/?code=0.2%2Bsin%28i*t%2F64%29%2B.3*sin%288...
https://tixy.land/?code=Math.sin%28x*t%29%2BMath.cos%28y*t%2...