2916: Machine

Explain xkcd: It's 'cause you're dumb.
(Redirected from 2916)
Jump to: navigation, search
The Credible Machine
Title text: The Credible Machine


Ambox notice.png This explanation may be incomplete or incorrect: Created by a THE BOUNCING BALLS IN THE MACHINE. Do NOT delete this tag too soon.
If you can address this issue, please edit the page! Thanks.

This interactive game is the 14th April fools' comic released by Randall. The previous April fools' comic was 2765: Escape Speed from 2023, which was released on Wednesday, April 19, 2023. "Machine" has been updated multiple times in the weeks following its release, adding the following features:

  • the trophy and shot glass props
  • the cat, which swats balls in front of it
  • the inanimate kitten and bun decorations
  • a system of links, which encodes the XY coordinates of the currently viewed cell, and the time (i.e. the entire machine's state after a certain moderation action)
  • a button to follow a nearby ball as it traverses through the machine, also preventing it from despawning

As referenced in the title text, this game is a spiritual successor to the 1990s and early 2000s PC puzzle game series The Incredible Machine, a game Randall played as a kid. Both games have several objects in common:

  • fan
  • cat
  • ramps
  • balls of varying densities

The comic starts in a main screen where the user can create a Rube Goldberg machine in a "Cell" where the goal is to route a constant stream of colored balls from inputs on the ceiling or walls to outputs of matching colors on the walls or floor. After the comic is first opened a window pops up over the machine where Cueball in a lab coat tells you to route the balls from the inputs to the outputs. A button opens a “tool panel” where there are large and small boards available for use, as well as some gimmicky stuff like prisms (which deflect marbles) and fans (which blow marbles around), plus decorative elements which have no effect on the balls.

Typically, inputs and outputs only accept balls of a single color. However, some outputs accept multiple colors, indicated by a double arrow, and some inputs produce multiple colors. When the player is designing their 'machine', this will involve multiple full streams merged into one (supplied by a double-exit on the adjacent submission). Machines now working in the full grid may, however, find that their sources now contain stray balls of other types that were not handled properly, but there is no way to force a re-edit of the machine to alter its behavior to account for this.

If any balls are left in your cell for more than 30 seconds, they fade away. The first time a ball fades away another popup informs you that the balls are removed for security reasons. An indicator next to each exit increases for each ball of the correct color that passes through an exit, and reduces when no balls pass through, or if balls of the wrong color pass through it. While that exit is not properly supplied it displays a red cross, which changes to a green tick when a sufficient, and sufficiently clean, stream of balls is supplied. The first time you have built a machine which succeeds in routing enough balls of the correct color to all relevant outputs, a popup will prompt you to submit your cell to be added to the public machine. (Subsequently, the submit button will quietly change from 'inactive' (pale) to clickable (dark). This will change back again if any ball transfers dip back below the required threshold for any reason, such as further editing or an end to a 'fluke' glut of accumulated balls.)

Choosing to submit your cell will give you a textbox to give this cell a name. Proceeding through that, you will now see your cell within the 'grid' and a 'live' feed of balls from any relevant neighboring cells (which may be more sporadic then the feed you designed your cell with, and contain stray balls of different types). If any supplying-neighbors are still marked as "under construction", they may provide the balls as if perfectly routed from their own (eventual) source, but will eventually dry up. If your newly submitted creation is placed in the lowest row of cells, balls will be dispensed through the exit at the bottom, but there will be no launcher to propel them towards the pit, and they will vanish as they leave the exit.

Upon reopening the link to this comic without coordinate and time parameters, your recently created machine will most likely not be visible in the space you built it in. Reddit user xzaphenia has claimed on r/xkcd that this is because there is a moderation team (of which they are a member) and that the main page only shows public, approved machines. This team of people, including those credited as co-creators of this comic, select machines according to their preferences (and little to no formal criteria besides coolness, innovativeness, effectiveness, and privacy concerns). Given the number of 'bottom-layer' cells that are likely primed ready to be completed (e.g. the grid-width of twelve, perhaps staggered across adjacent rows) and the many possible worldwide contributors at any one time, it may be that the chances of being picked for permanence is low; and certainly would have been lower early on in the comic's existence during the initial frantic rush to participate. It is also claimed that at some point, moderation will be cut off and the machine will be considered "complete".

The button in the bottom right corner allows you to toggle between editing your own machine and a page where you can drag around to view all of the machines that have been submitted and accepted, with a title for each in the upper left corner. In this view you can see that all of the outputs are also inputs for another cell, except for the top row where the inputs come from off screen and the lowest row which output through a launcher of some kind to a set of four colored-coded containers far below. Any empty cells are marked off by yellow tape with the words "UNDER CONSTRUCTION" as well as "DJIA ↑ 31415" once in each cell. "DJIA" stands for the Dow Jones Industrial Average, with "DJIA ↑ 31415" indicating that it rose to 31415 points, 31415 being the first five digits of pi, without the period. This would often be displayed on a yellow 'ticker', which might look superficially similar to the yellow barrier tape.

When viewing the whole machine, a button in the bottom left corner, added later, allows you to follow the path of the nearest ball as it passes from cell to cell. This will also make the ball you are following immortal - not subject to the 30s timeout rule. However, it will stop following at the bottom of the base machine -- it will not follow into the bottom holding containers, nor keep it immortal once down there. Another later addition was a button in the top left corner which copies a URL that will take you directly to the current cell that you are viewing. However, the link that is created will always show you the version of the machine at the time that you were viewing it, without any subsequent additions.

Whenever balls reach the bottom of the grid, they are directed towards four containers, one of each color. Most balls are accurately sent to their appropriate container, though there are some misfires. These containers are above a pit, and dump their contents every 11.5 seconds. Balls in the pit are subject to a 97 (approx) second culling rule (including time spent in the holding containers), unlike the balls in the cells above. If no balls are directed towards the containers, the pit will be empty. If at least one stream of balls is making it, Cueball and Megan sit in a small boat named the USS Buoyancy, and when sufficient balls are being deposited, the boat begins to float and move. Balls that miss or overspill the pit fall out of the bottom of the frame.

Under construction cells will feed balls of the appropriate color into neighboring cells so long as you are not looking at them. Once you scroll to look at them, the supply of balls stops and subsequent cells in the chain will not receive any; scroll away from them again and the supply will resume.

The grid is 12 cells wide, and grows in height. The largest size observed so far is 12x128, for a total of 1536 cells. The machine's height is determined by the lowest cell; this can be either your submitted cell, or a cell created by another user.

Imperfections in the machines (whether accidental or by design) and the impossibility of entirely avoiding collisions when crossing streams inevitably lead to significant levels of losses and pollution with the wrong color balls. Indeed, using the follow ball function appears to demonstrate that it is quite rare for a ball to survive more than several machines without getting stuck somewhere. This should mean that effectively no balls would reach the lower layers. This implies that there is some 'creative accounting' going on to ensure that cells lower in the grid still have balls to process - simulating flow only for a few nearby cells, while assuming that those cells themselves have pure, steady inputs.

There is a hard limit of 100 items (both physically interactive and purely decorative) that can be placed in any given arena. If you have placed 75 items, a count will appear in the component bar of your piece-count ("##/100"), which will go away again if you delete items to bring it below this count. The count text turns red at "100/100", at which point no more items can be added, only existing ones moved (or removed, to lower the count again).

Toolbox items[edit]

List of objects
Description Effect Image
Plank Static obstacle 2916 plank.png
Hammer Static obstacle 2916 hammer.png
Sword Static obstacle 2916 sword.png
Hinged scoop Rotates around its hinge, tries to stay horizontal with a springy effect 2916 scoop.png
2916 scoop mirrored.png
Anvil Static obstacle 2916 anvil.png
Brick Static obstacle 2916 brick.png
Fan Blows away balls in front of it. Different colors are affected by differing amounts (yellow balls are lightest, and can be levitated above an upward-facing fan). 2916 fan.png
Pillow Balls will not bounce if they hit it 2916 pillow.png
Bumper Bounces balls away at significantly higher speed 2916 round bumper.png 2916 bumper left.png 2916 bumper right.png
Attractor/Black Hole* Pulls balls toward center 2916 attractor.png
Repulsor/White hole* Repels balls away from center 2916 repulsor.png
Prism "Refracts" and internally-reflects balls as they otherwise pass through the object, the color of the ball may cause them to react (as much as possible) according to the respective color across the element. 2916 prism.png
Wheel Spins, deflects balls, can jam with enough resistance (e.g. glut of balls or against other elements). 2916 wheel.png
"Good job" trophy Static obstacle 2916 trophy.png
Glass cup Static obstacle. Container, with a nominal capacity of up to four balls (in whole or in part) within it. 2916 cup.png
Cat Swats away balls in front of itself (was added later) 2916 cat new.png
Non-physical items
Right-facing Ponytail, with raised arms Intangible decoration 2916 ponytail arms.png
Right-facing Ponytail, standing Intangible decoration 2916 ponytail.png
Left-facing Cueball, with raised arms Intangible decoration 2916 cueball arms.png
Left-facing White Hat, standing Intangible decoration 2916 whitehat.png
Rightwards-facing Knit Cap, in an 'action' pose Intangible decoration 2916 knitcap resting.png
Right-facing Knit Cap, standing Intangible decoration 2916 knitcap.png
Helmet-wearing figure, standing Intangible decoration 2916 helmet.png
Squirrel Intangible decoration 2916 squirrel.png
"Probably Deterministic" sign Intangible decoration 2916 deterministic.png
Bun Intangible decoration 2916 rabbit.png
Cat Intangible decoration 2916 cat.png
* — The Attractor and Repulsor are omnidirectional, but the area of effect can be resized to extend or restrict its influence. You do this by way of its bounding box with corner and mid-edged 'drag nodes' and a circular area that shows the current extent, which are only visible when the element is actively selected. This resize can be no larger than will make the box/circle touch the edges, no smaller than the fixed graphic and will always be identically proportioned in both axes.
† — The hinged scoops are strictly horizontal, on building. They will rotate away from and (spring back to) horizontal according to interactions with balls or other non-decorative items that may be placed to disturb their balance, sometimes with further interesting interactions (that may or may not be intentional or useful). There are two selectable versions of this item. (The only other object class with a clear (and practical) asymmetry, for which a mirrored chirality can be chosen from the sidebar, are the two versions of triangular "Bonk"-bumpers.)
‡ — The wheel is an actively rotating element that starts off, by default, spinning anticlockwise. Pressing or tapping left/right arrow keys, when a placed wheel is selected, will adjust that wheel's rotation rate to be more/less anticlockwise. Adjusting it beyond zero rotation allows you to make it spin in the opposite direction.
Rotation can be increased well beyond the point at which the wagon-wheel effect occurs, which may make it difficult to work out the spin direction of an overspeed wheel element (and thus which arrow keys will slow or speed up its rotation, if you have forgotten), though observing its impact upon any balls that strike it should make its current spin-direction obvious.
The 'bounding editing box' will usually appear rotated, possibly according to the spinning graphic's current orientation upon selection, but remains at that (often non-orthagonal) angle even as the wheel spins (if it can) during this period of selection for editing.

All other items can be manually re-angled by a 'loop node' arm extending from the bounding box. If you cannot see the 'angle node' for such a selected item, which is normally at the top of any freshly placed item but follows any re-angling that may have already applied, it could be that you have placed the item too close to the edge in which direction the node extends. To rotate it, move the object away from the edge to access the construction node (after which, you can drag the object back if required – but see below).

Rotation may be limited by the minimum bounding box that is the 'selection box', this is not necessarily the more flush convex hull of the collision-map built into the graphic. Should a corner of the bounding box need to move across the edge of the build-area, it will do nothing more than touch the edge until there is sufficient angle-drag to snap it to the angle from which that corner now comes back away from the edge; or, when it has a long straight edge currently flush with the edge boundary, it may snap to exactly 180°, in rotation, whereupon the opposite long straight edge is flush to the construction area edge. All objects that are drag-moved, similarly, cannot be moved any further than their current bounding box touching the construction-area edging. The bounding box for the rotating wheel is a notable exception to this, being not under any direct angle-control by the player. Instead, it seems to use the bounding inscribed circle that defines the wheel edge iteslf.

Apart from some interactions between the hinged scoops and any element (including other hinged scoops), there is no preventative 'collision detection' between objects during user-placement, which may overlap/cover each other (the most recently spawned item graphically overlays any earlier one). The wheel object will only spin if not constrained by other physical elements (including the spokes of an adjacent wheel, not in counter-rotation) but can still be dragged and placed anywhere within the boundary of the construction area.

The continuous stream(s) of balls respect all tangible objects, which includes any currently being dragged/rotated, though may prematurely vanish if forced between two items moved to touch/overlap each other. It is possible to to indirectly nudge balls by carefully moving a tangible object's surface into them (or holding them within it, e.g. the "cup"). This may be useful for rescuing temporarily stray balls (before they time-out anyway), unjamming an area with a construction-induced glut or for testing a ball-path that is not currently being fed 'naturally'. Doing so can then conceivably fulfil all the exit-gate requirements (temporarily), as it might also transiently spoil some required routing, but the manual intervention will not be possible once a 'machine' has been submit.

Non-player items[edit]

Ball containers at the bottom of the machine

2916 container red.png
2916 container yellow.png
2916 container blue.png
2916 container green.png

Cueball and Megan in the USS Buoyancy


Pit below the USS Buoyancy (not to scale)

2916 pit bottom.png

Color routing[edit]

The different ball colors have different physical properties. Red balls are more bouncy than other balls, green balls are heavier, and yellow balls are lighter and slightly bouncy. The following values were extracted from the code:

Color Mass Density Restitution (bounciness) Linear damping (drag)
Blue 0.08 1 0 0
Red 0.08 1 0.8 0
Green 0.75 9.325 0 0
Yellow 0.024 0.3 0.6 2

Balls also have spin, but it is subtle and hard to see because the balls have no visible texture.It can be seen, with effort, using green balls (which are heaviest). Rolling down a slope (say, two boards), green balls accumulate spin in the direction they are rolling. Let them drop off the end and then bounce off a brick such that they travel upward, but with very little sideways motion. Then "catch" the balls with a brick just past their apex, when they are moving slowly. If the ball lands on a horizontal brick, it can be seen that the ball will suddenly accelerate left or right based on the spin.

For certain combinations of inlet and outlet 'gates', it is necessary to 'cross the streams'. e.g. to direct righthand-entry balls to a lefthand-exit and vice-versa. It is possible to just construct the field to send two (or more!) sets of balls to fly across a common gap, to land on an appropriate reception area that leads to the chosen exit. But, though this is not completely inadvised, the timing of the balls cannot be guaranteed to be in sync (or, rather, anti-sync) with each other and collisions will occur, especially under the variations of delivery that might significantly alter the ballistic path across the gap. Even if the trial machine works, in isolation with a steady stream of all balls entering the field of play, once submitted it will inevitably be fed by a more chaotically-routed preceeding construction.

In order to maintain sufficient correct arrivals at exits, it may be necessary to add a method of filtering the hues.

This could just mean introducing a 'wrong hue trap' beyond any crossing point(s) that send the occasionally wrong ball back to the cross point (or let them time-out in a dead-end, relying upon few enough failures from the rest of the balls, along with all colliding balls that subsequently missed any chance of reaching an exit). Alternatively, two (or more) feeds of marbles could be fed through a deliberate 'sorter' that does a sufficiently reasonable job of separating the combined sets out towards their intended target-exits.

The various physical qualities of the balls suggest a number of methods for redirecting separate hues to separate onward journeys. This can be done by isolating a hue from every other hue, then passing on (if necessary) to a setup extracting a different one from the remainder, and perhaps also a third time. It may also be possible to merge 'arrangements' of sorting mechanics to efficiently distribute straight into three or even four onward tracks towards the desired outputs, but that is left as an exercise to the reader.

To separate Blue Green Yellow Red
Red Use 'bounce'

The sole difference is how much balls will rebound from objects. Well managed and constrained ricochets should allow a sorting action.

Use mass or 'bounce'

Green balls cannot be levitated by a vertical fan. An incline across any such fan(s) will levitate only non-Greens.
Green, like Blue, rebounds differently to Red. Green balls are also affected by black holes much less than all other balls.

See Y/B n/a
Yellow All methods

Yellow, alone, exhibits high drag against any unforced motion.
It is also unique in all other ways; e.g. can be levitated highest, against all other hues (though most profoundly against Green).

See Y/B n/a See Y/B
Green Use mass

Green balls cannot be levitated by a vertical fan.
There is also a not so marginal difference in density that might be exploited, such as by using black holes, which only minimally effects Green (perhaps showing an effective difference between mass of attraction and mass of inertia).

n/a See Y/B See R/G
Blue n/a See G/B See Y/B See R/B

Even when not strictly necessary for one's own submission, once submitted into the full playing grid the player's own contribution may find itself working with less 'pure' delivered ball-streams (from an imperfectly separating feed-in contribution). It is possible that this more interactive disruption can make the new setup behave erratically or even entirely incorrectly.

It might be thought good practice (but not necessary) to deliberately combine any or all inputs and do a full job of splitting them again, just in anticipation of possibly having to deal with such cross-contamination and being able to 'clean up' the onward stream(s) for the benefit of others. This would of course be particularly difficult if the isolated building-phase does not provide all four hues to 'test' against, so any speculatively added filtering would have to be added 'blind' (and only on the offchance that any anticipated incorrect balls will actually enter the arena) and without any legitimate exits to which such rejects could be shunted (therefore could accumulate, up until any 'time out' that might apply to any ball once operational as part of the combined grid).

Single-input/single-output designs might not particularly require any sorting mechanism, in theory, though the unexpected 'contamination' of the system with balls of different masses/etc could perhaps introduce malfunctioning passage from the added chaos it might succumb to.


Ambox notice.png This transcript is incomplete. Please help editing it! Thanks.
[The placeholder image shows four balls, colored red, green, yellow and blue, bouncing on top of three white blocks. Text in the center: "[visit xkcd.com to view]"]
[In the game, colored balls fall out of rotating half-gears from the wall and/or ceiling while an opposite set of half-gears rotate with a colored triangle pointing to that set of gears. There is a button that says "view machine" button in the bottom right corner. When clicked, it takes you to a larger grid of others' machines that you can view in a larger grid. The button with a wrench is a menu that gives you tools to move the balls to the set of gears with the corresponding triangle.
[Cueball with lab coat, intro popup]
Cueball: Balls falling into your cell should be routed to the outputs at a steady rate.
[Cueball with lab coat, warning popup]
Cueball: For security reasons, balls that remain in your device for more than 30 seconds will be removed and destroyed.
[Cueball with lab coat, submit popup]
Cueball: Congratulations! Your contraption has passed all tests. Press [submit button] to submit it to be added to the machine!


Once again an April Fool's Day Comic came out late, as Randall did not release this on April 1st, even though April 1st did fall on a Monday, a normal release day. It first came four days later with the Friday release on April 5th. That this is to be considered an April fools' comic, in spite of the later release, was confirmed on the xkcd Facebook page.

  • Randall acknowledges the people who helped him create this comic in a comic-specific header text.
    • With 11 different involved apart from Randall this is by far the comic with most people involved.
  • Some hidden keyboard shortcuts have been found:
    • Follow balls: Ctrl + Alt/Option + B (now also accessible by using the button provided)
    • Show debug overlay: Ctrl + Shift + Win/Cmd + D
      • This may particularly clash with browser functionality, e.g. Firefox's "New Bookmarks" dialogue which will need closing, though still activating the overlay graphics.
    • Delete selected item: Delete (Fn + Delete on Mac)
  • When Randall posted a link to this comic on his Facebook feed, he directly wrote that it was a late April Fools' Day!
    • Happy Belated April Fool's Day!
    • This thus ends any discussion of whether this should be seen as an April Fool's comic or not.
    • It just came out 4 days late. This has also happened several times since Garden.

2916 Machine Facebook April fools' confirmation.png

comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!


rather late for an april fools comic innit? also there doesn't seem to be anything exciting in this one lol, none of the usual cool exploration easter eggs, as far as i could tell at least 16:41, 6 April 2024 (UTC)Erfaniom

Randall posted an eclipse comic on Apr. 1. All April Fools comics are interactive. Z1mp0st0rz (talk) 15:27, 10 April 2024 (UTC)
We're exploring crowdsourced human creativity here, in a way, so it can be a lot more interesting then Randall's exploration comics, at least for me, because i did take two years of GCSE psychology and enjoyed it.
looks like the egg's on my face lmao, i think i was among the first people to make anything, so everywhere was under construction for me, i didn't even understand that it was like a crowd thing 14:19, 9 April 2024 (UTC)Erfaniom

Just popped over using Chrome on Android and all I see is four "missing picture" logos spinning around, plus another down the bottom right... 18:13, 6 April 2024 (UTC)

Okay, followup: it behaves quite differently on the non mobile site. You get two entry points with red balls and yellow balls and you need to place the various gizmos to direct the balls to the correct exit point. Once enough have correctly passed to turn the red X into a green tick, you have the option to submit. If you do, once you have named your design it will be added to the grid with other submissions all of which exist to push red and yellow balls around. (if you come across "Memories of Ragnarok", that's mine)

Mine are "Balancing Act" and "100% Success Rate" 21:11, 15 April 2024 (UTC) 18:27, 6 April 2024 (UTC)

The number of inputs appears to vary between 1 and 4, each of a different color, with one color-coded output for each. Claire Kholin (talk) 18:49, 6 April 2024 (UTC)

On the "machine" section, you see lots of "under construction cells". Perhaps this will develop as more are submitted. I notice the "under construction tape" has "DJIA" and "31415", perhaps a reference to "dow jones industrial average" and the first five digits of pi. Zeimusu (talk) 18:37, 6 April 2024 (UTC)

Whenever someone submits a cell, it fills in one of the under construction cells. Claire Kholin (talk) 18:49, 6 April 2024 (UTC)

[Robert'); DROP TABLE Student!:;--] i just got a machine with 3 outputs one yellow another red and a third blue AND green and 3 inputs one green one blue and one red blue and yellow https://xkcd.com/2916/#xt=7&yt=50 hope its still there (talk) 18:01, 9 April 2024 (please sign your comments with ~~~~)

I think I just 'did' one with a Red+Yellow source (also separate singular Blue and Green) and a combined Blue+Green sink (and separate Yellow and Red). Got it working well, actually using fan-levitation to separate the R+Y enough to route them to their destinations, the Y then having to cross the occasional flying Green (which I was forced to "Bonk" and bounce up, entry being nearly at the bottom on right, exit being nearly at top on left) for its exit, everything else fairly simple. No idea if it got integrated, of course. Never seen any of my machines be accepted (when I later look around at what's there), so I'm still unsure if there's anything I can do to increase my chance of a successful square being made permanent on the grid.... 20:58, 9 April 2024 (UTC)
...still had it sitting there on my browser, though note that the Red+Yellow supply (mid-left) and the Green supply (right) aren't working here, through the "move the screen around, lose the feeds from 'Under Construction' squares" issue, or similar. But still I managed to submit it. The occasional Yellow and Red are falling from the Blue entrance in the top (I've not done anything special to filter those out/send them to a more proper exit, and it's too late to do so now anyway, it was just a Blue entry during the development process, of course).
It's a pity you can't see it working, but I quite like my Yellow/Red separation. This might be the only time you see it in place, though, so a shame I didn't take a screenshot immedediately after submitting it. 21:30, 9 April 2024 (UTC)
I encountered a puzzle with five distinct pairs of in/out (none combined): Two blue, two red, one yellow. It was difficult! AFAIK five pairs is the highest reported so far. When I submitted the solution to the Machine, it had Under Construction above and to each side, and (IIRC) empty below, and no balls were provided, alas. 03:46, 12 April 2024 (UTC)

I wanted to add an image for each object, but do not have the necessary access, can someone who has access add the images that I linked in the table so they can be included? Claire Kholin (talk) 18:49, 6 April 2024 (UTC)

I found a discussion with some guy talking about the API at https://euphoria.leet.nu/room/xkcd/ ; this could be useful for the wiki.

[c+1] now time to try fucking with the api [c+1] https://incredible.xkcd.com/

 [userwithnoaccount] 404

[c+1] it seems there are numbered machines under incredible.xkcd.com/machine/x

 [c+1] returns a grid of individual machinlets
 [c+1] which are uids like 3a7af27c-5389-5dcb-b660-3feab6be2ceb
 [c+1] they're stored at urls like incredible.xkcd.com/folio/3a7af27c-5389-5dcb-b660-3feab6be2ceb
 [c+1] there appear to be 33 machines total
 [c+1] the json it returns seems to refer to these as "versions"
 [c+1] $ curl -s https://incredible.xkcd.com/machine/21 | jq ".version"
 [c+1] there is a machine/0, but it's all null
 [c+1] going to https://incredible.xkcd.com/machine/current redirects to the current machine
   [c+1] $ curl -sL https://incredible.xkcd.com/machine/current | jq ".version"

[c+1] wait, is that the *total* number of mahcines? [c+1] i would've thought there'd be more [c+1] this whole think is rather esoteric [c+1] Written in rust, too: https://rapier.rs/ [c+1] Uh oh.

 [c+1] HMMM
 [c+1] it seems there is no limit
 [c+1] i've uploaded a ~50M title

With this I was able to make a script that visualizes paths of the balls. I was hoping that there would be an interesting pattern somewhere but it appears to be mostly random (https://i.imgur.com/ZvLlucU.png) -- 17:12, 12 April 2024 (UTC)

Had quite a lot of fun, added a few 'successful' machines to the grid. Noted that whenever I try to use the Prism that (after a short delay) the comic-pane blanks and I need to refresh the page/get a completely new 'challenge' to start from scratch, so I'm just not using the prism at all (used most of the other items, in combination or 'just the one across the whole board', whichever seems most fun). But it doesn't seem to do what I'd like it to do, which is sort multiple colours from the same inflow into different outflow directions. Which would be very useful in a 'crossroads' situation, the general solution of directing them cross-path being too prone to random collisions. Also might be useful in the 'submitted machine grid', as I note that errors propagate, whereas adding a filter on all inputs would clean out (dispose of/send off to a valid gate?) the rogue balls. Anyway, gonna have to come back to this later when there's more time... Maybe then I'll even have something useful to add to the Explanation. 19:03, 6 April 2024 (UTC)

The balls appear to be different weights. I just saw a machine that used fans to separate yellows from greens and blues in a sort of 'wheat from the chaff' manner to direct them to their correct outputs. I wonder what other hidden tricks are included. 19:40, 6 April 2024 (UTC)

They're not all accepted, though it makes you think they are. Or something else more complex is going on we haven't realized yet. I made a machine that was working reliably, submitted it, and saw it on the overall grid. Reloading from a different browser I found the same location of the machine, with the same surroundings, but my machine had been replaced. It's nowhere else on the grid either. The first browser still shows it (but not after a reload with a cache clear). I'm not sure if there's some kind of "save" event that needs to happen beyond seeing your machine in the broader one, or if all user collaboration is an illusion, or if the system changes its mind about us somehow.

Yeah, i've been seeing this too. Please tell me if you find any of my machines, images at https://i.hypercone.us/?v=22d562 , https://i.hypercone.us/?v=ad8e3a , and https://i.hypercone.us/?v=8d4d6a . I want to be one of the few to have added Catalan and Spanish to the grid. 20:56, 6 April 2024 (UTC)

I've added some more observations to the page. Also, a guess which is too uncertain to put on the main page: The ball launcher for the yellows on the far left side misses a lot, and the yellow container isn't the one on the left. So I think the whole machine with crossing streams will result in the colors being sorted in their container order, and possibly have the streams combined and deposited at the bottom just above the containers. -- 21:07, 6 April 2024 (UTC)

has anyone seen the boat at the very bottom? Mushrooms (talk) 21:21, 6 April 2024 (UTC)

trying to see it on Firefox for Ubuntu and it just tells me to "visit xkcd.com to view" - THAT'S WHERE I AM?! Tried clearing website data (but not my entire cache) and that didn't help. Is there something I'm missing?

Oooh, just had one with four ball-entries (four colours) and three exits (one caters for two arrows). Pity it's rather complicated to get entries to exits (even if I can merge two of the streams). Might have to give up on it, but I'd like to have seen how it fits in with the 'submited grid'. i.e. someone else gets a two-colour introduction spot. 22:37, 6 April 2024 (UTC)

Me again. I'm just refreshing the page, looking at the pattern of entries/exits (just a dozen or so screens in, getting some repeats of pattern, indicating that it's going back to tiles it was suggesting before, probably depends on how many others are contributing and extending...)
Found another 'double-colour' example. Two yellows from the same side, which probably means that there's a two-yellows been asked to exit from the neighbour (will check shortly).
Quickly adapting from my spreadsheet notation, "R, Y, G, B" in order, each "(Entry, Exit)", I've been using <dir> of L/R/T/B and a number (nominally percentage, though seems to include only values of 20, 30, 50, 70 and 80, so it might be more 1/6..5/6?) relating to the distance along from L to R (for T/B) or T to B (for L/R).
This line is therefore (0,0)(L20+L70,R30+B70)(R80,L80)(T70,L50) ... no reds, two yellow pairings, a red pairing, a blue pairing. Would require at least two path-crossings (but I was going to calculate those things later, and double-colours might confuse my intended simple line-intersection calculation).
...anyway, spent some time on this message, which might mean I'll get into a 'new batch' of available patterns as people have succeeded some of the challenges that I've been 'swiping left'. 19:28, 7 April 2024 (UTC)
...very next click: (0,0)(T30+L20,R20+R70)(R80,L80)(R50,B50), which is clearly the actual left-neighbour of the above. 19:32, 7 April 2024 (UTC)
Ok, stopped my refreshing to 'solve' a screen. First of all I routed both yellows entries (right-upper and upper-right) to one yellow exit (middle-left) and gradually teased the greens across (lower-left to middle-right), as that way I was avoiding a criss-cross of balls, but the the other yellow exit (left-lower) was, of course, invalid.
Changed it to drop one stream of yellows down towards the lower exit, across the rapidly firing greens (added a fan to filter away the occasional yellow that gets bounced over there, not much of an opportunity to filter falling-greens out of the yellow exit, so apologies to whoever gets the sceen below). Submited as "Two Yellows, One Green!", whether or not that'll save (apparently, I should continue to contribute and not refresh/close, or else the server will not keep the solution?).
Interestingly, all four adjacent tiles are "Under construction", and if I scroll up... *DARN* the comic has blanked out (nothing there between the upper PREV/RANDOM/NEXT buttons and the lower ones, just whitespace). This may mean that it did not save. This is the kind of 'page crash' I get when I try using a Prism or get too many balls rattling around on top of a Black Hole. Perhaps it doesn't like that I'm scrolling into an Under Construction that shouldn't be there? (But then, why is it there?)
Anyway, all extra information for everyone.
I'll just refresh the page and go back and do some more entry/exit mapping, maybe? 20:17, 7 April 2024 (UTC)

If you combine a bunch of these silly claw things in the middle by just spamming it, it begins to lag and do some chaotic collisions, even without balls colliding on it. It's curious how it does that seemingly randomly though. I wonder how calculations are added and if there's a tiny sprinkle of RNG. (Also, errors occur and say something about damaging recursion in the Rust programming language, so I guess we know how it was made. It's also pretty weird how there's not a lot of opening combinations? It's possible that the machine loops over in chunks of gears or something (that's what I'll call them). (talk) 13:15, 7 April 2024 (UTC)

If you place a black hole in the centre of a wheel, it makes the wheel behave unpredictably between resets. Sometimes it's almost normal, sometimes it's a lot faster than usual, and sometimes it's stopped but launches balls that touch it with extreme force. I was able to use this to submit a machine which didn't actually let a single ball through after being submitted. https://i.hypercone.us/?v=928bcd 01:19, 7 April 2024 (UTC)

The page says that (and I have taken note of) the ball hue is coded to certain values, but is there a logic to those values that might be derived from the colour (either as RGB triplet or HSV/other colourspace definition). For example, the two ball-types with zero green component in their makeup are 'unit density' (green is far heavier "green+red" is far lighter, so it's not a simple relationship, unless it converts from °hue, in some way) and the only secondary colour exhibits non-zero drag. There's the possibility that it just derived from "we need different properties, we need different colours, we have no reason to connect either with other deliberately" or even some non-mathematical symbology (fire=red, water=blue(?), earth=green, air(/sunlight?)=yellow). But it makes me wonder what combination of properties cyan/magenta balls might have, if added. (Or is the choice of those four colours constrained, anyway? Though R/G colorblindness is already something of an accessibility failure, if anyone suffers that.) 17:02, 7 April 2024 (UTC)

For color vision issues, on Mac, open System Preferences, select Accessibility, select Display (in the Vision group), select the Color Filters tab, select Enable Color Filters, then finally try the different filters in the Filter Type menu. One of them should help make the colors distinct. 03:40, 12 April 2024 (UTC)

Python script to get the URL and title of each Cell in the current machine

Result of running that script at the moment (encoded with ROT13 because pastebin wouldn't let me save it otherwise)

has anybody at all whatsoever been able to find their creation using this API? Bellydrum (talk) 21:58, 7 April 2024 (UTC)

Result of running that script on the first 42 machines, at least on these it looks like the only difference is that one cell is added each time? 17:22, 7 April 2024 (UTC)

I've submitted four now, none of which was accepted. I tend to spend a lot of time getting them just right. Any hints as to what the acceptance criteria might be? Or do I just stink at this? 19:47, 7 April 2024 (UTC)

There appears to be a new object: a cat that bats things that touch it. 20:17, 7 April 2024 (UTC)

Is anyone else experiencing the bug where prisms cause the comic to disappear (leaving only the white background where it was) after a while? It makes viewing the whole machine basically impossible. (On further testing it appears to be firefox-exclusive.) 20:31, 7 April 2024 (UTC)

I've had the "Prisms break things" from the beginning (before any practical content). As in, trying to use them in a design breaks things. But I did glance upon their occasional use in the 'view submissions grid'. Right now I'm suffering from "white only" issue (see my "multi-yellow" accounts, above). I am using Firefox, if that's indeed relevant to this issue, but right now I'm not near any other up-to-date browser I care to use. 21:37, 7 April 2024 (UTC)
I'm getting the same issue with black holes (which probably makes more sense - put a black hole there and you'd expect everything else to disappear :o) - except that on one occasion I was able to put about 6 black holes in before the 7th one vanished everything. 09:15, 8 April 2024 (UTC)

Has anyone seen their own cell in the machine at all yet? A manual approval system is probably necessary for obvious reasons, but if so it does seem to be moving quite slowly. 02:58, 8 April 2024 (UTC)

I've never seen one of my own cells after refreshing the page.  :( 20:27, 12 April 2024 (UTC)

How on earth is everyone seeing different parts of the grid? If I request "view machine" I can only see my own square, and the edges of everyone elses. Nothing else, definitely not all of the machine. 21:11, 8 April 2024 (UTC)

You should be able to click and drag the view around. 21:41, 8 April 2024 (UTC)

Whoever designed the room entirely full of fans is evil - every time I scroll near it my entire browser freezes up and becomes unresponsive. And then the comic usually blanks. 08:23, 9 April 2024 (UTC)

None of these edits were anything to do with "grammar", so why would anyone describe the change as such? The spelling of "colo(u)r" is an internationali[s|z]ation issue, of note, and why I usually prefer to defer to using words like "hue", instead, in such contexts on this site. The change of the link from "The Incredible Machine" (where the page exists) to "The Credible Machine" (where it doesn't, because that's really just this comic's own joke) I aready changed back... If you think it doesn't properly explain the pun/negation, then rewrite; but don't make it an invalid link to something that doesn't even exist, as you'd know if you had even followed the link(s). 15:22, 12 April 2024 (UTC)

Folks might be interested in my list of all published blueprints with their titles and permalinks: https://github.com/scpso/incrediblexkcd. scpso 13:18, 14 April 2024 (UTC)

Level scrolling bug[edit]

When one views the whole machine, and scrolls down far enough, everything just disappears, and the comic is completely unresponsive. Has anyone else seen this? 20:38, 7 April 2024 (UTC)

I'm now seeing the same issue, I wasn't before. (I'm using Chrome) 21:06, 7 April 2024 (UTC)
A hard refresh appears to have fixed this for me (same person as above). 10:28, 8 April 2024 (UTC)
I've been having this issue as well (I'm using firefox). Opening the site in Edge instead seemed to work around it for me, so it might only affect Firefox (and derivatives). 21:27, 7 April 2024 (UTC)
See also the 'firefox bug' comments currently immediately above this section. (Please don't ask me to start Edge up, I hate it, won't use it any more than the system requires me to...) 21:37, 7 April 2024 (UTC)
Update - I did a hard refresh so I could play around with the new additions and I'm no longer encountering the bug, even on firefox. I think the "white screen" bug is fixed now and you just need to hard-refresh to download the fixed JS instead of using the cached one. (same person as and 11:16, 8 April 2024 (UTC)

New Category: Ball Pit?[edit]

What do you think about a new category for comics with ball pits? 150, 219, 485, 498, 2916? 21:50, 7 April 2024 (UTC)

Category:Playpen balls already exists. 17:35, 9 April 2024 (UTC)

Prism Use?[edit]

Can the prism be used to sort balls by color? (or in any other way that is useful and different?) 12:11, 8 April 2024 (UTC)

From what I've seen, no. Though may be extremely susceptible to incident angle. As far as my own use has been, they seem to randomise the trajectory (possibly also do a total-internal-reflection, I've had balls bounce around and exit at really weird angles), but it's hard to collimate a feed of balls into a single exact track, even straight down from a ceiling-feed (if you have a ceiling feed directly over the floor exit, lucky you, it'll still occasionally perturb balls off to the sides just enough to be bounced out as a gate-miss, unless you add 'funnel' architecture of one kind or another). Oh, and when balls do a lot of 'internal bouncing' it often forced me to reload the comic (overloaded the physics engine?), so could not continue to tweak the same design.
On the other hand, perhaps this was the intent, and just code/browser failings made it work erratically. Maybe would be an idea to go back and retest for this (anybody who can), do a little !!science!! to be recorded and explained on the page. 12:51, 8 April 2024 (UTC)
So, ive did some testing and found..nothing. i did find some uses for the prism though. Like outting them diagonally makes the balls follow a "path", speeding up more and more (not really that great but it works with yellows), and that any ball hitting the left edge will try to go the the right edge. Not sure what else it can do, though. Begocc (talk) 09:35, 10 April 2024 (UTC)
I did some thorough testing on a combined Red/Blue set of balls (carefully managed so that they were dropping into the target area as similarly as possible) and both rotated and moved the prism in various ways to check for any effects - like needing to enter parallel/perpendicular to the colour-bands, either to land on the 'target band' or start to pass across it, with the band then either facilitating or angling its 'fall through'. (Just visually checked, at first, then later adding 'buckets' below and to the sides, to try to catch balls departing on various trajectories in various 'clumps' making note of any that hit the 'bucket'-boundaries and bounced off elsewhere.)
I found no significant sorting, and some balls would jitter around so much (within the prism) that they even launched almost straight back up where they came from (less poerfully than a Bonk-buffered ball, but not far off - also not reliable enough to use as a ball-elevator).
In my experience, Yellow-sorting is easy (even against Blue and/or Red) by other means. Green is the easiest to have everything else sorted from (because it resists the fan method). The hardest to unmix are Reds from Blues, which one might think should be the most prism-differentiated but I'm afraid I just can't invoke that. Easier to have them fall a long way then bounce off a suitable bit of 'furniture', I can then get them to distribute fairly distinctly in two handy recepticles/onward-feed-hoppers, though it does need some careful placement of items to do it justice. It appears that none of my designs have made it to the 'public wall', but I have made a submitable machine or two that does such sorting sufficiently successfully to send it out (theoretically) to be seen. 11:38, 10 April 2024 (UTC)

Bugs and Exploits[edit]

You can use a sword to break the physics on the hinge thingy and create your very own "magnetic hill": https://imgur.com/a/IRZ0AlL 13:02, 8 April 2024 (UTC)

Hard to tell from that what other fans (perhaps) you've got completely off-clip.
Those hinge-thingies can definitely be shifted by horizontal (outwith ball-weight pressures), but I've not found them to be reliable components as the "Stop" button (ball reset) seems to let those 'hinges' slring back to level, which might need a re-reset by moving them back past the thing that's holding them off-level.
I have tried a few things with them:
  • 'Ticker' mechanism, almost like a clock escapement, nudged by the rotating 'waterwheel', perhaps to try to release balls through a stream of other balls whilst keeping the path clear of collisions for each set, in turn.
  • 'Batch dumper', accumulating a number of balls (above the 'hinge', behind a vertical bulkhead) until there's weight enough to 'open the hatch' and roll them out. (Again, an attempt to reduce collisions, by clumping batches together).
  • Finely configured inclines, by shoving something up into a free end of hinge with better angular resolution (but, as mentioned, this doesn't seem to want to 'hold', so probably would fail upon submission).
...I had wondered if there was supposed to be a "falling anvil creates a catapult/ballista" idea behind the piece, but we don't have falling anvils (and definitely not in a repeating manner), and ball-powered catapult (esssentially "clown/acrobat jumps on one end of seesaw, clown/acrobat on other end flies up into the air") also doesn't seem practical.
I'll try to recreate your design, work out if there's anything new about it, but right now looks like it's a fan-powered incline-raiser. 14:23, 8 April 2024 (UTC)
No fans! Here's a wider view: https://imgur.com/a/xPJcsor
It survives the reset, because the balls falling on the lever push it down to the sword and it gets stuck there every time. But you need to place the sword just right to make the gravity bug happen. And even then it depends on the number of balls in some ways. 14:46, 8 April 2024 (UTC)
I've replicated the "tip of sword grabs the 'hinge'" thing, which is very interesting, but not the anti-gravity effect. The movement still seems to me more like a fan's 'area of effect' thing, than a wonky sense of gravity, the way that the balls are rolling/resisting/interacting with each other. No, I can't see where you've 'hidden' the fan (and I'm sure that fans can't act across submission-grid-boundaries, which was my next guess), so it's a bit of a funny thing that you've got there. 21:35, 9 April 2024 (UTC)

On occasion, two balls will fall from the containers as a pair, as if glued together. When this happens, they float down as if under much lower gravity, and then suddenly explode violently away from each other. 10:56, 10 April 2024 (UTC)

What contaniners?? 14:58, 12 April 2024 (UTC)
At the bottom of the grid are four containers that the balls are fired in to, from where they drop in to a pit with a boat. 08:40, 15 April 2024 (UTC)

When the browser is running slowly, sometimes the chamber doors will open, but none of the balls in them will drop, which can lead to huge backlogs of balls building up. However, there appears to then be a limit to how many will dispense in one opening - only half a dozen or so layers are released before the door closes again. 12:01, 24 April 2024 (UTC)

The USS Buoyancy[edit]

Guys. The Buoyancy. She floats. When all four sets of balls reach the ball pit there aren't further additions. The boat starts floating on them. I've been watching it for a while. It seems she moves left and will probably end up escaping the ball pit. DL Draco Rex (talk) 20:44, 8 April 2024 (UTC)

Update: A new row spawned in and it reset just before the Buoyancy could escape. Here's a screenshot I grabbed a while before the reset, she'd moved further left by the time the reset occurred. https://imgur.com/gallery/8UCASCu DL Draco Rex (talk) 20:51, 8 April 2024 (UTC)

Alright, I'm almost 100% of the time seeing Buoyancy sink. Yes, she *floats* at first. But as she drifts to the sides, instead of yellows going underneath, reds and greens pile on top. Then, as the balls under expire (90 second timeout), she will start to sink. Very consistent behavior over time. Keybounce (talk) 19:20, 11 April 2024 (UTC)

What is the Bouaancy i cant find it anywhere??? 14:58, 12 April 2024 (UTC)

Added key combinations, found in source[edit]

ctrl+alt+b ctrl+shift+option+d wheel: arrow keys

Can you clarify what "option" is? I have tried alt, function, and "operating system", and none are doing it.
It is alt 14:58, 12 April 2024 (UTC)

Fixed Number of Possible Machinelets?[edit]

I was resetting my browser to try and find new machinelet configurations, but there seem to be fewer and fewer as the game progresses. Hypothesis: the 'under construction' machinelets are set, and once one of them gets approved and added to the grid, that specific configuration of entrances/exits can't show up again.

Advanced components?[edit]

How does one get access to the full set of components to build from? I'm only given planks, mallets, swords, scoops, anvils, bricks and fans. I never get any pillows, bumpers, cats, stick figures et cetera. Do they need to be "unlocked" through some achievement, or what? 11:04, 9 April 2024 (UTC)

This caught me for a while as well. I have since discovered that the tool box has a scroll bar and can be scrolled down; that's where the others are hiding.
Invisible scrollbars – every GUI obfuscator's favorite tool for making users' lives harder. 18:17, 9 April 2024 (UTC)

Limit of 100 components?[edit]

Has anyone else seen this? At some point I started getting a count "95 / 100" towards the bottom of the toolbar. When it hits "100 / 100" the rest of the toolbar greys out, and I can't add anything more. (I suppose the physics engine has to keep a ceiling on the number of possible interactions between components.) —Scs (talk) 11:53, 10 April 2024 (UTC)

Yes, quite early on I was dealing with a quite simple 'drop from ceiling straight down to floor' setup. After adding just enough 'funnel' to deal with 'splatter', I then built a castle wall in the open space just to make it fun (with some figures on/below it, that I've also tried to decorate in later submissions), of the 'grey blocks'.
I actually hit the 100/100 exactly as I placed my final intended block. (No doubt that it's easy to hit the limit by just overlapping things so you can't see most of them, and other 'useless' placement, too...) 19:57, 10 April 2024 (UTC)

uss boyancy[edit]

Why have i not been seeing any uss boyancy 14:04, 10 April 2024 (UTC)

Haha I dare you to go to https://xkcd.com/2916/#xt=7&yt=57 and stare at the two black holes next to eachother >:) Z1mp0st0rz (talk) 15:27, 10 April 2024 (UTC)

Build a "working" machine from parts?[edit]

Has anyone started working on this idea:

Since any given machine segment seems to be saved, even if not in the final result, *and* since these segments are failing when combined in the whole, how about a "really working" machine that starts replacing failing segments when they jam or otherwise fail to work in the real machine?

The idea being something like, start the machine. Watch the top row, and see where the parts are failing to pass balls properly after two minutes. Replace the segments that are failing/jaming/etc, and let the new part process balls.

As you work your way down, over about 2 hours at the current size, you will eventually get a machine that properly sends balls down to the bottom, without jamming, without having to "pretend" that off-screen parts are working.

I mean, it's not like a gigantic, 600 segment machine will overflow memory on modern 32gb systems, nor consume so much power that these big huge CPU's will fail, right? There is a 100 piece limit sadly Keybounce (talk) 17:41, 10 April 2024 (UTC) ps.: Why do white holes, black holes, prisms, etc, cause problems on some machines like mine and not others?


I think that this Machine comic / game is foreshadowed by comic # 2785 titled Marble Run. (talk) 22:15, 11 April 2024 (please sign your comments with ~~~~)


Should we have a section on how this thing is implemented? How much is known? Obviously it's hugely dependent on Rapier, as credited in the header text. I assume everything else is written in Rust, too. But how is it deployed? Does Rust compile to Web Assembly, or what? Under Color Routing, our explanation mentions that the ball "values were extracted from the code" — how much of the code is actually visible? —Scs (talk) 16:39, 12 April 2024 (UTC)

There are source maps available for the client side. So most of the client source is pretty much there an available. DevTools will load these maps automatically by default, and you can find the ball parameters under incredible/src/components/widgets/Balls.tsx. As for the server, it has a Server header of Warp/3.3.31, a web server used for WAI applications in Haskell. 13:37, 14 April 2024 (UTC)
The source is available at https://github.com/xkcd/incredible -- 17:58, 17 May 2024 (UTC)

XKCD Prize[edit]

I propose the award of "Good Job" trophies for answers to the following weighty questions:

Cells ...

C1. There is always at least one entry-exit (same color) pair. I have seen up to five pairs. Is there a limit?
C2. I have never seen a two-color entry or exit, in over 100 tries, but I have seen pictures posted of this case. How rare are they?

Entry points (where balls enter the cell) ...

E1. The entry rate varies randomly. Is there a limit to the range of time between two balls?
E2. Some entries produce balls much faster than others, forever. Does this depend on color? Location? Anything else?

Exit points (where balls leave the cell) ...

X1. At exits there is a display indicating x or check, and a ring meter showing progress towards check. Eating the wrong color reduces the ring score. By how much? Is it the same amount as is gained by eating the correct color?
X2. The ring countdown starts about 4 seconds after the last ball, and lasts about 10 seconds. Does this ever vary?

Object properties ...

O1. The pillow clearly absorbs energy. What other objects have variation in bounce, and how much? By sending a stream of green balls at high speed into targets, it can be observed that the brick and the shot glass (outside edge) are more bouncy than the anvil, which in turn is more bouncy than the plank. Are other colors (such as red) affected the same way?
O2. Does the bounciness of any objects vary over their shape? The head of the mallet seems a little bouncier, but it's hard to set its angle to precisely match other test objects. The shaft of the pivot thing seems to be sticky. The dead edges of the triangle bonkers seem to absorb all inward energy from green balls, but only some energy from red balls.
O3. Do the bonkers give a constant exit speed, or does it depend on something like the arrival speed or ball color? Does the exit speed replace the entry speed, or are they combined somehow? Like the dead edges (see O2) I suspect the live edge also absorbs inbound energy before it fires, so the outbound energy may be constant, though maybe not for all colors.

Cats ...

K1. Over what range and direction will the cat swat at a nearby ball?
K2. Does the cat always add the same amount of energy when swatting a ball?
K3. Does the cat always add energy in the same direction when swatting a ball? At first glance the direction seems to be random over a range of angles, but this may be due to random entry points, speeds, and directions for the balls, rather than due to randomness by the cat.
K4. Is there a rate limit for how often the cat will act?

Black holes and Repulsers ...

B1. At their default size, repulsers are much stronger than black holes. How much stronger?
B2. How does effect scale with distance? Are black holes inverse-square? What about repulsers?
B3. Is there frame dragging around black holes? (good luck :)
B4. At an exit, does the rate of ring decay slow down if a black hole is nearby?

Bonus observation: Black holes have large solid centers. A red ball stuck to a black hole can be seen bouncing off the center.

Spoiler for B1 and part of B2: If five default size black holes and one default size repulser are all placed at the default center, they seem to cancel out exactly, at all distances, though the solid centers still repel direct collisions. So the ratio is 5:1 and the distance equation (whatever it is) seems to be the same for both objects. 15:53, 14 April 2024 (UTC)

C1: Current (as of y=70 filled) maximum across the machine is 5 pairs, only occuring 5 times, so I suppose it doesn't go higher. C2: So far there are only three combined gates in the machine, all two-color: one between (3, 8) and (4, 8) and two between (6, 50) and (7, 50). So yes, they are very rare. 21:38, 14 April 2024 (UTC)
Re. X1, I'm pretty sure (but don't have evidence, that the answer is 'no - a bad ball reduces it by more than a good ball increases it'. I can also think of an X3 - Does a good ball always increase the counter by the same amount; does this vary by colour or anything else? 08:47, 15 April 2024 (UTC)
E1: In the machine there is a value called ms_per_ball. Its value is 1000. Ie, a ball should be spawned every 1 second into the overall machine per entry. 18:56, 15 April 2024 (UTC)
Measuring five random new puzzles, I found most entries deliver 1 ball per second, or almost that much. But I found one green entry that only provided 1 ball every 2 seconds (15 in 30, forever). When I delivered those green balls to the green exit point, I found the ring meter there filled up twice as much per ball consumed. Later I found a red entry that produced only 8 balls in 30 seconds, forever. Those red balls also filled the red exit ring meter much faster than usual. 12:51, 8 May 2024 (UTC)
K1: There are 3 collision zones defined for the cat swat: The head, its butt & a zone in front of it ("swat sensor"). 18:56, 15 April 2024 (UTC)
K2: Yes. There is in fact a hidden property called catMass. Its value is 2. I am not aware of any machines which submitted a different value. I have submitted my own (sadly not accepted) with stronger cats (a higher catMass value). Here's an example. This value is multiplied by 8 and then divided by the minimum of inverse mass of the ball or JS' Number.MIN_VALUE. So to answer your question: yes, it is the same, unless this value got altered (through external methods) and depending on the ball type. 18:56, 15 April 2024 (UTC)
I observe the cat imparts the same velocity to yellow balls and to green balls. The green balls weigh about 30x more than the yellow balls, so I think for "same energy" the answer appears to be no. 15:29, 24 April 2024 (UTC)
K4: A cat will at the fastest swat every 200 ms. However up to another 400 ms are added by random. So the limit is a range from 200 to 600 ms. (Simplified, there is a period called "baby jail" where the cat has stopped the 'swat' animation but still cannot swat a new ball. This time is included in the previous calculation.) 18:56, 15 April 2024 (UTC)
C2: After trying well over 200 reloads, I obtained a cell with three entries (inputs) and four exits. One of the entries produces both blue and red balls, at different rates. 12:47, 8 May 2024 (UTC)
E1, E2, X1, X2 and X3: The example link posted above regarding K2 is very enlightening. It reveals (in JSON) that entries and exits have assigned speeds called "rate"s (partly addressing E1, E2, X1, X2 and X3). Rates range from at least 0.55 to 0.76 (maybe balls-per-second, and maybe up to 1.0). It also reveals the items we add are "widgets" and they each have names such as "board" and "catswat". Also the entries and exits are called "inputs" and "outputs", and the balls have types including 1 and 2 which probably correspond to colors. Further review of such examples could be used to update and harmonize the main explanation. 12:53, 8 May 2024 (UTC)

Submission Rules[edit]

Has anyone had any luck determining what the rules for submission are? Like many others, I've submitted a few that I've taken painstaking care to get right only to have them disappear after the refresh, never to be seen again. At first I assumed it was first come, first served, with the first submission getting included, but I'm not so sure.

I took a look at the "first 42" versions that someone provided above, and noticed:

  • The very first submission, "Pretty Bad" at (0,0) is still there.
  • The second submission is "Don't Forget to Switch Your Fans" which is actually (7,0). It's also still there.
  • These are followed by "sword" at (2,0) and "Fred" at (1,0), also still there.
  • Next is "Pinball Bouncer" which is actually (0,1).
  • Next is "undercomplicated". However this is then replaced by "OnlyFans" which is then replaced by "popcorn". "popcorn" appears at (3,0) and is still there.

What caused these to be added, then removed/replaced if it's first come, first served?

I also noticed over the weekend that I was getting assigned blocks that weren't even in the machine yet. I had rows 67 and 68, and the machine was only on row 65.

Also, I did two on row 68, then one on row 67.

None of these got added, which I assume means that someone else completed them before me, BUT that I started before they finished, otherwise I would hope I wouldn't have been assigned one that was already done.

Just now, I created one for a simple red-in, red-out at (7,73). I completed and submitted it. Then I refreshed and hit the edit button a few times and after a few tries I got another red-in, red-out with the input and output at the exact same place. I threw a couple of boards into it and submitted it and it showed it at the exact same spot, (7,73). So I was able to create a new one for the same spot I had already submitted one. I feel like this implied it's not first come, first served, as if so, why would it allow more people to submit for the same spot that someone had already successfully submitted? FWIW, the lowest row on the actual machine at this point is 70. 15:16, 15 April 2024 (UTC)

The criteria is not known yet. But it seems you are supposed to be able to make multiple submissions per specific cell / puzzle type (there is a list of puzzles sent to the client, when you submit one, the server picks a position which fits that puzzle.). Then one seems to be chosen manually for a specific cell. There are times of day when the machine is being updated very often, and other times when nothing happens for a while, indicating it is likely a manual process. When a puzzle is added to the grid, the value `snapshot` is populated under its corresponding /folio/ URL. Otherwise it is null. The submission time does not seem to have an effect on if your machine would be accepted. 18:29, 15 April 2024 (UTC)
It's not simply the first submission, because then we'd see many more simple solutions. Most of the trivial cells get artistic designs and overcomplicated contraptions, which take longer to build and would have lost to simpler and quicker solutions. It's not always the most elaborate contraption, because there are a few really minimal solutions where surely someone else submitted something more complex. It's often not the most correct solution, because many designs get clogged quickly or lose many balls, and I've seen some good solutions get replaced with ones that mis-sort many more balls. It's not always a bad solution either, because there are some that work really well.
It's possible that the server collects submissions for a while and then chooses one at random. It's also possible that the selection is manual, or maybe the manual step is just a final approval to ensure that no hate speech or other garbage gets in.

man I love messing with the hinges lol 18:49, 18 April 2024 (UTC)Maxalon

Is the Machine now 'complete'?[edit]

For the first time, I'm seeing a machine with no 'under construction' cells. Do we think it has now stopped processing new submissions (despite still having the option to build them)? [NB - even with all the bottom row cells providing balls to the chambers, the Bouyancy is still only reaching the side of the pit and then sinking.] 11:57, 24 April 2024 (UTC)

On the contrary, here. I submitted some machines. (Even did a hard-reload of the page, between them, in case I had to 'update' the scripting behind it.) I get my solution placed at the bottom layer (in once case, it had a "chuck across to the ball-bins" pipe, though nothing got sent across to the ball-bin/no activity was happening in the ball-pit and there's no USS Bouyancy floating around, in another, it just went into nothing) but I'm surrounded (to the sides, and above) with Under Construction Tape machine-cells. In one example, I had to scroll up 19 layers before I hit any actual machines (in another, it was well into the 20s, but I lost count).
Latest submission was this one, didn't keep a note of the immediately prior ones. Not sure what it looks like from anybody else's perspective. (Nor a selection of those that I noted previously... And given that there are two "xt=1&yt=72"s in that list, it looks like I later 'redid' a cell anyway, presuming the "v=896" is my constant UID, as it has never changed since I started to note these things.) 23:30, 25 April 2024 (UTC)
Postscript: "this one" doesn't even send me to my own just done machine, when I test it! In fact, I'm fairly sure that the one I was linking had green and red (maybe red) balls that needed 'servicing', not the Blue/Red of the "LBC" cell. If not that, it was green, red and blue, but I think that was the one before the hard-refresh. 23:36, 25 April 2024 (UTC)
Definitely still under construction - it's up to version 1233 as of now. I've been keeping an eye on it - you can see a list of all published machines with permalinks on my github page and search for the names of machines you've submitted to see if they ever got published, or download the csv if you want. None of mine have been published but I've still had a lot of fun. 13:27, 27 April 2024 (UTC)
As of May 23 2024 it looks complete - no "under construction" cells (except during page load). I also notice that the new blank machines on offer for solving have become simpler. Most have only one or two pairs of inputs/outputs now; rarely three. When the page was new it was possible to get four or even five pairs. BTW many of the submissions are very clever, so congrats to those who were chosen. 20:03, 23 May 2024 (UTC)
Nope, it's still going. 23:35, 26 May 2024 (UTC)
Maybe the reduction in input/output counts is intentional, to assist in fitting accepted submissions into the machine. 14:44, 27 May 2024 (UTC)
I believe it might be complete now. I just submitted one and it replaced one of the existing cells not near the end of the machine. There are no "under construction" cells. InTheSky (talk) 09:09, 28 May 2024 (UTC)
Just yesterday, I had "construction all the way round" my submission (well, left, right, I was not on the bottom layer and the cell above had yellow tape; did not scroll to see diagonals/further), but I can't test the situation right now, so it might have changed. But I am so used to entries being within a mass of 'taped off' neighbours (and not yet, SFAIK, had a permanent entry into the recurring composite 'board' that lasted beyond the period of submission). 10:09, 28 May 2024 (UTC)
Getting the machine layout in a JSON form (see above) always revealed a sructure with 128 rows, gradually filling up from version to version. I assume the complete version would have 128 rows filled. -- 07:54, 4 June 2024 (UTC)
Guess you were right, you can no longer play the game, just see the grid. Which is sad. I would still like to play if I had an idea, even without submitting 00:31, 11 June 2024 (UTC)
You can still play the game; a bunch of new layouts just got added, including a 5i5o and 3i4o. But it does look like new rows are no longer being added, just put on top of existing ones. 06:20, 13 June 2024 (UTC)

Balls have spin[edit]

This is subtle, and hard to see because the balls no visible texture: The balls carry spin. It can be seen, with effort, using green balls (which are heaviest). Rolling down a slope (say, two boards), green balls accumulate spin in the direction they are rolling. Let them drop off the end and then bounce off a brick such that they travel upward, but with very little sideways motion. Then "catch" the balls with a brick just past their apex, when they are moving slowly. If the ball lands on a horizontal brick, it can be seen that the ball will suddenly accelerate left or right based on the spin. 15:17, 1 May 2024 (UTC)

I will add this to the explanation.PDesbeginner (talk) 03:05, 19 June 2024 (UTC)

Stacking Objects[edit]

Stacking certain objects seems to stack their effects. For instance, enough Fans placed directly on top of each other are strong enough to redirect even green balls in mid-flight.

Multiple Bonks create a more powerful bounce, sometimes fast enough to make the ball seem to disappear briefly. These effects can be useful in overcoming certain restrictions and difficulties, or just for the joy of watching balls rocket around.

Stacking moving objects like Hinged Hooks and Wheels creates a completely different effect. Multiple hooks of either handedness - left or right - will lock together and then start to rotate slowly or swing wildly, together or separately, in both directions. Even when the hooks are moving slowly, balls that interact with them will sometime either rocket away or stick to them with a gravitation effect.

Combining left and right hooks has similar effects, but more than 4-6 of either hook will typically slow the animation, and eventually freeze it completely.

More Wheels can be stacked than hooks, with numbers in the dozens still allowing the animation to proceed. They will act in a similar fashion, sometimes locking and sometimes spinning wildly. Balls that strike them will be projected away at high speed, sometimes disappearing, or reappearing in a different section (a round Bonk will often flash briefly with no visible interaction).

Other interaction include sucking the ball into the interior of the wheel, where it sometimes disappears, or clinging to the surface like a gravitational attraction. The more Wheels, the more likely that the ball will simply disappear.

These techniques create interesting chaotic environments in the cell, but make it difficult to meet the ball feed requirements for submission. With multiple inputs it becomes effectively impossible. One work around is to separate streams for the balls at the source, protecting one stream to feed it into the output while allowing the rest to interact with the chaotic object. This is easiest with a single input at the top of the cell, but is still possible with one or more side inputs, depending on the location of the outputs.

The easiest way to stack hooks is to leave them at the spawn point and spawn more on top. Moving hooks and stacking them manually makes it hard to realign them perfectly to get the chaotic interaction, although they will still interact in unexpected ways. Wheels however can be effectively moved and stacked manually.

Adding another object on top may freeze the movement if the object is large large enough. A brick or a round Bonk will not significantly affect the Wheel, nor will a Black Hole or Repulser, but a Board, which extends beyond the Wheel, will lock it in place. The chaotic effects remain even when the wheels aren't moving - the balls seem to react as if they were spinning at high RPMs. Yusagi Yojimbo (talk) 17:22, 6 May 2024 (UTC)

Wheel/Fan page crash[edit]

If you place a fan close to a wheel, such that the middle of the fan is about in line with the bottom edge of the lower wheel blade, and the fan blades are just barely touching the wheel blade, then the wheel accelerates apparently without bound. Eventually any ball that touches the wheel simply disappears from the page. Around 20 seconds later (as the wheel continues to accelerate apparently) the page crashes upon the next ball impact, with a javascript error:

Uncaught RuntimeError: unreachable executed
    stepWithEvents rapier_wasm2d_bg.js:2726
    step physics_pipeline.js:16
    step world.js:111

At that point you lose your creation, which sadly I learned the hard way. This is fairly easy to reproduce. -- 01:23, 7 May 2024 (UTC)

I can't seem to get this to work. It could be because I'm dumb, though. That happens sometimes. Psychoticpotato (talk) 00:00, 14 May 2024 (UTC)

https://imgur.com/a/EhzlbCV -- 13:48, 15 May 2024 (UTC)

Another glitch[edit]

Some pairs, like "xt=6&yt=124" and "xt=7&yt=124" cause a glitch. It is not related to the machine, for it is consistent for me (Fx 126.0.1, Windows 11). Does anyone else have these issues? 19:02, 7 June 2024 (UTC)

Yes the live huge machine is crashing very frequently now. If I scroll around it will crash and just freeze permanently. I can't tell which panel or panels is causing the crash though. Maybe it's just gotten too big?

Yet Another glitch[edit]

If you press a ball against the wall it clips out kinda cool -- Xkcd machine guy (talk) 09:39, 16 June 2024 (please sign your comments with ~~~~)

You can observe this with pressing balls between (solid) elements, too, having placed one item (or more) then shifting a further one into contact with the prior(s) with a ball already landed there. (I ought to try it with two 'cups', mutually inverted, trap a ball in one then move either straight across the other.)
It's often useful to (temporarily) clear out a system jam by sweeping the balls around with a throwaway object, but also you can force their time-outs by making their existence untenable (after some scene-editing that temporarily sent streams in totally in the wrong direction). 14:04, 16 June 2024 (UTC)

Entirely broken?[edit]

I can no longer play the game (have tried on two different computers, repeatedly for the last 24 hours). Starts out in the machine view, the machine freezes immediately, and there's no edit button. -- Rei (talk) 22:10, 21 June 2024 (UTC)

Same here. If you scroll (drag) to view the bottom (USS Buoyancy), balls will move there, but there's no "Edit" button. 23:14, 21 June 2024 (UTC)

Also for me. Chrome and Firefox, balls traverse the bottom chamber and float the boat, but as soon as the bottom row of machines are within view, no balls spawn or move. I only just saw this comic today, which appears to be the day it broke, so... I've never seen it running. Came to Explainxkcd to see if it was just me, and here we are at the very bottom, not feeling buoyant. 05:35, 22 June 2024 (UTC)