Register the mousemove event handler on window, then you will still get the events when the mouse moves out of the window/frame while dragging and it won't be that buggy.
nine_ktoday at 11:26 PM
If I ever end up developing a package / dependency manager, I'll be strongly tempted to call it "jenga".
knowtheorytoday at 12:57 PM
I love that the initial state itself isn't stable.
The world keeps moving around us. Can't choose staying still.
PenguinRevolvertoday at 2:36 PM
I love that clicking the empty space and just doing nothing at all still causes the blocks to fall apart after some time.
andyjohnson0today at 8:14 PM
This is wonderful.
The gravitational constant is maybe a little low for my taste, but I like that I can fling a block vertically up off the top of the frame and it reappears even 5+ seconds later. Things don't get ignored out of existence. Neat.
tempestntoday at 10:45 PM
Accidentally discovered you can quantum tunnel blocks through the weak link to shore it up!
fallingmeattoday at 11:55 AM
oh look at that. removing IBM enterprise apps really doesn’t break anything and the whole stack got lighter. science.
Nevermarktoday at 4:20 PM
As entropy increases, the stack rises.
But then, when trapped in a local maxima prohibiting growth, pressure builds as too many new layers attempt to shim themselves under existing layers, until inevitably the stack collapses somewhere.
Then new layers can restart generating new apex baby layers on a now higher foundation of fertile fragmented but compressed and stable new-legacy rubble. Another point-oh age begins.
And sometimes, the stack just falls apart because.
In between those extinction events, layers that spawn the most layers, and form opportunistic bridges over lateral layers, dominate and thrive.
Occasionally, some layers try to reorder themselves to optimize future growth. Or tunnel down to achieve stronger footing. But like the tower of Hanoi, the more layers involved, the more intractable the replanting and reordering. Meanwhile, other growth routes around them. Yet, many instances of these failed structures can be found in the depths.
zygentomatoday at 9:59 PM
I love that the thing of itself is completely unstable once you click somewhere to start the simulation … :)
jascha_engtoday at 1:11 PM
This is oddly fun to play with. Has that angry birds vibe
LoganDarktoday at 11:12 PM
I noticed that when I drag an object, the force appears to originate from the object's center of mass rather than from my cursor. So it feels a little weird.
aanettoday at 11:44 AM
Too delightful. Like a reverse jenga tower you like to topple over.
Of course, glad to see it was another @isohedral project.
mezodtoday at 12:13 PM
this is the best thing internet since the last best thing in the internet
If you just let the simulation fall apart under its inherent instability, the thanklessly maintained project is often one of the last things to fall. That seems poetically correct.
seydortoday at 2:18 PM
without touching the block, after a while it begins collapsing, which makes it an even better representation of infrastructure
throwawayk7htoday at 5:26 PM
I would add some lerp-smoothing to the position of the cursor/touch, since it's a bit rigid. Click-drag-release often doesn't result in a fling but rather a sharp drop.
Lovely idea by the way.
foltiktoday at 3:57 PM
Very satisfying. I ripped out the load bearing piece and everything stayed standing except for the tiny pieces at the very top. Doesn't seem so bad according to the simulations, maybe we could use a good shakeup?
briansmtoday at 1:14 PM
Just to mention the original was cited in the most recent Veritasium video:
"The Internet Was Weeks Away From Disaster and No One Knew"
Challenge: Rearrange the blocks into a stable configuration without losing any offscreen
louisbourgaulttoday at 12:38 PM
Really cool! To be honest, when I clicked on this I had a hope that it would be possible to add things to the stack like the ongoing memes of just putting different things in there (maybe live with other people as a collaborative editor).
1e1atoday at 12:20 PM
It looks like the stroke/border is not taken into account in the physics simulation.
poolnoodletoday at 8:30 PM
The physics remind me of Little Inferno
snaltytoday at 5:48 PM
This reminds me of one of my favourite flash games, Fantastic Contraption, for some reason.
deletedtoday at 12:29 PM
c_hastingstoday at 5:05 PM
That was a lot of fun actually. I used one block to wreck all the others. Thanks for sharing.
barddootoday at 3:23 PM
Increase friction
bbxtoday at 1:30 PM
I was expecting it to open the FFmpeg website at the end.
We absolutely need a "whatever Microsoft is doing" object in that.
venusenvy47today at 1:42 PM
Is this website intended to break HN on Android? I've never had a website lock up the HN app like this. I couldn't back out, and I was stuck in a loop when the app restarted on the same page.
9devtoday at 2:03 PM
I hope Randall reads HN and sees this, he’d love it.
lwhitoday at 1:06 PM
Who are the big blocks that survive the collapse though?
shadowgovttoday at 8:14 PM
It's adorable. One small criticism: instead of being stored as initial conditions with no internal forces, if the tooling allows for it it should be stored as the "relaxed" state with internal forces. As it stands, the first interaction with it causes the whole model to 'bump' because everything is actually just kinda hovering in space with no physics simulation happening and only the first interaction causes physics calculations to start.
bitwizetoday at 7:18 PM
Ooooh, that's fun to make topple. I kind of want to launch an Angry Bird at it.
inanutshellustoday at 2:00 PM
Feature request - be able to change the text and re-share it.
Half the fun of this xkcd is referring to it in context of whatever just went haywire.
lencastretoday at 5:47 PM
needs angry birds version
or not, it’s great as is BTW
CivBasetoday at 1:58 PM
It'd be really cool (and probably useful) if someone could figure out a way to generate diagrams like this for any software project.
You'd first need to figure out a way to generate a complete dependency tree. For each box, I interpret its height as a measure of its complexity and its width as a measure of the support it receives. The hardest part would probably be figuring out a way to quantitatively measure those values.
palad1ntoday at 1:32 PM
THIS IS THE BEST THING EVAR!
tobylanetoday at 12:29 PM
I'd like a medal for clearing the screen of all debris. What's that you say, some of it is still useful? oh
_nivlac_today at 12:37 PM
Now we just need a generated version of this based on a package.json!