Hello author here. I'm a little surprised to see this on the front page of Hacker News. This is just a simple demo for my educational programming language Easylang. You can easily edit the code and increase the particle count for example. In the IDE you can then create a link with the code embedded in the URL.
The aim is to offer beginners a simple and interesting entry into programming. IMO there is an unoccupied niche for this between Scratch and Python. In the days of home computer BASIC, it was easier to learn programming - you switched on the computer and with a few lines of BASIC code you could magically create a nice sine wave on the screen. Nowadays, beginners are often overwhelmed by all the complexity.
Are they? I learnt with Scratch from about four then moved to Python when I was about 9 (iirc), and I found the move pretty easy. There isn't much I would change about Python to make it better in that role, and there are plenty of online environments that do a great job of reducing the setup you need. The BASIC experience is now https://projects.raspberrypi.org/en/projects/editor-hello-wo... - are they really so different?
Plus, when you want to move onto slightly more complex projects you can just keep using Python and steadily adding to your knowledge.
E.g. I began with turtle, then something that showed who's in space using requests and an API, then a little chat app with sockets, then a full GUI chat app that pretended to be notepad so I could chat at school. Nowadays, I still sometimes write software in the same language that I first wrote print("Hello, world!") in.
Don't get me wrong, I think it's great that you're making it. I just think that Python is already a great language coming from Scratch.
@design choices: The graphic primitives built into the language - this is not useful for a general purpose language - but in beginner language this is an important motivating factor.
How hard would it be to push this into 3 dimensions instead of 2? It made me think of a starting point for a model of the universe and galaxy interactions.
Nice! On a tangent, I thought this sort of "animated star field" effect had gone out of fashion 5 years ago - I rarely come across a website using it nowadays.
I built a similar thing that includes forces between particles meant to simulate a sort of fluid or, as you scroll down, a gelatinous solid. There’s a bit of free energy injected to keep things moving so it’s actually a very bad fluid sim, but I think that makes it a better interactive toy in exchange.
One of the fun parts of naively n^2 particle simulations is trying to find ways to reduce the algorithmic complexity of collision detection. I remember messing with sweep lines and similar, though I don’t remember what optimizations made it into the final code. [0]
Having a hero background that was a variation of this was really popular about 10 years ago or so. You’ll still find them on plenty of websites built around that time.
It's still extremely common in web site templates for cryptocurrency and AI companies. Sure, it's cliché as all hell, but that doesn't stop people from using it.
Anyone else's brain find this... I guess stressful, rather than relaxing? Something about them connecting but never hanging on, and the bits never all coming together, I think.
It seems to me that it is inevitable: every programmer goes through a phase where they do a bounded billiard ball simulation. It’s like a right of passage.
You mean shorter than `https://tiki.li/run/`? That one only works after the real URL is loaded at least once. The un-shortened URL was huge as it contains the whole app in base64 encoding or some such
I think I learned more about chaos theory by hacking a first person Rössler attractor "rider" into xscreensaver (instead of the usual Lorenz attractor) than by any other thing.
Nice. Have you tried a version where the particles have a small atraction/repulsion? (Bonus points for a bar to choose the force.) (1/r^2? can I choose the exponent?)
I was expecting a +/- charge interaction like this as well, but that was just based on my brain's default interpretation of the word particle in the title with this being HN and all. It took a second for my brain to switch to just a visual fx particle system use of the word.
Nonetheless, my default thoughts do not take away from it being a fun visual to zone out to for a bit
it doesn't have to be 3d though. another idea would be to assign mass values to the particles and see if after an amount of time if everything settles down to some sort of orbital track around each other. but either idea moves it from being a relaxing visual into a bit of sciencey simulator that totally changes to the scope of the project
It shouldn't be that complicated. I tried it once with gravity and without limits on the edges. The cluster of stars moved around in 2d space and stars were repeatedly catapulted out, which then disappeared. Maybe you need a super gravity (black hole) in the center to keep it stable.
From my experiments, you need to flip the velocity if it goes out of bounds, and have a little bit of drag, multiply each vel by 0.9999 each frame.
Otherwise, a few particles being ejected at very high speeds IS realistic... they carry away surplus kinetic energy, which allows the remaining cluster to contract.
And once too much matter has lost too much kinetic energy, it does converge and become a black hole.
The weird thing is that their radius scales proportional with their mass, not volume... so they grow in this weird way where adding a 3 solar mass black to a 3e6 solar mass SMBH causes the SMBH's volume to grow by several, several times the volume taken by the 3e0 BH. It's like black holes force themselves to grow in a straight line internally, but then the entire sphere encompassing that line becomes event horizon, which is probably why there only seems to end up being 1 SMBH per galaxy, they get so big so quickly at the 1e6+ range, that any other BHs drifting around the vicinity get absorbed by the growing EH, which causes the EH to grow more, causing it to absorb more BH... so there's this period where a bunch of relatively tiny, sparse black holes suddenly hit the critical density where the entire region they were all sharing suddenly pops into one huge event horizon that encompasses all the empty space they were sharing previously.
As an aside, I described this to Claude and had it recreate it in javascript with some other features I wanted. It took me 30 seconds to write the prompt and it worked flawlessly.
Will anyone ever write fun things like this again once the machine can do it for you? How will young people ever get interested when the machine can do all the work for you?
I'd love to see the connection line come from both particles and join between them! Ooo and also if they can like start with random colors and slowly as they meet their colors average out
curious what do ppl usually use to make these animations? i’ve used pillow with python in the pass but that only really works with images and seems clunky
https://tiki.li/run/#cod=dVLNbsIwDL7nKT5p0gRDdEGMA9PYM+yO0FT...
reply