<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Minecraftip</id>
		<title>explain xkcd - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Minecraftip"/>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php/Special:Contributions/Minecraftip"/>
		<updated>2026-04-08T22:41:40Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=408746</id>
		<title>2916: Machine</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=408746"/>
				<updated>2026-03-23T20:45:39Z</updated>
		
		<summary type="html">&lt;p&gt;Minecraftip: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2916&lt;br /&gt;
| date      = April 5, 2024&lt;br /&gt;
| title     = Machine&lt;br /&gt;
| image     = machine_2x.png&lt;br /&gt;
| imagesize = 740x740px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = The Credible Machine&lt;br /&gt;
}}&lt;br /&gt;
{{series&lt;br /&gt;
| series        = April&lt;br /&gt;
| number        = 16&lt;br /&gt;
| date          = April 5, 2024&lt;br /&gt;
| days_late     = 4&lt;br /&gt;
| day_category  = Friday&lt;br /&gt;
| prev_title    = 2765: Escape Speed&lt;br /&gt;
| prev_date     = April 19, 2023&lt;br /&gt;
| next_title    = 3074: Push Notifications&lt;br /&gt;
| next_date     = April 9, 2025&lt;br /&gt;
| extra_text    = [[#Trivia|Learn why this comic was released late]].&lt;br /&gt;
}}&lt;br /&gt;
{{TOC}}To experience the interactivity of the game, visit the {{xkcd|2916|original comic}}!&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need to complete the explanations for the items.}}&lt;br /&gt;
&lt;br /&gt;
The comic starts in a main screen where the user can create a {{w|Rube Goldberg machine}} in a &amp;quot;Cell&amp;quot; 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&amp;lt;!-- that sort marbles by color SEEM TO 'RANDOMLY' REFRACT/DEFLECT, IF SORTING IS TRUE THEN EXPLAIN IN NEW/RELOCATED SECTION? --&amp;gt; (which deflect marbles) and fans (which blow marbles around), plus decorative elements which have no effect on the balls.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;under construction&amp;quot;, 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.&lt;br /&gt;
&lt;br /&gt;
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. [https://www.reddit.com/user/xzaphenia/comments/ 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 [https://www.reddit.com/r/xkcd/comments/1c1ixmb/comment/kzc3rmg/ 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 [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ coolness, innovativeness, effectiveness], and [https://www.reddit.com/r/xkcd/comments/1c0bsk2/comment/kyvfean/ 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. [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ It is also claimed that at some point, moderation will be cut off and the machine will be considered &amp;quot;complete&amp;quot;]; since the number of modules in the machine has not changed for more than a year now, it is very likely that this has already happened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=&amp;quot;200&amp;quot; widths=&amp;quot;150&amp;quot;&amp;gt;&lt;br /&gt;
File:2916_popup_intro.png|Introduction popup&lt;br /&gt;
File:2916_popup_time.png|Time limit popup&lt;br /&gt;
File:2916_popup_submit.png|Submission popup&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;UNDER CONSTRUCTION&amp;quot; as well as &amp;quot;DJIA ↑ 31415&amp;quot; once in each cell. &amp;quot;DJIA&amp;quot; stands for the Dow Jones Industrial Average, with &amp;quot;DJIA ↑ 31415&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 (&amp;quot;''##''/100&amp;quot;), which will go away again if you delete items to bring it below this count. The count text turns red at &amp;quot;100/100&amp;quot;, at which point no more items can be added, only existing ones moved (or removed, to lower the count again).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Machine&amp;quot; had been updated multiple times in the weeks following its initial release, adding the following features:&lt;br /&gt;
* the trophy and shot glass props&lt;br /&gt;
* the cat, which swats balls in front of it&lt;br /&gt;
* the inanimate kitten and bun decorations&lt;br /&gt;
* 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)&lt;br /&gt;
* a button to follow a nearby ball as it traverses through the machine, also preventing it from despawning&lt;br /&gt;
&lt;br /&gt;
As referenced in the title text, this game is a spiritual successor to the 1990s and early 2000s PC puzzle game series {{w|The Incredible Machine}}, a game Randall played as a kid. Both games have several objects in common:&lt;br /&gt;
* fan&lt;br /&gt;
* cat&lt;br /&gt;
* ramps&lt;br /&gt;
* balls of varying densities&lt;br /&gt;
&lt;br /&gt;
===Toolbox items===&lt;br /&gt;
====Tangible items====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=margin:auto&amp;quot;&lt;br /&gt;
! Image&lt;br /&gt;
! Item !! Explanation &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_plank.png|frameless|upright=0.25]]&lt;br /&gt;
| Plank || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_hammer.png|frameless|upright=0.25]]&lt;br /&gt;
| Hammer || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_sword.png|frameless|upright=0.25]]&lt;br /&gt;
| Sword || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_scoop.png|frameless|upright=0.25]]&amp;lt;br&amp;gt;[[File:2916_scoop_mirrored.png|frameless|upright=0.25]]&lt;br /&gt;
| Hinged scoop || It rotates around its hinge and tries to remain horizontal, with a spring-like effect. The hinged scoops are strictly horizontal when placed on the building. They rotate away from — and spring back to — the horizontal position in response to interactions with balls or other non-decorative items that may disturb their balance. These disturbances can sometimes lead to further interesting interactions, which may or may not be intentional or useful.&lt;br /&gt;
Along with the triangular Bumpers, they are the only class of objects with a clear and practical asymmetry, for which a mirrored chirality can be selected from the sidebar.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_anvil.png|frameless|upright=0.125]]&lt;br /&gt;
| Anvil || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_brick.png|frameless|upright=0.125]]&lt;br /&gt;
| Brick || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_fan.png|frameless|upright=0.125]]&lt;br /&gt;
| Fan || Blows away balls in front of it. Can be rotated 360 degrees. Different colors are affected by differing amounts (yellow balls are lightest, and can be levitated above an upward-facing fan). If a ball hits a blade of a fan, especially from the side, the bounce is larger than normal. If you put a fan interlocking with a wheel it might eventually freeze your machine.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_pillow.png|frameless|upright=0.125]]&lt;br /&gt;
| Pillow || Balls bounce less if they hit it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_round_bumper.png|frameless|upright=0.125]] [[File:2916_bumper_left.png|frameless|upright=0.125]] [[File:2916_bumper_right.png|frameless|upright=0.125]]&lt;br /&gt;
| Bumper || Bounces balls away at significantly higher speed. Together with the Hinged scoop, they are the only object class with a clear and practical asymmetry, for which a mirrored chirality can be chosen from the sidebar. &lt;br /&gt;
|-&lt;br /&gt;
|| [[File:2916_attractor.png|frameless|upright=0.125]]&lt;br /&gt;
| Attractor/Black hole || It pulls balls towards its center. The Attractor is omnidirectional, but the area of effect can be resized to extend or restrict its influence. You do this via extending 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.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_repulsor.png|frameless|upright=0.125]]&lt;br /&gt;
| Repulsor/White hole || It repels balls away from center. Like the Attractor, it is omnidirectional and can be resized. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_prism.png|frameless|upright=0.125]]&lt;br /&gt;
| Prism || &amp;quot;Refracts&amp;quot; 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.&amp;lt;!-- Benefit of the doubt, but it hasn't seemed to work that well for me, either. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_wheel.png|frameless|upright=0.125]]&lt;br /&gt;
| Wheel || Spins, deflects balls, can jam with enough resistance (e.g. glut of balls or against other elements). It actively rotates and 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 {{w|wagon-wheel effect}} occurs&amp;lt;!-- does it depend upon browser rendering frequency, or is there a convenient refresh-cap-rate built into the rendering engine? --&amp;gt;, 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. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_trophy.png|frameless|upright=0.125]]&lt;br /&gt;
| &amp;quot;Good job&amp;quot; trophy (Called &amp;quot;stand&amp;quot; in assets)|| This object is a static obstacle. Any ball can rest on the top of a trophy. This feature was probably added on purpose.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cup.png|frameless|upright=0.125]]&lt;br /&gt;
| Glass cup || This object is a static obstacle. Container, with a nominal capacity of up to four balls (in whole or in part) within it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat_new.png|frameless|upright=0.25]]&lt;br /&gt;
| Cat || Swats away balls in front of itself (was added later). Balls can get stuck on top of the cat or between the cat's head and tail. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Intangible decorations====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin: auto; float: right&amp;quot;&lt;br /&gt;
! Image !! Transcript &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_ponytail_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_ponytail.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_cueball_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing Cueball, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_whitehat.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing White Hat, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap_resting.png|frameless|upright=0.25]]&lt;br /&gt;
| Rightwards-facing Knit Cap, in an 'action' pose &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Knit Cap, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_helmet.png|frameless|upright=0.125]]&lt;br /&gt;
| Helmet-wearing figure, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_squirrel.png|frameless|upright=0.125]]&lt;br /&gt;
| Squirrel &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_deterministic.png|frameless|upright=0.25]]&lt;br /&gt;
| &amp;quot;Probably Deterministic&amp;quot; sign &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_rabbit.png|frameless|upright=0.125]]&lt;br /&gt;
| [[1682: Bun|Bun]] &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat.png|frameless|upright=0.125]]&lt;br /&gt;
| Cat &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Rotation may be limited by the {{w|minimum bounding box}} that is the 'selection box', this is not necessarily the more flush {{w|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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 indirectly nudge balls by carefully moving a tangible object's surface into them (or holding them within it, e.g. the &amp;quot;cup&amp;quot;). 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 submitted.&lt;br /&gt;
&lt;br /&gt;
====Non-player items====&lt;br /&gt;
{|&lt;br /&gt;
|[[File:2916_container_red.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_yellow.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_blue.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_green.png|thumb|center|80px]]&lt;br /&gt;
|}&lt;br /&gt;
Ball containers at the bottom of the machine.&lt;br /&gt;
&lt;br /&gt;
[[File:4d425c.png|thumb|left|250px|Cueball and Megan in the ''USS Buoyancy.]]&lt;br /&gt;
&lt;br /&gt;
[[File:2916_pit_bottom.png|thumb|left|400px|Pit below the ''USS Buoyancy''.]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Color routing ===&lt;br /&gt;
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:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Color&lt;br /&gt;
! Mass&lt;br /&gt;
! Density&lt;br /&gt;
! Restitution (bounciness)&lt;br /&gt;
! Linear damping (drag)&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;00F&amp;quot; | Blue&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;F00&amp;quot; | Red&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0.8&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;0F0&amp;quot; | Green&lt;br /&gt;
| 0.75&lt;br /&gt;
| 9.325&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;FF0&amp;quot; | Yellow&lt;br /&gt;
| 0.024&lt;br /&gt;
| 0.3&lt;br /&gt;
| 0.6&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;catch&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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 {{w|Proton pack#Crossing the streams|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.&lt;br /&gt;
&lt;br /&gt;
In order to maintain sufficient correct arrivals at exits&amp;lt;!-- and, I believe, sufficiently few ''wrong'' arrivals... does it enumerate the 'net correct delivery rate' to establish the validity of the output? ...needs more research --&amp;gt;, it may be necessary to add a method of filtering the hues.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This may not be the most efficient depiction (with just four/less 'core methods', after following &amp;quot;See X/Y&amp;quot;s) but if the Prism or some other item actually adds zignificantly practical pre-&amp;quot;See&amp;quot; differences then the all-vs-all format (with the reversals/same-to-sames still there to be abbreviated/redirected) will come into its own.&lt;br /&gt;
If you so wish, redo. e.g. as &amp;quot;;header + :paragraph&amp;quot;s or table of &amp;quot;!Combo(s)!!Methodology&amp;quot;&lt;br /&gt;
NB:&lt;br /&gt;
  1x ! Row-start Style=                                                 | Row-start 'header'&lt;br /&gt;
  4x | *Unwikiparsable key just for editors' benefit* + optional Style= | Contents&lt;br /&gt;
...right now, I've mostly added &amp;quot;vertical fan&amp;quot; experiences (which I find useful for all but R/B differentiation), but more about bumpers (including fan-/wheel-collisions), the positive/negative 'force objects' and of course horizontal/angled fans could also be added.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:black; color:white&amp;quot; | To separate !! style=&amp;quot;background-color:lightblue&amp;quot; | Blue !! style=&amp;quot;background-color:lightgreen&amp;quot; | Green !! style=&amp;quot;background-color:yellow&amp;quot; | Yellow !! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
| *R/B* | '''Use 'bounce''''&lt;br /&gt;
The sole difference is how much balls will rebound from objects. Well managed and constrained ricochets should allow a sorting action.&lt;br /&gt;
| *R/G* | '''Use mass or 'bounce''''&lt;br /&gt;
Green balls are not easily affected by a fan or a black hole, making it easier to sort from other balls. On the other hand, it also means it is very hard to precisely accelerate green, since the only components able to accelerate green is the bonk and the kitten.&amp;lt;br/&amp;gt;Green, like Blue, rebounds differently to Red.&lt;br /&gt;
| *R/Y* | ''See&amp;lt;br /&amp;gt;Y/B+G''&lt;br /&gt;
| *R/R* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:yellow&amp;quot; | Yellow&lt;br /&gt;
| *Y/B+G* colspan=2| '''All methods'''&lt;br /&gt;
Yellow, alone, exhibits high drag against any unforced motion.&amp;lt;br/&amp;gt;It is also unique in all other ways; e.g. can be levitated highest, against all other hues (though most profoundly against Green).&lt;br /&gt;
| *Y/Y* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *Y/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- R/Y-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightgreen&amp;quot; | Green&lt;br /&gt;
| *G/B* | '''Use mass'''&lt;br /&gt;
Green balls are only minimally affected by a fan.&amp;lt;br/&amp;gt;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).&lt;br /&gt;
| *G/G* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *G/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- Y/G-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
| *G/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/G&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightblue&amp;quot; | Blue&lt;br /&gt;
| *B/B* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *B/G* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See G/B&lt;br /&gt;
| *B/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See&amp;lt;br /&amp;gt;Y/B+G&lt;br /&gt;
| *B/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/B&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Finish transcribing the comic!}}&lt;br /&gt;
&lt;br /&gt;
:[The placeholder image shows four balls, colored red, green, yellow and blue, bouncing on top of three white blocks. Text in the center: &amp;quot;[visit xkcd.com to view]&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
:[In the game, colored balls fall out of rotating half-gears that spawn at random from the wall and/or ceiling while an opposite set of half-gears that spawn on the bottom (always) and sides (sometimes) rotate with a colored triangle pointing to that intersection of said set of gears. There is a button that says &amp;quot;view machine&amp;quot; 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. There is another button with a wrench which is a menu that gives you tools and decorations to move the balls to the set of gears with the colored corresponding triangle.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, intro popup]&lt;br /&gt;
:Cueball: Balls falling into your cell should be routed to the outputs at a steady rate.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, warning popup]&lt;br /&gt;
:Cueball: For security reasons, balls that remain in your device for more than 30 seconds will be removed and destroyed.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, submit popup]&lt;br /&gt;
:Cueball: Congratulations! Your contraption has passed all tests. Press [submit button] to submit it to be added to the machine!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
This comic was released four days after April 1st, even though April 1st fell on a regular Monday release day. Its status as an April Fool's Day comic was confirmed when Randall posted a [https://www.facebook.com/TheXKCD/posts/pfbid0Cs97awQZi1ZiaEXouAex9tXrwAS3qJV3RmAiuCq5uvZQwqZVMgDmcqJ7JU9LYodYl link to this comic] on his [https://www.facebook.com/TheXKCD Facebook feed], in which he explicitly described it as a late April Fools' release, removing any ambiguity about its intended classification. Similar delays have occurred for April Fools' comics since [[Garden]]. Randall acknowledges the contributors who assisted with this comic in a [[Header_text#Machine|comic-specific header text]]. With eleven additional contributors besides Randall, it is the xkcd comic with the most collaborators to date.&lt;br /&gt;
[[File:2916 Machine Facebook April fools' confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
Several hidden keyboard shortcuts have been identified:&lt;br /&gt;
* Follow balls: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt/Option&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;B&amp;lt;/kbd&amp;gt; (also accessible via the on-screen button)&lt;br /&gt;
* Show debug overlay: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Win/Cmd&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;D&amp;lt;/kbd&amp;gt;, though this may conflict with certain browser shortcuts such as Firefox’s &amp;quot;New Bookmark&amp;quot; dialog&lt;br /&gt;
* Delete selected item: &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; (or &amp;lt;kbd&amp;gt;Fn&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; on Mac)&lt;br /&gt;
The [https://github.com/xkcd/incredible source code] for the comic was released on GitHub on May 8, 2024. chromakode, one of the developers, also published a [https://chromakode.com/post/xkcd-machine/ blog post] describing the design and development process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Dynamic comics]]&lt;br /&gt;
[[Category:Comics with animation]] &lt;br /&gt;
[[Category:Interactive comics]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Knit Cap]]&lt;br /&gt;
[[Category:Characters with hats]]&lt;br /&gt;
[[Category:Squirrels]]&lt;br /&gt;
[[Category:Buns]]&lt;br /&gt;
[[Category:Cats]]&lt;br /&gt;
[[Category:Physics]]&lt;/div&gt;</summary>
		<author><name>Minecraftip</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=408745</id>
		<title>2916: Machine</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=408745"/>
				<updated>2026-03-23T20:44:12Z</updated>
		
		<summary type="html">&lt;p&gt;Minecraftip: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2916&lt;br /&gt;
| date      = April 5, 2024&lt;br /&gt;
| title     = Machine&lt;br /&gt;
| image     = machine_2x.png&lt;br /&gt;
| imagesize = 740x740px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = The Credible Machine&lt;br /&gt;
}}&lt;br /&gt;
{{series&lt;br /&gt;
| series        = April&lt;br /&gt;
| number        = 16&lt;br /&gt;
| date          = April 5, 2024&lt;br /&gt;
| days_late     = 4&lt;br /&gt;
| day_category  = Friday&lt;br /&gt;
| prev_title    = 2765: Escape Speed&lt;br /&gt;
| prev_date     = April 19, 2023&lt;br /&gt;
| next_title    = 3074: Push Notifications&lt;br /&gt;
| next_date     = April 9, 2025&lt;br /&gt;
| extra_text    = [[#Trivia|Learn why this comic was released late]].&lt;br /&gt;
}}&lt;br /&gt;
{{TOC}}To experience the interactivity of the game, visit the {{xkcd|2916|original comic}}!&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need to complete the explanations for the items.}}&lt;br /&gt;
&lt;br /&gt;
The comic starts in a main screen where the user can create a {{w|Rube Goldberg machine}} in a &amp;quot;Cell&amp;quot; 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&amp;lt;!-- that sort marbles by color SEEM TO 'RANDOMLY' REFRACT/DEFLECT, IF SORTING IS TRUE THEN EXPLAIN IN NEW/RELOCATED SECTION? --&amp;gt; (which deflect marbles) and fans (which blow marbles around), plus decorative elements which have no effect on the balls.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;under construction&amp;quot;, 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.&lt;br /&gt;
&lt;br /&gt;
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. [https://www.reddit.com/user/xzaphenia/comments/ 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 [https://www.reddit.com/r/xkcd/comments/1c1ixmb/comment/kzc3rmg/ 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 [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ coolness, innovativeness, effectiveness], and [https://www.reddit.com/r/xkcd/comments/1c0bsk2/comment/kyvfean/ 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. [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ It is also claimed that at some point, moderation will be cut off and the machine will be considered &amp;quot;complete&amp;quot;]; since the number of modules in the machine has not changed for more than a year now, it is very likely that this has already happened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=&amp;quot;200&amp;quot; widths=&amp;quot;150&amp;quot;&amp;gt;&lt;br /&gt;
File:2916_popup_intro.png|Introduction popup&lt;br /&gt;
File:2916_popup_time.png|Time limit popup&lt;br /&gt;
File:2916_popup_submit.png|Submission popup&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;UNDER CONSTRUCTION&amp;quot; as well as &amp;quot;DJIA ↑ 31415&amp;quot; once in each cell. &amp;quot;DJIA&amp;quot; stands for the Dow Jones Industrial Average, with &amp;quot;DJIA ↑ 31415&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 (&amp;quot;''##''/100&amp;quot;), which will go away again if you delete items to bring it below this count. The count text turns red at &amp;quot;100/100&amp;quot;, at which point no more items can be added, only existing ones moved (or removed, to lower the count again).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Machine&amp;quot; had been updated multiple times in the weeks following its initial release, adding the following features:&lt;br /&gt;
* the trophy and shot glass props&lt;br /&gt;
* the cat, which swats balls in front of it&lt;br /&gt;
* the inanimate kitten and bun decorations&lt;br /&gt;
* 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)&lt;br /&gt;
* a button to follow a nearby ball as it traverses through the machine, also preventing it from despawning&lt;br /&gt;
&lt;br /&gt;
As referenced in the title text, this game is a spiritual successor to the 1990s and early 2000s PC puzzle game series {{w|The Incredible Machine}}, a game Randall played as a kid. Both games have several objects in common:&lt;br /&gt;
* fan&lt;br /&gt;
* cat&lt;br /&gt;
* ramps&lt;br /&gt;
* balls of varying densities&lt;br /&gt;
&lt;br /&gt;
===Toolbox items===&lt;br /&gt;
====Tangible items====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=margin:auto&amp;quot;&lt;br /&gt;
! Image&lt;br /&gt;
! Item !! Explanation &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_plank.png|frameless|upright=0.25]]&lt;br /&gt;
| Plank || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_hammer.png|frameless|upright=0.25]]&lt;br /&gt;
| Hammer || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_sword.png|frameless|upright=0.25]]&lt;br /&gt;
| Sword || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_scoop.png|frameless|upright=0.25]]&amp;lt;br&amp;gt;[[File:2916_scoop_mirrored.png|frameless|upright=0.25]]&lt;br /&gt;
| Hinged scoop || It rotates around its hinge and tries to remain horizontal, with a spring-like effect. The hinged scoops are strictly horizontal when placed on the building. They rotate away from — and spring back to — the horizontal position in response to interactions with balls or other non-decorative items that may disturb their balance. These disturbances can sometimes lead to further interesting interactions, which may or may not be intentional or useful.&lt;br /&gt;
Along with the triangular Bumpers, they are the only class of objects with a clear and practical asymmetry, for which a mirrored chirality can be selected from the sidebar.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_anvil.png|frameless|upright=0.125]]&lt;br /&gt;
| Anvil || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_brick.png|frameless|upright=0.125]]&lt;br /&gt;
| Brick || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_fan.png|frameless|upright=0.125]]&lt;br /&gt;
| Fan || Blows away balls in front of it. Can be rotated 360 degrees. Different colors are affected by differing amounts (yellow balls are lightest, and can be levitated above an upward-facing fan). If a ball hits a blade of a fan, especially from the side, the bounce is larger than normal. If you put a fan interlocking with a wheel it might eventually freeze your machine.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_pillow.png|frameless|upright=0.125]]&lt;br /&gt;
| Pillow || Balls bounce less if they hit it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_round_bumper.png|frameless|upright=0.125]] [[File:2916_bumper_left.png|frameless|upright=0.125]] [[File:2916_bumper_right.png|frameless|upright=0.125]]&lt;br /&gt;
| Bumper || Bounces balls away at significantly higher speed. Together with the Hinged scoop, they are the only object class with a clear and practical asymmetry, for which a mirrored chirality can be chosen from the sidebar. &lt;br /&gt;
|-&lt;br /&gt;
|| [[File:2916_attractor.png|frameless|upright=0.125]]&lt;br /&gt;
| Attractor/Black hole || It pulls balls towards its center. The Attractor is omnidirectional, but the area of effect can be resized to extend or restrict its influence. You do this via extending 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.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_repulsor.png|frameless|upright=0.125]]&lt;br /&gt;
| Repulsor/White hole || It repels balls away from center. Like the Attractor, it is omnidirectional and can be resized. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_prism.png|frameless|upright=0.125]]&lt;br /&gt;
| Prism || &amp;quot;Refracts&amp;quot; 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.&amp;lt;!-- Benefit of the doubt, but it hasn't seemed to work that well for me, either. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_wheel.png|frameless|upright=0.125]]&lt;br /&gt;
| Wheel || Spins, deflects balls, can jam with enough resistance (e.g. glut of balls or against other elements). It actively rotates and 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 {{w|wagon-wheel effect}} occurs&amp;lt;!-- does it depend upon browser rendering frequency, or is there a convenient refresh-cap-rate built into the rendering engine? --&amp;gt;, 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. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_trophy.png|frameless|upright=0.125]]&lt;br /&gt;
| &amp;quot;Good job&amp;quot; trophy (Called &amp;quot;stand&amp;quot; in assets)|| This object is a static obstacle. Any ball can rest on the top of a trophy. This feature was probably added on purpose.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cup.png|frameless|upright=0.125]]&lt;br /&gt;
| Glass cup || This object is a static obstacle. Container, with a nominal capacity of up to four balls (in whole or in part) within it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat_new.png|frameless|upright=0.25]]&lt;br /&gt;
| Cat || Swats away balls in front of itself (was added later). Balls can get stuck on top of the cat or between the cat's head and tail. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Intangible decorations====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin: auto; float: right&amp;quot;&lt;br /&gt;
! Image !! Transcript &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_ponytail_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_ponytail.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_cueball_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing Cueball, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_whitehat.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing White Hat, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap_resting.png|frameless|upright=0.25]]&lt;br /&gt;
| Rightwards-facing Knit Cap, in an 'action' pose &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Knit Cap, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_helmet.png|frameless|upright=0.125]]&lt;br /&gt;
| Helmet-wearing figure, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_squirrel.png|frameless|upright=0.125]]&lt;br /&gt;
| Squirrel &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_deterministic.png|frameless|upright=0.25]]&lt;br /&gt;
| &amp;quot;Probably Deterministic&amp;quot; sign &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_rabbit.png|frameless|upright=0.125]]&lt;br /&gt;
| [[1682: Bun|Bun]] &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat.png|frameless|upright=0.125]]&lt;br /&gt;
| Cat &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Rotation may be limited by the {{w|minimum bounding box}} that is the 'selection box', this is not necessarily the more flush {{w|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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 indirectly nudge balls by carefully moving a tangible object's surface into them (or holding them within it, e.g. the &amp;quot;cup&amp;quot;). 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 submitted.&lt;br /&gt;
&lt;br /&gt;
====Non-player items====&lt;br /&gt;
{|&lt;br /&gt;
|[[File:2916_container_red.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_yellow.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_blue.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_green.png|thumb|center|80px]]&lt;br /&gt;
|}&lt;br /&gt;
Ball containers at the bottom of the machine.&lt;br /&gt;
&lt;br /&gt;
[[File:4d425c.png|thumb|left|250px|Cueball and Megan in the ''USS Buoyancy.]]&lt;br /&gt;
&lt;br /&gt;
[[File:2916_pit_bottom.png|thumb|left|400px|Pit below the ''USS Buoyancy''.]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Color routing ===&lt;br /&gt;
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:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Color&lt;br /&gt;
! Mass&lt;br /&gt;
! Density&lt;br /&gt;
! Restitution (bounciness)&lt;br /&gt;
! Linear damping (drag)&lt;br /&gt;
! Fan score&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;00F&amp;quot; | Blue&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 2.5&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;F00&amp;quot; | Red&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0.8&lt;br /&gt;
| 0&lt;br /&gt;
|2.5&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;0F0&amp;quot; | Green&lt;br /&gt;
| 0.75&lt;br /&gt;
| 9.325&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;FF0&amp;quot; | Yellow&lt;br /&gt;
| 0.024&lt;br /&gt;
| 0.3&lt;br /&gt;
| 0.6&lt;br /&gt;
| 2&lt;br /&gt;
| 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;catch&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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 {{w|Proton pack#Crossing the streams|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.&lt;br /&gt;
&lt;br /&gt;
In order to maintain sufficient correct arrivals at exits&amp;lt;!-- and, I believe, sufficiently few ''wrong'' arrivals... does it enumerate the 'net correct delivery rate' to establish the validity of the output? ...needs more research --&amp;gt;, it may be necessary to add a method of filtering the hues.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This may not be the most efficient depiction (with just four/less 'core methods', after following &amp;quot;See X/Y&amp;quot;s) but if the Prism or some other item actually adds zignificantly practical pre-&amp;quot;See&amp;quot; differences then the all-vs-all format (with the reversals/same-to-sames still there to be abbreviated/redirected) will come into its own.&lt;br /&gt;
If you so wish, redo. e.g. as &amp;quot;;header + :paragraph&amp;quot;s or table of &amp;quot;!Combo(s)!!Methodology&amp;quot;&lt;br /&gt;
NB:&lt;br /&gt;
  1x ! Row-start Style=                                                 | Row-start 'header'&lt;br /&gt;
  4x | *Unwikiparsable key just for editors' benefit* + optional Style= | Contents&lt;br /&gt;
...right now, I've mostly added &amp;quot;vertical fan&amp;quot; experiences (which I find useful for all but R/B differentiation), but more about bumpers (including fan-/wheel-collisions), the positive/negative 'force objects' and of course horizontal/angled fans could also be added.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:black; color:white&amp;quot; | To separate !! style=&amp;quot;background-color:lightblue&amp;quot; | Blue !! style=&amp;quot;background-color:lightgreen&amp;quot; | Green !! style=&amp;quot;background-color:yellow&amp;quot; | Yellow !! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
| *R/B* | '''Use 'bounce''''&lt;br /&gt;
The sole difference is how much balls will rebound from objects. Well managed and constrained ricochets should allow a sorting action.&lt;br /&gt;
| *R/G* | '''Use mass or 'bounce''''&lt;br /&gt;
Green balls are not easily affected by a fan or a black hole, making it easier to sort from other balls. On the other hand, it also means it is very hard to precisely accelerate green, since the only components able to accelerate green is the bonk and the kitten.&amp;lt;br/&amp;gt;Green, like Blue, rebounds differently to Red.&lt;br /&gt;
| *R/Y* | ''See&amp;lt;br /&amp;gt;Y/B+G''&lt;br /&gt;
| *R/R* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:yellow&amp;quot; | Yellow&lt;br /&gt;
| *Y/B+G* colspan=2| '''All methods'''&lt;br /&gt;
Yellow, alone, exhibits high drag against any unforced motion.&amp;lt;br/&amp;gt;It is also unique in all other ways; e.g. can be levitated highest, against all other hues (though most profoundly against Green).&lt;br /&gt;
| *Y/Y* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *Y/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- R/Y-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightgreen&amp;quot; | Green&lt;br /&gt;
| *G/B* | '''Use mass'''&lt;br /&gt;
Green balls are only minimally affected by a fan.&amp;lt;br/&amp;gt;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).&lt;br /&gt;
| *G/G* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *G/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- Y/G-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
| *G/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/G&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightblue&amp;quot; | Blue&lt;br /&gt;
| *B/B* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *B/G* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See G/B&lt;br /&gt;
| *B/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See&amp;lt;br /&amp;gt;Y/B+G&lt;br /&gt;
| *B/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/B&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Finish transcribing the comic!}}&lt;br /&gt;
&lt;br /&gt;
:[The placeholder image shows four balls, colored red, green, yellow and blue, bouncing on top of three white blocks. Text in the center: &amp;quot;[visit xkcd.com to view]&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
:[In the game, colored balls fall out of rotating half-gears that spawn at random from the wall and/or ceiling while an opposite set of half-gears that spawn on the bottom (always) and sides (sometimes) rotate with a colored triangle pointing to that intersection of said set of gears. There is a button that says &amp;quot;view machine&amp;quot; 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. There is another button with a wrench which is a menu that gives you tools and decorations to move the balls to the set of gears with the colored corresponding triangle.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, intro popup]&lt;br /&gt;
:Cueball: Balls falling into your cell should be routed to the outputs at a steady rate.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, warning popup]&lt;br /&gt;
:Cueball: For security reasons, balls that remain in your device for more than 30 seconds will be removed and destroyed.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, submit popup]&lt;br /&gt;
:Cueball: Congratulations! Your contraption has passed all tests. Press [submit button] to submit it to be added to the machine!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
This comic was released four days after April 1st, even though April 1st fell on a regular Monday release day. Its status as an April Fool's Day comic was confirmed when Randall posted a [https://www.facebook.com/TheXKCD/posts/pfbid0Cs97awQZi1ZiaEXouAex9tXrwAS3qJV3RmAiuCq5uvZQwqZVMgDmcqJ7JU9LYodYl link to this comic] on his [https://www.facebook.com/TheXKCD Facebook feed], in which he explicitly described it as a late April Fools' release, removing any ambiguity about its intended classification. Similar delays have occurred for April Fools' comics since [[Garden]]. Randall acknowledges the contributors who assisted with this comic in a [[Header_text#Machine|comic-specific header text]]. With eleven additional contributors besides Randall, it is the xkcd comic with the most collaborators to date.&lt;br /&gt;
[[File:2916 Machine Facebook April fools' confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
Several hidden keyboard shortcuts have been identified:&lt;br /&gt;
* Follow balls: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt/Option&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;B&amp;lt;/kbd&amp;gt; (also accessible via the on-screen button)&lt;br /&gt;
* Show debug overlay: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Win/Cmd&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;D&amp;lt;/kbd&amp;gt;, though this may conflict with certain browser shortcuts such as Firefox’s &amp;quot;New Bookmark&amp;quot; dialog&lt;br /&gt;
* Delete selected item: &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; (or &amp;lt;kbd&amp;gt;Fn&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; on Mac)&lt;br /&gt;
The [https://github.com/xkcd/incredible source code] for the comic was released on GitHub on May 8, 2024. chromakode, one of the developers, also published a [https://chromakode.com/post/xkcd-machine/ blog post] describing the design and development process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Dynamic comics]]&lt;br /&gt;
[[Category:Comics with animation]] &lt;br /&gt;
[[Category:Interactive comics]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Knit Cap]]&lt;br /&gt;
[[Category:Characters with hats]]&lt;br /&gt;
[[Category:Squirrels]]&lt;br /&gt;
[[Category:Buns]]&lt;br /&gt;
[[Category:Cats]]&lt;br /&gt;
[[Category:Physics]]&lt;/div&gt;</summary>
		<author><name>Minecraftip</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=What_If%3F_10th_Anniversary_Edition&amp;diff=406174</id>
		<title>What If? 10th Anniversary Edition</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=What_If%3F_10th_Anniversary_Edition&amp;diff=406174"/>
				<updated>2026-02-13T16:22:06Z</updated>
		
		<summary type="html">&lt;p&gt;Minecraftip: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:''What If? 10th Anniversary Edition''}}{{book navigation}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;:''For other instances of this title, see [[What If (disambiguation)]].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{incomplete|Randall made a new book, you can use these resources to add info about the book: [https://xkcd.com/what-if/], [https://www.amazon.com/What-10th-Anniversary-Scientific-Hypothetical/dp/0063412640].}}&lt;br /&gt;
&lt;br /&gt;
Also, some of the annotations discuss what would happen if various numbers in the book were multiplied by 10, and some are updates.&lt;br /&gt;
&lt;br /&gt;
[[File:What If? 10th Anniversary Edition cover.jpeg|260px|right|thumb|The cover of the book]]&lt;br /&gt;
[[File:What If? 10th Anniversary Edition promotion.jpg|260px|right|thumb|One of the images [https://x.com/xkcd/status/1866942571521700203 promoting the book] on Randall's [[Twitter|X]] account.]]&lt;br /&gt;
[[File:What If? 10th Anniversary Edition promotion 2.jpg|260px|right|thumb|Another image [https://x.com/xkcd/status/1851714094300303468 promoting the book].]]&lt;br /&gt;
&lt;br /&gt;
==Cover transcript==&lt;br /&gt;
''Hey! Thanks for looking at my book. If you're thinking about buying it, here are some things you might want to know:''&lt;br /&gt;
&lt;br /&gt;
Humans can't digest the cellulose in paper, but if we could, eating this book would give you about 2,300 calories (including the cover).&lt;br /&gt;
&lt;br /&gt;
[A red “burst” shape:]&amp;lt;br&amp;gt;&lt;br /&gt;
Open other side&lt;br /&gt;
&lt;br /&gt;
This book can't stop most bullets; if you want to use it for armour, you may want a lot more than one copy.&lt;br /&gt;
&lt;br /&gt;
If you have a good arm, you could probably throw this book about 45 feet. With practice, it's possible to throw a book every 800 milliseconds, which means that if human attackers are sprinting towards you, you'll have three or four chances to hit them before they reach you. If, on the other hand, you're being attacked by a coyote, its higher top speed means you'll have only one chance to hit it. Aim carefully.&lt;br /&gt;
&lt;br /&gt;
[A red “burst” shape:]&amp;lt;br&amp;gt;&lt;br /&gt;
You have good close-up vision!&lt;br /&gt;
&lt;br /&gt;
''HIDDEN FEATURE: The inside of this book has words and pictures, plus a special UK foreword.'' It answers many important questions, including whether you could jump from a plane with a helium tank and inflate balloons fast enough to slow your fall and survive (yes) and whether you could hide from a supersonic windstorm in Finland (yes, but it won't help).&lt;br /&gt;
&lt;br /&gt;
[A red “burst” shape:]&amp;lt;br&amp;gt;&lt;br /&gt;
Now 100% antimatter free&lt;br /&gt;
{{:What If? chapters}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Books|What If? 3]]&lt;br /&gt;
[[Category:What If?| 4]]{{xkcdmeta}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''What If? 10th Anniversary Edition: Serious Scientific Answers to Absurd Hypothetical Questions: An Annotated and Illustrated 10th Anniversary Edition of a Masterpiece of Accessible Scientific Inquiry''''' is a book released by [[Randall Munroe]] on November 26th, 2024. The book series is based on ''[[what if? (blog)|what if?]]'', a blog hosted on [https://xkcd.com xkcd.com] and written by [[Randall Munroe]] with entries posted occasionally.&lt;br /&gt;
&lt;br /&gt;
For a complete list of the articles contained in the book, see [[What If? chapters|''What If?'' chapters]]. This list can also be found in the [https://what-if.xkcd.com/archive/ archive section] on the [[what if? (blog)|''what if?'' blog]].&lt;/div&gt;</summary>
		<author><name>Minecraftip</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=What_If%3F_10th_Anniversary_Edition&amp;diff=406173</id>
		<title>What If? 10th Anniversary Edition</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=What_If%3F_10th_Anniversary_Edition&amp;diff=406173"/>
				<updated>2026-02-13T16:16:53Z</updated>
		
		<summary type="html">&lt;p&gt;Minecraftip: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:''What If? 10th Anniversary Edition''}}{{book navigation}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;:''For other instances of this title, see [[What If (disambiguation)]].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{incomplete|Randall made a new book, you can use these resources to add info about the book: [https://xkcd.com/what-if/], [https://www.amazon.com/What-10th-Anniversary-Scientific-Hypothetical/dp/0063412640].}}&lt;br /&gt;
&lt;br /&gt;
[[File:What If? 10th Anniversary Edition cover.jpeg|260px|right|thumb|The cover of the book]]&lt;br /&gt;
[[File:What If? 10th Anniversary Edition promotion.jpg|260px|right|thumb|One of the images [https://x.com/xkcd/status/1866942571521700203 promoting the book] on Randall's [[Twitter|X]] account.]]&lt;br /&gt;
[[File:What If? 10th Anniversary Edition promotion 2.jpg|260px|right|thumb|Another image [https://x.com/xkcd/status/1851714094300303468 promoting the book].]]&lt;br /&gt;
&lt;br /&gt;
'''''What If? 10th Anniversary Edition: Serious Scientific Answers to Absurd Hypothetical Questions: An Annotated and Illustrated 10th Anniversary Edition of a Masterpiece of Accessible Scientific Inquiry''''' is a book released by [[Randall Munroe]] on November 26th, 2024. The book series is based on ''[[what if? (blog)|what if?]]'', a blog hosted on [https://xkcd.com xkcd.com] and written by [[Randall Munroe]] with entries posted occasionally.&lt;br /&gt;
&lt;br /&gt;
For a complete list of the articles contained in the book, see [[What If? chapters|''What If?'' chapters]]. This list can also be found in the [https://what-if.xkcd.com/archive/ archive section] on the [[what if? (blog)|''what if?'' blog]].&lt;br /&gt;
&lt;br /&gt;
Also, some of the annotations discuss what would happen if various numbers in the book were multiplied by 10, and some are updates.&lt;br /&gt;
&lt;br /&gt;
==Cover transcript==&lt;br /&gt;
''Hey! Thanks for looking at my book. If you're thinking about buying it, here are some things you might want to know:''&lt;br /&gt;
&lt;br /&gt;
Humans can't digest the cellulose in paper, but if we could, eating this book would give you about 2,300 calories (including the cover).&lt;br /&gt;
&lt;br /&gt;
[A red “burst” shape:]&amp;lt;br&amp;gt;&lt;br /&gt;
Open other side&lt;br /&gt;
&lt;br /&gt;
This book can't stop most bullets; if you want to use it for armour, you may want a lot more than one copy.&lt;br /&gt;
&lt;br /&gt;
If you have a good arm, you could probably throw this book about 45 feet. With practice, it's possible to throw a book every 800 milliseconds, which means that if human attackers are sprinting towards you, you'll have three or four chances to hit them before they reach you. If, on the other hand, you're being attacked by a coyote, its higher top speed means you'll have only one chance to hit it. Aim carefully.&lt;br /&gt;
&lt;br /&gt;
[A red “burst” shape:]&amp;lt;br&amp;gt;&lt;br /&gt;
You have good close-up vision!&lt;br /&gt;
&lt;br /&gt;
''HIDDEN FEATURE: The inside of this book has words and pictures, plus a special UK foreword.'' It answers many important questions, including whether you could jump from a plane with a helium tank and inflate balloons fast enough to slow your fall and survive (yes) and whether you could hide from a supersonic windstorm in Finland (yes, but it won't help).&lt;br /&gt;
&lt;br /&gt;
[A red “burst” shape:]&amp;lt;br&amp;gt;&lt;br /&gt;
Now 100% antimatter free&lt;br /&gt;
{{:What If? chapters}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Books|What If? 3]]&lt;br /&gt;
[[Category:What If?| 4]]{{xkcdmeta}}&lt;/div&gt;</summary>
		<author><name>Minecraftip</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=404879</id>
		<title>2916: Machine</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=404879"/>
				<updated>2026-02-04T00:02:21Z</updated>
		
		<summary type="html">&lt;p&gt;Minecraftip: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2916&lt;br /&gt;
| date      = April 5, 2024&lt;br /&gt;
| title     = Machine&lt;br /&gt;
| image     = machine_2x.png&lt;br /&gt;
| imagesize = 740x740px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = The Credible Machine&lt;br /&gt;
}}&lt;br /&gt;
{{series&lt;br /&gt;
| series        = April&lt;br /&gt;
| number        = 16&lt;br /&gt;
| date          = April 5, 2024&lt;br /&gt;
| days_late     = 4&lt;br /&gt;
| day_category  = Friday&lt;br /&gt;
| prev_title    = 2765: Escape Speed&lt;br /&gt;
| prev_date     = April 19, 2023&lt;br /&gt;
| next_title    = 3074: Push Notifications&lt;br /&gt;
| next_date     = April 9, 2025&lt;br /&gt;
| extra_text    = [[#Trivia|Learn why this comic was released late]].&lt;br /&gt;
}}&lt;br /&gt;
{{TOC}}To experience the interactivity of the game, visit the {{xkcd|2916|original comic}}!&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need to complete the explanations for the items.}}&lt;br /&gt;
&lt;br /&gt;
The comic starts in a main screen where the user can create a {{w|Rube Goldberg machine}} in a &amp;quot;Cell&amp;quot; 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&amp;lt;!-- that sort marbles by color SEEM TO 'RANDOMLY' REFRACT/DEFLECT, IF SORTING IS TRUE THEN EXPLAIN IN NEW/RELOCATED SECTION? --&amp;gt; (which deflect marbles) and fans (which blow marbles around), plus decorative elements which have no effect on the balls.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;under construction&amp;quot;, 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.&lt;br /&gt;
&lt;br /&gt;
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. [https://www.reddit.com/user/xzaphenia/comments/ 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 [https://www.reddit.com/r/xkcd/comments/1c1ixmb/comment/kzc3rmg/ 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 [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ coolness, innovativeness, effectiveness], and [https://www.reddit.com/r/xkcd/comments/1c0bsk2/comment/kyvfean/ 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. [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ It is also claimed that at some point, moderation will be cut off and the machine will be considered &amp;quot;complete&amp;quot;]; since the number of modules in the machine has not changed for more than a year now, it is very likely that this has already happened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=&amp;quot;200&amp;quot; widths=&amp;quot;150&amp;quot;&amp;gt;&lt;br /&gt;
File:2916_popup_intro.png|Introduction popup&lt;br /&gt;
File:2916_popup_time.png|Time limit popup&lt;br /&gt;
File:2916_popup_submit.png|Submission popup&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;UNDER CONSTRUCTION&amp;quot; as well as &amp;quot;DJIA ↑ 31415&amp;quot; once in each cell. &amp;quot;DJIA&amp;quot; stands for the Dow Jones Industrial Average, with &amp;quot;DJIA ↑ 31415&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 (&amp;quot;''##''/100&amp;quot;), which will go away again if you delete items to bring it below this count. The count text turns red at &amp;quot;100/100&amp;quot;, at which point no more items can be added, only existing ones moved (or removed, to lower the count again).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Machine&amp;quot; had been updated multiple times in the weeks following its initial release, adding the following features:&lt;br /&gt;
* the trophy and shot glass props&lt;br /&gt;
* the cat, which swats balls in front of it&lt;br /&gt;
* the inanimate kitten and bun decorations&lt;br /&gt;
* 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)&lt;br /&gt;
* a button to follow a nearby ball as it traverses through the machine, also preventing it from despawning&lt;br /&gt;
&lt;br /&gt;
As referenced in the title text, this game is a spiritual successor to the 1990s and early 2000s PC puzzle game series {{w|The Incredible Machine}}, a game Randall played as a kid. Both games have several objects in common:&lt;br /&gt;
* fan&lt;br /&gt;
* cat&lt;br /&gt;
* ramps&lt;br /&gt;
* balls of varying densities&lt;br /&gt;
&lt;br /&gt;
===Toolbox items===&lt;br /&gt;
====Tangible items====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=margin:auto&amp;quot;&lt;br /&gt;
! Image&lt;br /&gt;
! Item !! Explanation &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_plank.png|frameless|upright=0.25]]&lt;br /&gt;
| Plank || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_hammer.png|frameless|upright=0.25]]&lt;br /&gt;
| Hammer || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_sword.png|frameless|upright=0.25]]&lt;br /&gt;
| Sword || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_scoop.png|frameless|upright=0.25]]&amp;lt;br&amp;gt;[[File:2916_scoop_mirrored.png|frameless|upright=0.25]]&lt;br /&gt;
| Hinged scoop || It rotates around its hinge and tries to remain horizontal, with a spring-like effect. The hinged scoops are strictly horizontal when placed on the building. They rotate away from — and spring back to — the horizontal position in response to interactions with balls or other non-decorative items that may disturb their balance. These disturbances can sometimes lead to further interesting interactions, which may or may not be intentional or useful.&lt;br /&gt;
Along with the triangular Bumpers, they are the only class of objects with a clear and practical asymmetry, for which a mirrored chirality can be selected from the sidebar.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_anvil.png|frameless|upright=0.125]]&lt;br /&gt;
| Anvil || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_brick.png|frameless|upright=0.125]]&lt;br /&gt;
| Brick || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_fan.png|frameless|upright=0.125]]&lt;br /&gt;
| Fan || Blows away balls in front of it. Can be rotated 360 degrees. Different colors are affected by differing amounts (yellow balls are lightest, and can be levitated above an upward-facing fan). If a ball hits a blade of a fan, especially from the side, the bounce is larger than normal. If you put a fan interlocking with a wheel it might eventually freeze your machine.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_pillow.png|frameless|upright=0.125]]&lt;br /&gt;
| Pillow || Balls bounce less if they hit it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_round_bumper.png|frameless|upright=0.125]] [[File:2916_bumper_left.png|frameless|upright=0.125]] [[File:2916_bumper_right.png|frameless|upright=0.125]]&lt;br /&gt;
| Bumper || Bounces balls away at significantly higher speed. Together with the Hinged scoop, they are the only object class with a clear and practical asymmetry, for which a mirrored chirality can be chosen from the sidebar. &lt;br /&gt;
|-&lt;br /&gt;
|| [[File:2916_attractor.png|frameless|upright=0.125]]&lt;br /&gt;
| Attractor/Black hole || It pulls balls towards its center. The Attractor is omnidirectional, but the area of effect can be resized to extend or restrict its influence. You do this via extending 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.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_repulsor.png|frameless|upright=0.125]]&lt;br /&gt;
| Repulsor/White hole || It repels balls away from center. Like the Attractor, it is omnidirectional and can be resized. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_prism.png|frameless|upright=0.125]]&lt;br /&gt;
| Prism || &amp;quot;Refracts&amp;quot; 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.&amp;lt;!-- Benefit of the doubt, but it hasn't seemed to work that well for me, either. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_wheel.png|frameless|upright=0.125]]&lt;br /&gt;
| Wheel || Spins, deflects balls, can jam with enough resistance (e.g. glut of balls or against other elements). It actively rotates and 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 {{w|wagon-wheel effect}} occurs&amp;lt;!-- does it depend upon browser rendering frequency, or is there a convenient refresh-cap-rate built into the rendering engine? --&amp;gt;, 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. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_trophy.png|frameless|upright=0.125]]&lt;br /&gt;
| &amp;quot;Good job&amp;quot; trophy (Called &amp;quot;stand&amp;quot; in assets)|| This object is a static obstacle. Any ball can rest on the top of a trophy. This feature was probably added on purpose.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cup.png|frameless|upright=0.125]]&lt;br /&gt;
| Glass cup || This object is a static obstacle. Container, with a nominal capacity of up to four balls (in whole or in part) within it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat_new.png|frameless|upright=0.25]]&lt;br /&gt;
| Cat || Swats away balls in front of itself (was added later). Balls can get stuck on top of the cat or between the cat's head and tail. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Intangible decorations====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin: auto; float: right&amp;quot;&lt;br /&gt;
! Image !! Transcript &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_ponytail_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_ponytail.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_cueball_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing Cueball, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_whitehat.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing White Hat, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap_resting.png|frameless|upright=0.25]]&lt;br /&gt;
| Rightwards-facing Knit Cap, in an 'action' pose &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Knit Cap, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_helmet.png|frameless|upright=0.125]]&lt;br /&gt;
| Helmet-wearing figure, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_squirrel.png|frameless|upright=0.125]]&lt;br /&gt;
| Squirrel &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_deterministic.png|frameless|upright=0.25]]&lt;br /&gt;
| &amp;quot;Probably Deterministic&amp;quot; sign &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_rabbit.png|frameless|upright=0.125]]&lt;br /&gt;
| [[1682: Bun|Bun]] &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat.png|frameless|upright=0.125]]&lt;br /&gt;
| Cat &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Rotation may be limited by the {{w|minimum bounding box}} that is the 'selection box', this is not necessarily the more flush {{w|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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 indirectly nudge balls by carefully moving a tangible object's surface into them (or holding them within it, e.g. the &amp;quot;cup&amp;quot;). 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 submitted.&lt;br /&gt;
&lt;br /&gt;
====Non-player items====&lt;br /&gt;
{|&lt;br /&gt;
|[[File:2916_container_red.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_yellow.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_blue.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_green.png|thumb|center|80px]]&lt;br /&gt;
|}&lt;br /&gt;
Ball containers at the bottom of the machine.&lt;br /&gt;
&lt;br /&gt;
[[File:4d425c.png|thumb|left|250px|Cueball and Megan in the ''USS Buoyancy.]]&lt;br /&gt;
&lt;br /&gt;
[[File:2916_pit_bottom.png|thumb|left|400px|Pit below the ''USS Buoyancy''.]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Color routing ===&lt;br /&gt;
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:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Color&lt;br /&gt;
! Mass&lt;br /&gt;
! Density&lt;br /&gt;
! Restitution (bounciness)&lt;br /&gt;
! Linear damping (drag)&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;00F&amp;quot; | Blue&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;F00&amp;quot; | Red&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0.8&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;0F0&amp;quot; | Green&lt;br /&gt;
| 0.75&lt;br /&gt;
| 9.325&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;FF0&amp;quot; | Yellow&lt;br /&gt;
| 0.024&lt;br /&gt;
| 0.3&lt;br /&gt;
| 0.6&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;catch&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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 {{w|Proton pack#Crossing the streams|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.&lt;br /&gt;
&lt;br /&gt;
In order to maintain sufficient correct arrivals at exits&amp;lt;!-- and, I believe, sufficiently few ''wrong'' arrivals... does it enumerate the 'net correct delivery rate' to establish the validity of the output? ...needs more research --&amp;gt;, it may be necessary to add a method of filtering the hues.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This may not be the most efficient depiction (with just four/less 'core methods', after following &amp;quot;See X/Y&amp;quot;s) but if the Prism or some other item actually adds zignificantly practical pre-&amp;quot;See&amp;quot; differences then the all-vs-all format (with the reversals/same-to-sames still there to be abbreviated/redirected) will come into its own.&lt;br /&gt;
If you so wish, redo. e.g. as &amp;quot;;header + :paragraph&amp;quot;s or table of &amp;quot;!Combo(s)!!Methodology&amp;quot;&lt;br /&gt;
NB:&lt;br /&gt;
  1x ! Row-start Style=                                                 | Row-start 'header'&lt;br /&gt;
  4x | *Unwikiparsable key just for editors' benefit* + optional Style= | Contents&lt;br /&gt;
...right now, I've mostly added &amp;quot;vertical fan&amp;quot; experiences (which I find useful for all but R/B differentiation), but more about bumpers (including fan-/wheel-collisions), the positive/negative 'force objects' and of course horizontal/angled fans could also be added.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:black; color:white&amp;quot; | To separate !! style=&amp;quot;background-color:lightblue&amp;quot; | Blue !! style=&amp;quot;background-color:lightgreen&amp;quot; | Green !! style=&amp;quot;background-color:yellow&amp;quot; | Yellow !! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
| *R/B* | '''Use 'bounce''''&lt;br /&gt;
The sole difference is how much balls will rebound from objects. Well managed and constrained ricochets should allow a sorting action.&lt;br /&gt;
| *R/G* | '''Use mass or 'bounce''''&lt;br /&gt;
Green balls are not easily affected by a fan or a black hole, making it easier to sort from other balls. On the other hand, it also means it is very hard to precisely accelerate green, since the only components able to accelerate green is the bonk and the kitten.&amp;lt;br/&amp;gt;Green, like Blue, rebounds differently to Red.&lt;br /&gt;
| *R/Y* | ''See&amp;lt;br /&amp;gt;Y/B+G''&lt;br /&gt;
| *R/R* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:yellow&amp;quot; | Yellow&lt;br /&gt;
| *Y/B+G* colspan=2| '''All methods'''&lt;br /&gt;
Yellow, alone, exhibits high drag against any unforced motion.&amp;lt;br/&amp;gt;It is also unique in all other ways; e.g. can be levitated highest, against all other hues (though most profoundly against Green).&lt;br /&gt;
| *Y/Y* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *Y/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- R/Y-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightgreen&amp;quot; | Green&lt;br /&gt;
| *G/B* | '''Use mass'''&lt;br /&gt;
Green balls are only minimally affected by a fan.&amp;lt;br/&amp;gt;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).&lt;br /&gt;
| *G/G* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *G/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- Y/G-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
| *G/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/G&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightblue&amp;quot; | Blue&lt;br /&gt;
| *B/B* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *B/G* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See G/B&lt;br /&gt;
| *B/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See&amp;lt;br /&amp;gt;Y/B+G&lt;br /&gt;
| *B/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/B&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Finish transcribing the comic!}}&lt;br /&gt;
&lt;br /&gt;
:[The placeholder image shows four balls, colored red, green, yellow and blue, bouncing on top of three white blocks. Text in the center: &amp;quot;[visit xkcd.com to view]&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
:[In the game, colored balls fall out of rotating half-gears that spawn at random from the wall and/or ceiling while an opposite set of half-gears that spawn on the bottom (always) and sides (sometimes) rotate with a colored triangle pointing to that intersection of said set of gears. There is a button that says &amp;quot;view machine&amp;quot; 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. There is another button with a wrench which is a menu that gives you tools and decorations to move the balls to the set of gears with the colored corresponding triangle.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, intro popup]&lt;br /&gt;
:Cueball: Balls falling into your cell should be routed to the outputs at a steady rate.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, warning popup]&lt;br /&gt;
:Cueball: For security reasons, balls that remain in your device for more than 30 seconds will be removed and destroyed.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, submit popup]&lt;br /&gt;
:Cueball: Congratulations! Your contraption has passed all tests. Press [submit button] to submit it to be added to the machine!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
This comic was released four days after April 1st, even though April 1st fell on a regular Monday release day. Its status as an April Fool's Day comic was confirmed when Randall posted a [https://www.facebook.com/TheXKCD/posts/pfbid0Cs97awQZi1ZiaEXouAex9tXrwAS3qJV3RmAiuCq5uvZQwqZVMgDmcqJ7JU9LYodYl link to this comic] on his [https://www.facebook.com/TheXKCD Facebook feed], in which he explicitly described it as a late April Fools' release, removing any ambiguity about its intended classification. Similar delays have occurred for April Fools' comics since [[Garden]]. Randall acknowledges the contributors who assisted with this comic in a [[Header_text#Machine|comic-specific header text]]. With eleven additional contributors besides Randall, it is the xkcd comic with the most collaborators to date.&lt;br /&gt;
[[File:2916 Machine Facebook April fools' confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
Several hidden keyboard shortcuts have been identified:&lt;br /&gt;
* Follow balls: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt/Option&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;B&amp;lt;/kbd&amp;gt; (also accessible via the on-screen button)&lt;br /&gt;
* Show debug overlay: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Win/Cmd&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;D&amp;lt;/kbd&amp;gt;, though this may conflict with certain browser shortcuts such as Firefox’s &amp;quot;New Bookmark&amp;quot; dialog&lt;br /&gt;
* Delete selected item: &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; (or &amp;lt;kbd&amp;gt;Fn&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; on Mac)&lt;br /&gt;
The [https://github.com/xkcd/incredible source code] for the comic was released on GitHub on May 8, 2024. chromakode, one of the developers, also published a [https://chromakode.com/post/xkcd-machine/ blog post] describing the design and development process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Dynamic comics]]&lt;br /&gt;
[[Category:Comics with animation]] &lt;br /&gt;
[[Category:Interactive comics]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Knit Cap]]&lt;br /&gt;
[[Category:Characters with hats]]&lt;br /&gt;
[[Category:Squirrels]]&lt;br /&gt;
[[Category:Buns]]&lt;br /&gt;
[[Category:Cats]]&lt;br /&gt;
[[Category:Physics]]&lt;/div&gt;</summary>
		<author><name>Minecraftip</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=404669</id>
		<title>2916: Machine</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=404669"/>
				<updated>2026-01-31T17:13:06Z</updated>
		
		<summary type="html">&lt;p&gt;Minecraftip: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2916&lt;br /&gt;
| date      = April 5, 2024&lt;br /&gt;
| title     = Machine&lt;br /&gt;
| image     = machine_2x.png&lt;br /&gt;
| imagesize = 740x740px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = The Credible Machine&lt;br /&gt;
}}&lt;br /&gt;
{{series&lt;br /&gt;
| series        = April&lt;br /&gt;
| number        = 15&lt;br /&gt;
| date          = April 5, 2024&lt;br /&gt;
| days_late     = 4&lt;br /&gt;
| day_category  = Friday&lt;br /&gt;
| prev_title    = 2765: Escape Speed&lt;br /&gt;
| prev_date     = April 19, 2023&lt;br /&gt;
| next_title    = 3074: Push Notifications&lt;br /&gt;
| next_date     = April 9, 2025&lt;br /&gt;
| extra_text    = [[#Trivia|Learn why this comic was released late]].&lt;br /&gt;
}}&lt;br /&gt;
{{TOC}}To experience the interactivity of the game, visit the {{xkcd|2916|original comic}}!&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need to complete the explanations for the items.}}&lt;br /&gt;
&lt;br /&gt;
The comic starts in a main screen where the user can create a {{w|Rube Goldberg machine}} in a &amp;quot;Cell&amp;quot; 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&amp;lt;!-- that sort marbles by color SEEM TO 'RANDOMLY' REFRACT/DEFLECT, IF SORTING IS TRUE THEN EXPLAIN IN NEW/RELOCATED SECTION? --&amp;gt; (which deflect marbles) and fans (which blow marbles around), plus decorative elements which have no effect on the balls.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;under construction&amp;quot;, 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.&lt;br /&gt;
&lt;br /&gt;
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. [https://www.reddit.com/user/xzaphenia/comments/ 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 [https://www.reddit.com/r/xkcd/comments/1c1ixmb/comment/kzc3rmg/ 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 [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ coolness, innovativeness, effectiveness], and [https://www.reddit.com/r/xkcd/comments/1c0bsk2/comment/kyvfean/ 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. [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ It is also claimed that at some point, moderation will be cut off and the machine will be considered &amp;quot;complete&amp;quot;]; since the number of modules in the machine has not changed for more than a year now, it is very likely that this has already happened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=&amp;quot;200&amp;quot; widths=&amp;quot;150&amp;quot;&amp;gt;&lt;br /&gt;
File:2916_popup_intro.png|Introduction popup&lt;br /&gt;
File:2916_popup_time.png|Time limit popup&lt;br /&gt;
File:2916_popup_submit.png|Submission popup&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;UNDER CONSTRUCTION&amp;quot; as well as &amp;quot;DJIA ↑ 31415&amp;quot; once in each cell. &amp;quot;DJIA&amp;quot; stands for the Dow Jones Industrial Average, with &amp;quot;DJIA ↑ 31415&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 (&amp;quot;''##''/100&amp;quot;), which will go away again if you delete items to bring it below this count. The count text turns red at &amp;quot;100/100&amp;quot;, at which point no more items can be added, only existing ones moved (or removed, to lower the count again).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Machine&amp;quot; had been updated multiple times in the weeks following its initial release, adding the following features:&lt;br /&gt;
* the trophy and shot glass props&lt;br /&gt;
* the cat, which swats balls in front of it&lt;br /&gt;
* the inanimate kitten and bun decorations&lt;br /&gt;
* 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)&lt;br /&gt;
* a button to follow a nearby ball as it traverses through the machine, also preventing it from despawning&lt;br /&gt;
&lt;br /&gt;
As referenced in the title text, this game is a spiritual successor to the 1990s and early 2000s PC puzzle game series {{w|The Incredible Machine}}, a game Randall played as a kid. Both games have several objects in common:&lt;br /&gt;
* fan&lt;br /&gt;
* cat&lt;br /&gt;
* ramps&lt;br /&gt;
* balls of varying densities&lt;br /&gt;
&lt;br /&gt;
===Toolbox items===&lt;br /&gt;
====Tangible items====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=margin:auto&amp;quot;&lt;br /&gt;
! Image&lt;br /&gt;
! Item !! Explanation &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_plank.png|frameless|upright=0.25]]&lt;br /&gt;
| Plank || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_hammer.png|frameless|upright=0.25]]&lt;br /&gt;
| Hammer || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_sword.png|frameless|upright=0.25]]&lt;br /&gt;
| Sword || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_scoop.png|frameless|upright=0.25]]&amp;lt;br&amp;gt;[[File:2916_scoop_mirrored.png|frameless|upright=0.25]]&lt;br /&gt;
| Hinged scoop || It rotates around its hinge and tries to remain horizontal, with a spring-like effect. The hinged scoops are strictly horizontal when placed on the building. They rotate away from — and spring back to — the horizontal position in response to interactions with balls or other non-decorative items that may disturb their balance. These disturbances can sometimes lead to further interesting interactions, which may or may not be intentional or useful.&lt;br /&gt;
Along with the triangular Bumpers, they are the only class of objects with a clear and practical asymmetry, for which a mirrored chirality can be selected from the sidebar.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_anvil.png|frameless|upright=0.125]]&lt;br /&gt;
| Anvil || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_brick.png|frameless|upright=0.125]]&lt;br /&gt;
| Brick || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_fan.png|frameless|upright=0.125]]&lt;br /&gt;
| Fan || Blows away balls in front of it. Can be rotated 360 degrees. Different colors are affected by differing amounts (yellow balls are lightest, and can be levitated above an upward-facing fan). If a ball hits a blade of a fan, especially from the side, the bounce is larger than normal. If you put a fan interlocking with a wheel it might eventually freeze your machine.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_pillow.png|frameless|upright=0.125]]&lt;br /&gt;
| Pillow || Balls bounce less if they hit it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_round_bumper.png|frameless|upright=0.125]] [[File:2916_bumper_left.png|frameless|upright=0.125]] [[File:2916_bumper_right.png|frameless|upright=0.125]]&lt;br /&gt;
| Bumper || Bounces balls away at significantly higher speed. Together with the Hinged scoop, they are the only object class with a clear and practical asymmetry, for which a mirrored chirality can be chosen from the sidebar. &lt;br /&gt;
|-&lt;br /&gt;
|| [[File:2916_attractor.png|frameless|upright=0.125]]&lt;br /&gt;
| Attractor/Black hole || It pulls balls towards its center. The Attractor is omnidirectional, but the area of effect can be resized to extend or restrict its influence. You do this via extending 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.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_repulsor.png|frameless|upright=0.125]]&lt;br /&gt;
| Repulsor/White hole || It repels balls away from center. Like the Attractor, it is omnidirectional and can be resized. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_prism.png|frameless|upright=0.125]]&lt;br /&gt;
| Prism || &amp;quot;Refracts&amp;quot; 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.&amp;lt;!-- Benefit of the doubt, but it hasn't seemed to work that well for me, either. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_wheel.png|frameless|upright=0.125]]&lt;br /&gt;
| Wheel || Spins, deflects balls, can jam with enough resistance (e.g. glut of balls or against other elements). It actively rotates and 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 {{w|wagon-wheel effect}} occurs&amp;lt;!-- does it depend upon browser rendering frequency, or is there a convenient refresh-cap-rate built into the rendering engine? --&amp;gt;, 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. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_trophy.png|frameless|upright=0.125]]&lt;br /&gt;
| &amp;quot;Good job&amp;quot; trophy (Called &amp;quot;stand&amp;quot; in assets)|| This object is a static obstacle. Any ball can rest on the top of a trophy. This feature was probably added on purpose.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cup.png|frameless|upright=0.125]]&lt;br /&gt;
| Glass cup || This object is a static obstacle. Container, with a nominal capacity of up to four balls (in whole or in part) within it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat_new.png|frameless|upright=0.25]]&lt;br /&gt;
| Cat || Swats away balls in front of itself (was added later). Balls can get stuck on top of the cat or between the cat's head and tail. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Intangible decorations====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin: auto; float: right&amp;quot;&lt;br /&gt;
! Image !! Transcript &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_ponytail_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_ponytail.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_cueball_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing Cueball, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_whitehat.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing White Hat, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap_resting.png|frameless|upright=0.25]]&lt;br /&gt;
| Rightwards-facing Knit Cap, in an 'action' pose &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Knit Cap, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_helmet.png|frameless|upright=0.125]]&lt;br /&gt;
| Helmet-wearing figure, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_squirrel.png|frameless|upright=0.125]]&lt;br /&gt;
| Squirrel &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_deterministic.png|frameless|upright=0.25]]&lt;br /&gt;
| &amp;quot;Probably Deterministic&amp;quot; sign &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_rabbit.png|frameless|upright=0.125]]&lt;br /&gt;
| [[1682: Bun|Bun]] &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat.png|frameless|upright=0.125]]&lt;br /&gt;
| Cat &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Rotation may be limited by the {{w|minimum bounding box}} that is the 'selection box', this is not necessarily the more flush {{w|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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 indirectly nudge balls by carefully moving a tangible object's surface into them (or holding them within it, e.g. the &amp;quot;cup&amp;quot;). 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 submitted.&lt;br /&gt;
&lt;br /&gt;
====Non-player items====&lt;br /&gt;
{|&lt;br /&gt;
|[[File:2916_container_red.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_yellow.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_blue.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_green.png|thumb|center|80px]]&lt;br /&gt;
|}&lt;br /&gt;
Ball containers at the bottom of the machine.&lt;br /&gt;
&lt;br /&gt;
[[File:4d425c.png|thumb|left|250px|Cueball and Megan in the ''USS Buoyancy.]]&lt;br /&gt;
&lt;br /&gt;
[[File:2916_pit_bottom.png|thumb|left|400px|Pit below the ''USS Buoyancy''.]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Color routing ===&lt;br /&gt;
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:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Color&lt;br /&gt;
! Mass&lt;br /&gt;
! Density&lt;br /&gt;
! Restitution (bounciness)&lt;br /&gt;
! Linear damping (drag)&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;00F&amp;quot; | Blue&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;F00&amp;quot; | Red&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0.8&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;0F0&amp;quot; | Green&lt;br /&gt;
| 0.75&lt;br /&gt;
| 9.325&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;FF0&amp;quot; | Yellow&lt;br /&gt;
| 0.024&lt;br /&gt;
| 0.3&lt;br /&gt;
| 0.6&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;catch&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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 {{w|Proton pack#Crossing the streams|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.&lt;br /&gt;
&lt;br /&gt;
In order to maintain sufficient correct arrivals at exits&amp;lt;!-- and, I believe, sufficiently few ''wrong'' arrivals... does it enumerate the 'net correct delivery rate' to establish the validity of the output? ...needs more research --&amp;gt;, it may be necessary to add a method of filtering the hues.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This may not be the most efficient depiction (with just four/less 'core methods', after following &amp;quot;See X/Y&amp;quot;s) but if the Prism or some other item actually adds zignificantly practical pre-&amp;quot;See&amp;quot; differences then the all-vs-all format (with the reversals/same-to-sames still there to be abbreviated/redirected) will come into its own.&lt;br /&gt;
If you so wish, redo. e.g. as &amp;quot;;header + :paragraph&amp;quot;s or table of &amp;quot;!Combo(s)!!Methodology&amp;quot;&lt;br /&gt;
NB:&lt;br /&gt;
  1x ! Row-start Style=                                                 | Row-start 'header'&lt;br /&gt;
  4x | *Unwikiparsable key just for editors' benefit* + optional Style= | Contents&lt;br /&gt;
...right now, I've mostly added &amp;quot;vertical fan&amp;quot; experiences (which I find useful for all but R/B differentiation), but more about bumpers (including fan-/wheel-collisions), the positive/negative 'force objects' and of course horizontal/angled fans could also be added.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:black; color:white&amp;quot; | To separate !! style=&amp;quot;background-color:lightblue&amp;quot; | Blue !! style=&amp;quot;background-color:lightgreen&amp;quot; | Green !! style=&amp;quot;background-color:yellow&amp;quot; | Yellow !! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
| *R/B* | '''Use 'bounce''''&lt;br /&gt;
The sole difference is how much balls will rebound from objects. Well managed and constrained ricochets should allow a sorting action.&lt;br /&gt;
| *R/G* | '''Use mass or 'bounce''''&lt;br /&gt;
Green balls are not easily affected by a fan or a black hole, making it easier to sort from other balls. On the other hand, it also means it is very hard to precisely accelerate green, since the only components able to accelerate green is the bonk and the kitten.&amp;lt;br/&amp;gt;Green, like Blue, rebounds differently to Red.&lt;br /&gt;
| *R/Y* | ''See&amp;lt;br /&amp;gt;Y/B+G''&lt;br /&gt;
| *R/R* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:yellow&amp;quot; | Yellow&lt;br /&gt;
| *Y/B+G* colspan=2| '''All methods'''&lt;br /&gt;
Yellow, alone, exhibits high drag against any unforced motion.&amp;lt;br/&amp;gt;It is also unique in all other ways; e.g. can be levitated highest, against all other hues (though most profoundly against Green).&lt;br /&gt;
| *Y/Y* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *Y/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- R/Y-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightgreen&amp;quot; | Green&lt;br /&gt;
| *G/B* | '''Use mass'''&lt;br /&gt;
Green balls are only minimally affected by a fan.&amp;lt;br/&amp;gt;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).&lt;br /&gt;
| *G/G* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *G/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- Y/G-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
| *G/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/G&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightblue&amp;quot; | Blue&lt;br /&gt;
| *B/B* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *B/G* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See G/B&lt;br /&gt;
| *B/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See&amp;lt;br /&amp;gt;Y/B+G&lt;br /&gt;
| *B/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/B&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Finish transcribing the comic!}}&lt;br /&gt;
&lt;br /&gt;
:[The placeholder image shows four balls, colored red, green, yellow and blue, bouncing on top of three white blocks. Text in the center: &amp;quot;[visit xkcd.com to view]&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
:[In the game, colored balls fall out of rotating half-gears that spawn at random from the wall and/or ceiling while an opposite set of half-gears that spawn on the bottom (always) and sides (sometimes) rotate with a colored triangle pointing to that intersection of said set of gears. There is a button that says &amp;quot;view machine&amp;quot; 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. There is another button with a wrench which is a menu that gives you tools and decorations to move the balls to the set of gears with the colored corresponding triangle.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, intro popup]&lt;br /&gt;
:Cueball: Balls falling into your cell should be routed to the outputs at a steady rate.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, warning popup]&lt;br /&gt;
:Cueball: For security reasons, balls that remain in your device for more than 30 seconds will be removed and destroyed.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, submit popup]&lt;br /&gt;
:Cueball: Congratulations! Your contraption has passed all tests. Press [submit button] to submit it to be added to the machine!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
This comic was released four days after April 1st, even though April 1st fell on a regular Monday release day. Its status as an April Fool's Day comic was confirmed when Randall posted a [https://www.facebook.com/TheXKCD/posts/pfbid0Cs97awQZi1ZiaEXouAex9tXrwAS3qJV3RmAiuCq5uvZQwqZVMgDmcqJ7JU9LYodYl link to this comic] on his [https://www.facebook.com/TheXKCD Facebook feed], in which he explicitly described it as a late April Fools' release, removing any ambiguity about its intended classification. Similar delays have occurred for April Fools' comics since [[Garden]]. Randall acknowledges the contributors who assisted with this comic in a [[Header_text#Machine|comic-specific header text]]. With eleven additional contributors besides Randall, it is the xkcd comic with the most collaborators to date.&lt;br /&gt;
[[File:2916 Machine Facebook April fools' confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
Several hidden keyboard shortcuts have been identified:&lt;br /&gt;
* Follow balls: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt/Option&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;B&amp;lt;/kbd&amp;gt; (also accessible via the on-screen button)&lt;br /&gt;
* Show debug overlay: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Win/Cmd&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;D&amp;lt;/kbd&amp;gt;, though this may conflict with certain browser shortcuts such as Firefox’s &amp;quot;New Bookmark&amp;quot; dialog&lt;br /&gt;
* Delete selected item: &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; (or &amp;lt;kbd&amp;gt;Fn&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; on Mac)&lt;br /&gt;
The [https://github.com/xkcd/incredible source code] for the comic was released on GitHub on May 8, 2024. chromakode, one of the developers, also published a [https://chromakode.com/post/xkcd-machine/ blog post] describing the design and development process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Dynamic comics]]&lt;br /&gt;
[[Category:Comics with animation]] &lt;br /&gt;
[[Category:Interactive comics]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Knit Cap]]&lt;br /&gt;
[[Category:Characters with hats]]&lt;br /&gt;
[[Category:Squirrels]]&lt;br /&gt;
[[Category:Buns]]&lt;br /&gt;
[[Category:Cats]]&lt;br /&gt;
[[Category:Physics]]&lt;/div&gt;</summary>
		<author><name>Minecraftip</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=404668</id>
		<title>2916: Machine</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=2916:_Machine&amp;diff=404668"/>
				<updated>2026-01-31T17:11:15Z</updated>
		
		<summary type="html">&lt;p&gt;Minecraftip: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 2916&lt;br /&gt;
| date      = April 5, 2024&lt;br /&gt;
| title     = Machine&lt;br /&gt;
| image     = machine_2x.png&lt;br /&gt;
| imagesize = 740x740px&lt;br /&gt;
| noexpand  = true&lt;br /&gt;
| titletext = The Credible Machine&lt;br /&gt;
}}&lt;br /&gt;
{{series&lt;br /&gt;
| series        = April&lt;br /&gt;
| number        = 15&lt;br /&gt;
| date          = April 5, 2024&lt;br /&gt;
| days_late     = 4&lt;br /&gt;
| day_category  = Friday&lt;br /&gt;
| prev_title    = 2765: Escape Speed&lt;br /&gt;
| prev_date     = April 19, 2023&lt;br /&gt;
| next_title    = 3074: Push Notifications&lt;br /&gt;
| next_date     = April 9, 2025&lt;br /&gt;
| extra_text    = [[#Trivia|Learn why this comic was released late]].&lt;br /&gt;
}}&lt;br /&gt;
{{TOC}}To experience the interactivity of the game, visit the {{xkcd|2916|original comic}}!&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|Need to complete the explanations for the items.}}&lt;br /&gt;
&lt;br /&gt;
The comic starts in a main screen where the user can create a {{w|Rube Goldberg machine}} in a &amp;quot;Cell&amp;quot; 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&amp;lt;!-- that sort marbles by color SEEM TO 'RANDOMLY' REFRACT/DEFLECT, IF SORTING IS TRUE THEN EXPLAIN IN NEW/RELOCATED SECTION? --&amp;gt; (which deflect marbles) and fans (which blow marbles around), plus decorative elements which have no effect on the balls.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.)&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;under construction&amp;quot;, 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.&lt;br /&gt;
&lt;br /&gt;
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. [https://www.reddit.com/user/xzaphenia/comments/ 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 [https://www.reddit.com/r/xkcd/comments/1c1ixmb/comment/kzc3rmg/ 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 [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ coolness, innovativeness, effectiveness], and [https://www.reddit.com/r/xkcd/comments/1c0bsk2/comment/kyvfean/ 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. [https://www.reddit.com/r/xkcd/comments/1c0sp60/comment/kz6hbgl/ It is also claimed that at some point, moderation will be cut off and the machine will be considered &amp;quot;complete&amp;quot;]; since the number of modules in the machine has not changed for more than a year now, it is very likely that this has already happened.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery heights=&amp;quot;200&amp;quot; widths=&amp;quot;150&amp;quot;&amp;gt;&lt;br /&gt;
File:2916_popup_intro.png|Introduction popup&lt;br /&gt;
File:2916_popup_time.png|Time limit popup&lt;br /&gt;
File:2916_popup_submit.png|Submission popup&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;UNDER CONSTRUCTION&amp;quot; as well as &amp;quot;DJIA ↑ 31415&amp;quot; once in each cell. &amp;quot;DJIA&amp;quot; stands for the Dow Jones Industrial Average, with &amp;quot;DJIA ↑ 31415&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 (&amp;quot;''##''/100&amp;quot;), which will go away again if you delete items to bring it below this count. The count text turns red at &amp;quot;100/100&amp;quot;, at which point no more items can be added, only existing ones moved (or removed, to lower the count again).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Machine&amp;quot; had been updated multiple times in the weeks following its initial release, adding the following features:&lt;br /&gt;
* the trophy and shot glass props&lt;br /&gt;
* the cat, which swats balls in front of it&lt;br /&gt;
* the inanimate kitten and bun decorations&lt;br /&gt;
* 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)&lt;br /&gt;
* a button to follow a nearby ball as it traverses through the machine, also preventing it from despawning&lt;br /&gt;
&lt;br /&gt;
As referenced in the title text, this game is a spiritual successor to the 1990s and early 2000s PC puzzle game series {{w|The Incredible Machine}}, a game Randall played as a kid. Both games have several objects in common:&lt;br /&gt;
* fan&lt;br /&gt;
* cat&lt;br /&gt;
* ramps&lt;br /&gt;
* balls of varying densities&lt;br /&gt;
&lt;br /&gt;
===Toolbox items===&lt;br /&gt;
====Tangible items====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=margin:auto&amp;quot;&lt;br /&gt;
! Image&lt;br /&gt;
! Item !! Explanation &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_plank.png|frameless|upright=0.25]]&lt;br /&gt;
| Plank || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_hammer.png|frameless|upright=0.25]]&lt;br /&gt;
| Hammer || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_sword.png|frameless|upright=0.25]]&lt;br /&gt;
| Sword || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_scoop.png|frameless|upright=0.25]]&amp;lt;br&amp;gt;[[File:2916_scoop_mirrored.png|frameless|upright=0.25]]&lt;br /&gt;
| Hinged scoop || It rotates around its hinge and tries to remain horizontal, with a spring-like effect. The hinged scoops are strictly horizontal when placed on the building. They rotate away from — and spring back to — the horizontal position in response to interactions with balls or other non-decorative items that may disturb their balance. These disturbances can sometimes lead to further interesting interactions, which may or may not be intentional or useful.&lt;br /&gt;
Along with the triangular Bumpers, they are the only class of objects with a clear and practical asymmetry, for which a mirrored chirality can be selected from the sidebar.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_anvil.png|frameless|upright=0.125]]&lt;br /&gt;
| Anvil || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_brick.png|frameless|upright=0.125]]&lt;br /&gt;
| Brick || This object is a static obstacle. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_fan.png|frameless|upright=0.125]]&lt;br /&gt;
| Fan || Blows away balls in front of it. Can be rotated 360 degrees. Different colors are affected by differing amounts (yellow balls are lightest, and can be levitated above an upward-facing fan). If a ball hits a blade of a fan, especially from the side, the bounce is larger than normal. If you put a fan interlocking with a wheel it might eventually freeze your machine.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_pillow.png|frameless|upright=0.125]]&lt;br /&gt;
| Pillow || Balls bounce less if they hit it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_round_bumper.png|frameless|upright=0.125]] [[File:2916_bumper_left.png|frameless|upright=0.125]] [[File:2916_bumper_right.png|frameless|upright=0.125]]&lt;br /&gt;
| Bumper || Bounces balls away at significantly higher speed. Together with the Hinged scoop, they are the only object class with a clear and practical asymmetry, for which a mirrored chirality can be chosen from the sidebar. &lt;br /&gt;
|-&lt;br /&gt;
|| [[File:2916_attractor.png|frameless|upright=0.125]]&lt;br /&gt;
| Attractor/Black hole || It pulls balls towards its center. The Attractor is omnidirectional, but the area of effect can be resized to extend or restrict its influence. You do this via extending 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.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_repulsor.png|frameless|upright=0.125]]&lt;br /&gt;
| Repulsor/White hole || It repels balls away from center. Like the Attractor, it is omnidirectional and can be resized. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_prism.png|frameless|upright=0.125]]&lt;br /&gt;
| Prism || &amp;quot;Refracts&amp;quot; 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.&amp;lt;!-- Benefit of the doubt, but it hasn't seemed to work that well for me, either. --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_wheel.png|frameless|upright=0.125]]&lt;br /&gt;
| Wheel || Spins, deflects balls, can jam with enough resistance (e.g. glut of balls or against other elements). It actively rotates and 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 {{w|wagon-wheel effect}} occurs&amp;lt;!-- does it depend upon browser rendering frequency, or is there a convenient refresh-cap-rate built into the rendering engine? --&amp;gt;, 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. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_trophy.png|frameless|upright=0.125]]&lt;br /&gt;
| &amp;quot;Good job&amp;quot; trophy (Called &amp;quot;stand&amp;quot; in assets)|| This object is a static obstacle. Any ball can rest on the top of a trophy. This feature was probably added on purpose.&lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cup.png|frameless|upright=0.125]]&lt;br /&gt;
| Glass cup || This object is a static obstacle. Container, with a nominal capacity of up to four balls (in whole or in part) within it. &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat_new.png|frameless|upright=0.25]]&lt;br /&gt;
| Cat || Swats away balls in front of itself (was added later). Balls can get stuck on top of the cat or between the cat's head and tail. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Intangible decorations====&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;margin: auto; float: right&amp;quot;&lt;br /&gt;
! Image !! Transcript &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_ponytail_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_ponytail.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Ponytail, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_cueball_arms.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing Cueball, with raised arms &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_whitehat.png|frameless|upright=0.125]]&lt;br /&gt;
| Left-facing White Hat, standing &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap_resting.png|frameless|upright=0.25]]&lt;br /&gt;
| Rightwards-facing Knit Cap, in an 'action' pose &lt;br /&gt;
|-&lt;br /&gt;
|  [[File:2916_knitcap.png|frameless|upright=0.125]]&lt;br /&gt;
| Right-facing Knit Cap, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_helmet.png|frameless|upright=0.125]]&lt;br /&gt;
| Helmet-wearing figure, standing &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_squirrel.png|frameless|upright=0.125]]&lt;br /&gt;
| Squirrel &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_deterministic.png|frameless|upright=0.25]]&lt;br /&gt;
| &amp;quot;Probably Deterministic&amp;quot; sign &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_rabbit.png|frameless|upright=0.125]]&lt;br /&gt;
| [[1682: Bun|Bun]] &lt;br /&gt;
|-&lt;br /&gt;
| [[File:2916_cat.png|frameless|upright=0.125]]&lt;br /&gt;
| Cat &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
Rotation may be limited by the {{w|minimum bounding box}} that is the 'selection box', this is not necessarily the more flush {{w|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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 indirectly nudge balls by carefully moving a tangible object's surface into them (or holding them within it, e.g. the &amp;quot;cup&amp;quot;). 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 submitted.&lt;br /&gt;
&lt;br /&gt;
====Non-player items====&lt;br /&gt;
{|&lt;br /&gt;
|[[File:2916_container_red.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_yellow.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_blue.png|thumb|center|80px]]&lt;br /&gt;
|[[File:2916_container_green.png|thumb|center|80px]]&lt;br /&gt;
|}&lt;br /&gt;
Ball containers at the bottom of the machine.&lt;br /&gt;
&lt;br /&gt;
[[File:4d425c.png|thumb|left|250px|Cueball and Megan in the ''USS Buoyancy.]]&lt;br /&gt;
&lt;br /&gt;
[[File:2916_pit_bottom.png|thumb|left|400px|Pit below the ''USS Buoyancy''.]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Color routing ===&lt;br /&gt;
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:&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Color&lt;br /&gt;
! Mass&lt;br /&gt;
! Density&lt;br /&gt;
! Restitution (bounciness)&lt;br /&gt;
! Linear damping (drag)&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;00F&amp;quot; | Blue&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;F00&amp;quot; | Red&lt;br /&gt;
| 0.08&lt;br /&gt;
| 1&lt;br /&gt;
| 0.8&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;0F0&amp;quot; | Green&lt;br /&gt;
| 0.75&lt;br /&gt;
| 9.325&lt;br /&gt;
| 0&lt;br /&gt;
| 0&lt;br /&gt;
|-&lt;br /&gt;
! data-sort-key=&amp;quot;FF0&amp;quot; | Yellow&lt;br /&gt;
| 0.024&lt;br /&gt;
| 0.3&lt;br /&gt;
| 0.6&lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;catch&amp;quot; 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.&lt;br /&gt;
&lt;br /&gt;
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 {{w|Proton pack#Crossing the streams|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.&lt;br /&gt;
&lt;br /&gt;
In order to maintain sufficient correct arrivals at exits&amp;lt;!-- and, I believe, sufficiently few ''wrong'' arrivals... does it enumerate the 'net correct delivery rate' to establish the validity of the output? ...needs more research --&amp;gt;, it may be necessary to add a method of filtering the hues.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- This may not be the most efficient depiction (with just four/less 'core methods', after following &amp;quot;See X/Y&amp;quot;s) but if the Prism or some other item actually adds zignificantly practical pre-&amp;quot;See&amp;quot; differences then the all-vs-all format (with the reversals/same-to-sames still there to be abbreviated/redirected) will come into its own.&lt;br /&gt;
If you so wish, redo. e.g. as &amp;quot;;header + :paragraph&amp;quot;s or table of &amp;quot;!Combo(s)!!Methodology&amp;quot;&lt;br /&gt;
NB:&lt;br /&gt;
  1x ! Row-start Style=                                                 | Row-start 'header'&lt;br /&gt;
  4x | *Unwikiparsable key just for editors' benefit* + optional Style= | Contents&lt;br /&gt;
...right now, I've mostly added &amp;quot;vertical fan&amp;quot; experiences (which I find useful for all but R/B differentiation), but more about bumpers (including fan-/wheel-collisions), the positive/negative 'force objects' and of course horizontal/angled fans could also be added.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:black; color:white&amp;quot; | To separate !! style=&amp;quot;background-color:lightblue&amp;quot; | Blue !! style=&amp;quot;background-color:lightgreen&amp;quot; | Green !! style=&amp;quot;background-color:yellow&amp;quot; | Yellow !! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:red&amp;quot; | Red&lt;br /&gt;
| *R/B* | '''Use 'bounce''''&lt;br /&gt;
The sole difference is how much balls will rebound from objects. Well managed and constrained ricochets should allow a sorting action.&lt;br /&gt;
| *R/G* | '''Use mass or 'bounce''''&lt;br /&gt;
Green balls are not easily affected by a fan or a black hole, making it easier to sort from other balls. On the other hand, it also means it is very hard to precisely accelerate green, since the only components able to accelerate green is the bonk and the kitten.&amp;lt;br/&amp;gt;Green, like Blue, rebounds differently to Red.&lt;br /&gt;
| *R/Y* | ''See&amp;lt;br /&amp;gt;Y/B+G''&lt;br /&gt;
| *R/R* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a &lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:yellow&amp;quot; | Yellow&lt;br /&gt;
| *Y/B+G* colspan=2| '''All methods'''&lt;br /&gt;
Yellow, alone, exhibits high drag against any unforced motion.&amp;lt;br/&amp;gt;It is also unique in all other ways; e.g. can be levitated highest, against all other hues (though most profoundly against Green).&lt;br /&gt;
| *Y/Y* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *Y/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- R/Y-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightgreen&amp;quot; | Green&lt;br /&gt;
| *G/B* | '''Use mass'''&lt;br /&gt;
Green balls are only minimally affected by a fan.&amp;lt;br/&amp;gt;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).&lt;br /&gt;
| *G/G* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *G/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | ''See&amp;lt;br /&amp;gt;Y/B+G'' &amp;lt;!-- Y/G-&amp;gt;Y/B --&amp;gt;&lt;br /&gt;
| *G/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/G&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;background-color:lightblue&amp;quot; | Blue&lt;br /&gt;
| *B/B* style=&amp;quot;text-align: center; background-color:black; color:white&amp;quot; | n/a&lt;br /&gt;
| *B/G* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See G/B&lt;br /&gt;
| *B/Y* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See&amp;lt;br /&amp;gt;Y/B+G&lt;br /&gt;
| *B/R* style=&amp;quot;text-align: center; background-color:gray&amp;quot;  | See R/B&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript|Finish transcribing the comic!}}&lt;br /&gt;
&lt;br /&gt;
:[The placeholder image shows four balls, colored red, green, yellow and blue, bouncing on top of three white blocks. Text in the center: &amp;quot;[visit xkcd.com to view]&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
:[In the game, colored balls fall out of rotating half-gears that spawn at random from the wall and/or ceiling while an opposite set of half-gears that spawn on the bottom rotate with a colored triangle pointing to that intersection of said set of gears. There is a button that says &amp;quot;view machine&amp;quot; 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. There is another button with a wrench which is a menu that gives you tools and decorations to move the balls to the set of gears with the colored corresponding triangle.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, intro popup]&lt;br /&gt;
:Cueball: Balls falling into your cell should be routed to the outputs at a steady rate.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, warning popup]&lt;br /&gt;
:Cueball: For security reasons, balls that remain in your device for more than 30 seconds will be removed and destroyed.&lt;br /&gt;
&lt;br /&gt;
:[Cueball with lab coat, submit popup]&lt;br /&gt;
:Cueball: Congratulations! Your contraption has passed all tests. Press [submit button] to submit it to be added to the machine!&lt;br /&gt;
&lt;br /&gt;
==Trivia==&lt;br /&gt;
This comic was released four days after April 1st, even though April 1st fell on a regular Monday release day. Its status as an April Fool's Day comic was confirmed when Randall posted a [https://www.facebook.com/TheXKCD/posts/pfbid0Cs97awQZi1ZiaEXouAex9tXrwAS3qJV3RmAiuCq5uvZQwqZVMgDmcqJ7JU9LYodYl link to this comic] on his [https://www.facebook.com/TheXKCD Facebook feed], in which he explicitly described it as a late April Fools' release, removing any ambiguity about its intended classification. Similar delays have occurred for April Fools' comics since [[Garden]]. Randall acknowledges the contributors who assisted with this comic in a [[Header_text#Machine|comic-specific header text]]. With eleven additional contributors besides Randall, it is the xkcd comic with the most collaborators to date.&lt;br /&gt;
[[File:2916 Machine Facebook April fools' confirmation.png]]&lt;br /&gt;
&lt;br /&gt;
Several hidden keyboard shortcuts have been identified:&lt;br /&gt;
* Follow balls: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Alt/Option&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;B&amp;lt;/kbd&amp;gt; (also accessible via the on-screen button)&lt;br /&gt;
* Show debug overlay: &amp;lt;kbd&amp;gt;Ctrl&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Shift&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Win/Cmd&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;D&amp;lt;/kbd&amp;gt;, though this may conflict with certain browser shortcuts such as Firefox’s &amp;quot;New Bookmark&amp;quot; dialog&lt;br /&gt;
* Delete selected item: &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; (or &amp;lt;kbd&amp;gt;Fn&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; on Mac)&lt;br /&gt;
The [https://github.com/xkcd/incredible source code] for the comic was released on GitHub on May 8, 2024. chromakode, one of the developers, also published a [https://chromakode.com/post/xkcd-machine/ blog post] describing the design and development process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Comics with color]]&lt;br /&gt;
[[Category:Dynamic comics]]&lt;br /&gt;
[[Category:Comics with animation]] &lt;br /&gt;
[[Category:Interactive comics]]&lt;br /&gt;
[[Category:Comics featuring Cueball]]&lt;br /&gt;
[[Category:Comics featuring Megan]]&lt;br /&gt;
[[Category:Comics featuring Ponytail]]&lt;br /&gt;
[[Category:Comics featuring White Hat]]&lt;br /&gt;
[[Category:Comics featuring Knit Cap]]&lt;br /&gt;
[[Category:Characters with hats]]&lt;br /&gt;
[[Category:Squirrels]]&lt;br /&gt;
[[Category:Buns]]&lt;br /&gt;
[[Category:Cats]]&lt;br /&gt;
[[Category:Physics]]&lt;/div&gt;</summary>
		<author><name>Minecraftip</name></author>	</entry>

	</feed>