{
  "_generated": "GENERATED by tools/build-catalog.mjs -- DO NOT EDIT. Edit a hack's info export or taxonomy.js, then run: node tools/build-catalog.mjs",
  "hacks": [
    {
      "title": "abstractile",
      "module": "./hacks/abstractile.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Steve Sundstrom",
      "year": 2004,
      "description": "Mosaic patterns of interlocking tiles."
    },
    {
      "title": "alienbeacon",
      "module": "./hacks/alienbeacon.js",
      "dim": "3d",
      "categories": [
        "worlds",
        "surfaces"
      ],
      "heavy": true,
      "author": "otaviogood",
      "year": 2014,
      "description": "Our investigation of the signal from the planet's surface brought us to what seems to be an alien beacon. Based on the rock formation around the beacon, it was probably left here millions of years ago.\n\nhttps://www.shadertoy.com/view/ld2SzK"
    },
    {
      "title": "anemone",
      "module": "./hacks/anemone.js",
      "dim": "2d",
      "categories": [
        "biota",
        "curves"
      ],
      "author": "Gabriel Finch",
      "year": 2001,
      "description": "Wiggling tentacles."
    },
    {
      "title": "anemotaxis",
      "module": "./hacks/anemotaxis.js",
      "dim": "2d",
      "categories": [
        "particles",
        "biota"
      ],
      "author": "Eugene Balkovski",
      "year": 2004,
      "description": "Searches for a source of odor in a turbulent atmosphere. The searcher is able to sense the odor and determine local instantaneous wind direction. The goal is to find the source in the shortest mean time.\n\nhttps://en.wikipedia.org/wiki/Anemotaxis"
    },
    {
      "title": "ant",
      "module": "./hacks/ant.js",
      "dim": "2d",
      "categories": [
        "automata"
      ],
      "author": "David Bagley",
      "year": 1997,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 4.22.\n\nA cellular automaton that is really a two-dimensional Turing machine: as the heads (\"ants\") walk along the screen, they change pixel values in their path. Then, as they pass over changed pixels, their behavior is influenced.\n\nhttps://en.wikipedia.org/wiki/Langton%27s_ant\nhttps://en.wikipedia.org/wiki/Turing_machine"
    },
    {
      "title": "apollonian",
      "module": "./hacks/apollonian.js",
      "dim": "2d",
      "categories": [
        "fractals",
        "geometry"
      ],
      "author": "Allan R. Wilks",
      "year": 2001,
      "description": "A fractal packing of circles with smaller circles, demonstrating Descartes's theorem.\n\nhttps://en.wikipedia.org/wiki/Apollonian_gasket\nhttps://en.wikipedia.org/wiki/Descartes%27_theorem"
    },
    {
      "title": "attraction",
      "module": "./hacks/attraction.js",
      "dim": "2d",
      "categories": [
        "particles"
      ],
      "author": "Jamie Zawinski and John Pezaris",
      "year": 1992,
      "description": "Points attract each other and then repel, similar to the strong and weak nuclear forces."
    },
    {
      "title": "batteredplanet",
      "module": "./hacks/batteredplanet.js",
      "dim": "3d",
      "categories": [
        "worlds",
        "surfaces"
      ],
      "author": "mrange",
      "year": 2020,
      "description": "An alien planet full of craters, with other celestial objects in the sky.\n\nhttps://www.shadertoy.com/view/wsjBD3"
    },
    {
      "title": "bestill",
      "module": "./hacks/bestill.js",
      "dim": "3d",
      "categories": [
        "worlds",
        "surfaces"
      ],
      "heavy": true,
      "author": "Matt Vianueva (diatribes)",
      "year": 2025,
      "description": "Various scenes of lights playing above the clouds.\n\nhttps://www.shadertoy.com/view/tfXcRn\nhttps://www.shadertoy.com/view/w32BDD\nhttps://www.shadertoy.com/view/3cjcWD\nhttps://www.shadertoy.com/view/wXXBRX\nhttps://www.shadertoy.com/view/3cXyzB\nhttps://www.shadertoy.com/view/tXjXDy"
    },
    {
      "title": "binaryhorizon",
      "module": "./hacks/binaryhorizon.js",
      "dim": "2d",
      "categories": [
        "particles",
        "curves"
      ],
      "author": "Patrick Leiser, J. Tarbell and Emilio Del Tessandoro",
      "year": 2021,
      "description": "A system of path tracing particles evolves continuously from an initial horizon, alternating between colors."
    },
    {
      "title": "binaryring",
      "module": "./hacks/binaryring.js",
      "dim": "2d",
      "categories": [
        "curves",
        "particles"
      ],
      "author": "J. Tarbell and Emilio Del Tessandoro",
      "year": 2014,
      "description": "A system of path tracing particles evolves continuously from an initial creation, alternating dark and light colors."
    },
    {
      "title": "blinkbox",
      "module": "./hacks/blinkbox.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jeremy English",
      "year": 2003,
      "description": "A motion-blurred ball bounces inside a box whose tiles only become visible upon impact."
    },
    {
      "title": "blocktube",
      "module": "./hacks/blocktube.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Lars R. Damerow",
      "year": 2003,
      "description": "A swirling, falling tunnel of reflective slabs. They fade from hue to hue."
    },
    {
      "title": "bouboule",
      "module": "./hacks/bouboule.js",
      "dim": "2d",
      "categories": [
        "particles"
      ],
      "author": "Jeremie Petit",
      "year": 1997,
      "description": "A deforming balloon with varying-sized spots painted on its invisible surface."
    },
    {
      "title": "boxed",
      "module": "./hacks/boxed.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Sander van Grieken",
      "year": 2002,
      "description": "A box full of 3D bouncing balls that explode."
    },
    {
      "title": "boxfit",
      "module": "./hacks/boxfit.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2005,
      "description": "Packs the screen with growing squares or circles which grow until they touch, then stop."
    },
    {
      "title": "braid",
      "module": "./hacks/braid.js",
      "dim": "2d",
      "categories": [
        "curves",
        "geometry"
      ],
      "author": "John Neil",
      "year": 1997,
      "description": "Inter-braided concentric circles."
    },
    {
      "title": "bubblecolors",
      "module": "./hacks/bubblecolors.js",
      "dim": "3d",
      "categories": [
        "plasma"
      ],
      "heavy": true,
      "author": "Matt Vianueva",
      "year": 2025,
      "description": "Traveling through a field of bubbles with cartoony colors.\n\nhttps://www.shadertoy.com/view/wcGXWR"
    },
    {
      "title": "bubbles",
      "module": "./hacks/bubbles.js",
      "dim": "2d",
      "categories": [
        "particles",
        "fluids"
      ],
      "author": "James Macnicol",
      "year": 1996,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nThis simulates the kind of bubble formation that happens when water boils: small bubbles appear, and as they get closer to each other, they combine to form larger bubbles, which eventually pop."
    },
    {
      "title": "ccurve",
      "module": "./hacks/ccurve.js",
      "dim": "2d",
      "categories": [
        "fractals",
        "curves"
      ],
      "author": "Rick Campbell",
      "year": 1999,
      "description": "Generates self-similar linear fractals, including the classic \"C Curve\".\n\nhttps://en.wikipedia.org/wiki/Levy_C_curve"
    },
    {
      "title": "celtic",
      "module": "./hacks/celtic.js",
      "dim": "2d",
      "categories": [
        "geometry",
        "curves"
      ],
      "author": "Max Froumentin",
      "year": 2006,
      "description": "Repeatedly draws random Celtic cross-stitch patterns.\n\nhttps://en.wikipedia.org/wiki/Celtic_knot\nhttps://en.wikipedia.org/wiki/Knots_and_graphs"
    },
    {
      "title": "circuit",
      "module": "./hacks/circuit.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Ben Buxton",
      "year": 2001,
      "description": "Electronic components float around."
    },
    {
      "title": "cloudlife",
      "module": "./hacks/cloudlife.js",
      "dim": "2d",
      "categories": [
        "automata"
      ],
      "author": "Don Marti",
      "year": 2003,
      "description": "Cloud-like formations based on a variant of Conway's Life.\n\nThe difference is that cells have a maximum age, after which they count as 3 for populating the next generation. This makes long-lived formations explode instead of just sitting there.\n\nhttps://en.wikipedia.org/wiki/Conway%27s_Game_of_Life"
    },
    {
      "title": "compass",
      "module": "./hacks/compass.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 1999,
      "description": "A compass, with all elements spinning about randomly, for that \"lost and nauseous\" feeling."
    },
    {
      "title": "coral",
      "module": "./hacks/coral.js",
      "dim": "2d",
      "categories": [
        "biota"
      ],
      "author": "Frederick Roeber",
      "year": 1997,
      "description": "Simulates colorful coral growth."
    },
    {
      "title": "critical",
      "module": "./hacks/critical.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Martin Pool",
      "year": 1999,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nDraws a system of self-organizing lines. It starts out as random squiggles, but after a few iterations, order begins to appear."
    },
    {
      "title": "crystal",
      "module": "./hacks/crystal.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Jouk Jansen",
      "year": 1997,
      "description": "Moving polygons, similar to a kaleidoscope.\n\nSee also the \"Kaleidescope\" and \"GLeidescope\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Kaleidoscope"
    },
    {
      "title": "cube21",
      "module": "./hacks/cube21.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Vasek Potocek",
      "year": 2005,
      "description": "The \"Cube 21\" Rubik-like puzzle, also known as \"Square-1\". The rotations are chosen randomly.\n\nSee also the \"Rubik\", \"RubikBlocks\" and \"GLSnake\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Square_One_%28puzzle%29"
    },
    {
      "title": "cubenetic",
      "module": "./hacks/cubenetic.js",
      "dim": "3d",
      "categories": [
        "geometry",
        "plasma"
      ],
      "author": "Jamie Zawinski",
      "year": 2002,
      "description": "A cubist Lavalite, sort of. A pulsating set of overlapping boxes with ever-changing blobby patterns undulating across their surfaces."
    },
    {
      "title": "cubestack",
      "module": "./hacks/cubestack.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2016,
      "description": "An endless stack of unfolding, translucent cubes."
    },
    {
      "title": "cubestorm",
      "module": "./hacks/cubestorm.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2003,
      "description": "Boxes change shape and intersect each other, filling space."
    },
    {
      "title": "cubetwist",
      "module": "./hacks/cubetwist.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2016,
      "description": "A series of nested cubes rotate and slide recursively."
    },
    {
      "title": "cubicgrid",
      "module": "./hacks/cubicgrid.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Vasek Potocek",
      "year": 2007,
      "description": "A rotating lattice of colored points."
    },
    {
      "title": "cwaves",
      "module": "./hacks/cwaves.js",
      "dim": "2d",
      "categories": [
        "plasma"
      ],
      "author": "Jamie Zawinski",
      "year": 2007,
      "description": "A field of sinusoidal colors languidly scrolls. It's relaxing."
    },
    {
      "title": "cynosure",
      "module": "./hacks/cynosure.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Ozymandias G. Desiderata, Jamie Zawinski, and Stephen Linhart",
      "year": 1998,
      "description": "Random dropshadowed rectangles pop onto the screen in lockstep."
    },
    {
      "title": "dangerball",
      "module": "./hacks/dangerball.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2001,
      "description": "A spiky ball. Ouch!"
    },
    {
      "title": "darktransit",
      "module": "./hacks/darktransit.js",
      "dim": "3d",
      "categories": [
        "cosmic"
      ],
      "author": "Matt Vianueva (diatribes)",
      "year": 2025,
      "description": "Flying through a generative cyber manifold.\n\nhttps://www.shadertoy.com/view/WcdczB"
    },
    {
      "title": "deco",
      "module": "./hacks/deco.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski, Michael D. Bayne, Lars Huttar",
      "year": 1997,
      "description": "Subdivides and colors rectangles randomly, for a Mondrian-esque effect.\n\nhttps://en.wikipedia.org/wiki/Piet_Mondrian#Paris_1919.E2.80.931938"
    },
    {
      "title": "deluxe",
      "module": "./hacks/deluxe.js",
      "dim": "2d",
      "categories": [
        "plasma",
        "optical"
      ],
      "author": "Jamie Zawinski",
      "year": 1999,
      "description": "Pulsing stars, circles, and lines."
    },
    {
      "title": "demon",
      "module": "./hacks/demon.js",
      "dim": "2d",
      "categories": [
        "automata"
      ],
      "author": "David Bagley",
      "year": 1999,
      "description": "A cellular automaton that starts with a random field, and organizes it into stripes and spirals.\n\nhttps://en.wikipedia.org/wiki/Maxwell%27s_demon"
    },
    {
      "title": "discoball",
      "module": "./hacks/discoball.js",
      "dim": "3d",
      "categories": [
        "geometry",
        "optical"
      ],
      "author": "Jamie Zawinski",
      "year": 2016,
      "description": "A dusty, dented disco ball. Woop woop."
    },
    {
      "title": "discrete",
      "module": "./hacks/discrete.js",
      "dim": "2d",
      "categories": [
        "attractors",
        "fractals"
      ],
      "author": "Tim Auckland",
      "year": 1996,
      "description": "Discrete map fractal systems, including variants of Hopalong, Julia, and others."
    },
    {
      "title": "downfall",
      "module": "./hacks/downfall.js",
      "dim": "3d",
      "categories": [
        "plasma"
      ],
      "author": "Matt Vianueva",
      "year": 2025,
      "description": "A close-up view of a grayscale waterfall.\n\nhttps://www.shadertoy.com/view/w3sBWl"
    },
    {
      "title": "drift",
      "module": "./hacks/drift.js",
      "dim": "2d",
      "categories": [
        "fractals",
        "attractors"
      ],
      "author": "Scott Draves",
      "year": 1997,
      "description": "Drifting recursive fractal cosmic flames."
    },
    {
      "title": "driftclouds",
      "module": "./hacks/driftclouds.js",
      "dim": "3d",
      "categories": [
        "fluids"
      ],
      "author": "drift",
      "year": 2016,
      "description": "Clouds. Little fluffy clouds.\n\nhttps://www.shadertoy.com/view/4tdSWr"
    },
    {
      "title": "elementalring",
      "module": "./hacks/elementalring.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Otavio Good",
      "year": 2016,
      "description": "A rotating ring knots and un-knots itself.\n\nhttps://www.shadertoy.com/view/MsVXDt"
    },
    {
      "title": "engine",
      "module": "./hacks/engine.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Ben Buxton",
      "year": 2001,
      "description": "Internal combusion engines.\n\nhttps://en.wikipedia.org/wiki/Internal_combustion_engine#Operation"
    },
    {
      "title": "epicycle",
      "module": "./hacks/epicycle.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "James Youngman",
      "year": 1998,
      "description": "A pre-heliocentric model of planetary motion.\n\nThis draws the path traced out by a point on the edge of a circle. That circle rotates around a point on the rim of another circle, and so on, several times.\n\nThe geometry of epicycles was perfected by Hipparchus of Rhodes at some time around 125 B.C., 185 years after the birth of Aristarchus of Samos, the inventor of the heliocentric universe model. Hipparchus applied epicycles to the Sun and the Moon. Ptolemy of Alexandria went on to apply them to what was then the known universe, at around 150 A.D. Copernicus went on to apply them to the heliocentric model at the beginning of the sixteenth century. Johannes Kepler discovered that the planets actually move in elliptical orbits in about 1602. The inverse-square law of gravity was suggested by Boulliau in 1645. Isaac Newton's Principia Mathematica was published in 1687, and proved that Kepler's laws derived from Newtonian gravitation.\n\nhttps://en.wikipedia.org/wiki/Deferent_and_epicycle"
    },
    {
      "title": "eruption",
      "module": "./hacks/eruption.js",
      "dim": "2d",
      "categories": [
        "particles"
      ],
      "author": "W.P. van Paassen",
      "year": 2003,
      "description": "Exploding fireworks.\n\nSee also the \"Fireworkx\", \"XFlame\" and \"Pyro\" screen savers."
    },
    {
      "title": "euler2d",
      "module": "./hacks/euler2d.js",
      "dim": "2d",
      "categories": [
        "fluids"
      ],
      "author": "Stephen Montgomery-Smith",
      "year": 2000,
      "description": "Simulates two dimensional incompressible inviscid fluid flow.\n\nhttps://en.wikipedia.org/wiki/Euler_equations_%28fluid_dynamics%29\nhttps://en.wikipedia.org/wiki/Inviscid_flow"
    },
    {
      "title": "extrusion",
      "module": "./hacks/extrusion.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Linas Vepstas",
      "year": 1999,
      "description": "Various extruded shapes twist and turn inside out."
    },
    {
      "title": "fadeplot",
      "module": "./hacks/fadeplot.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Bas van Gaalen and Charles Vidal",
      "year": 1997,
      "description": "A waving ribbon follows a sinusoidal path."
    },
    {
      "title": "fiberlamp",
      "module": "./hacks/fiberlamp.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Tim Auckland",
      "year": 2005,
      "description": "A fiber-optic lamp. Groovy."
    },
    {
      "title": "fireworkx",
      "module": "./hacks/fireworkx.js",
      "dim": "2d",
      "categories": [
        "particles",
        "plasma"
      ],
      "author": "Rony B Chandran",
      "year": 2004,
      "description": "Exploding fireworks.\n\nSee also the \"Eruption\", \"XFlame\" and \"Pyro\" screen savers."
    },
    {
      "title": "flame",
      "module": "./hacks/flame.js",
      "dim": "2d",
      "categories": [
        "fractals",
        "attractors"
      ],
      "author": "Scott Draves",
      "year": 1993,
      "description": "Iterative fractals."
    },
    {
      "title": "flipflop",
      "module": "./hacks/flipflop.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Kevin Ogden and Sergio Gutierrez",
      "year": 2003,
      "description": "Colored tiles swap with each other."
    },
    {
      "title": "flow",
      "module": "./hacks/flow.js",
      "dim": "2d",
      "categories": [
        "attractors",
        "particles"
      ],
      "author": "Tim Auckland",
      "year": 1996,
      "description": "Strange attractors formed of flows in a 3D differential equation phase space. Features the popular attractors described by Lorentz, Roessler, Birkhoff and Duffing, and can discover entirely new attractors by itself.\n\nhttps://en.wikipedia.org/wiki/Attractor#Strange_attractor"
    },
    {
      "title": "fluidballs",
      "module": "./hacks/fluidballs.js",
      "dim": "2d",
      "categories": [
        "particles",
        "fluids"
      ],
      "author": "Peter Birtles and Jamie Zawinski",
      "year": 2002,
      "description": "A particle system of bouncing balls. Gravity moves around to shake the box."
    },
    {
      "title": "fluxcore",
      "module": "./hacks/fluxcore.js",
      "dim": "3d",
      "categories": [
        "worlds"
      ],
      "heavy": true,
      "author": "otaviogood",
      "year": 2015,
      "description": "Long range space-based energy transmission requires a flux core to amplify and concentrate energy.\n\nhttps://www.shadertoy.com/view/ltlSWf"
    },
    {
      "title": "forest",
      "module": "./hacks/forest.js",
      "dim": "2d",
      "categories": [
        "fractals",
        "biota"
      ],
      "author": "Peter Baumung",
      "year": 1999,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nFractal trees."
    },
    {
      "title": "fuzzyflakes",
      "module": "./hacks/fuzzyflakes.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Barry Dmytro",
      "year": 2004,
      "description": "Falling colored snowflake/flower shapes.\n\nhttps://en.wikipedia.org/wiki/Snowflake"
    },
    {
      "title": "galaxy",
      "module": "./hacks/galaxy.js",
      "dim": "2d",
      "categories": [
        "cosmic",
        "particles"
      ],
      "author": "Uli Siegmund, Harald Backert, and Hubert Feyrer",
      "year": 1997,
      "description": "Spinning galaxies collide."
    },
    {
      "title": "gears",
      "module": "./hacks/gears.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2007,
      "description": "Interlocking gears.\n\nSee also the \"Pinion\" and \"M\u00f6bius Gears\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Involute_gear\nhttps://en.wikipedia.org/wiki/Epicyclic_gearing"
    },
    {
      "title": "geodesicgears",
      "module": "./hacks/geodesicgears.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2014,
      "description": "A set of meshed gears arranged on the surface of a sphere.\n\nhttps://en.wikipedia.org/wiki/Geodesic_dome\nhttps://en.wikipedia.org/wiki/Involute_gear\nhttps://en.wikipedia.org/wiki/Buckminster_Fuller"
    },
    {
      "title": "gimbalharmonics",
      "module": "./hacks/gimbalharmonics.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "otaviogood",
      "year": 2015,
      "description": "Disc-based visualization of different frequencies next to each other.\n\nhttps://www.shadertoy.com/view/llS3zd"
    },
    {
      "title": "glknots",
      "module": "./hacks/glknots.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2003,
      "description": "Generates some twisting 3d knot patterns. Spins 'em around.\n\nhttps://en.wikipedia.org/wiki/Knot_theory"
    },
    {
      "title": "glsnake",
      "module": "./hacks/glsnake.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Wilkinson",
      "year": 2002,
      "description": "The \"Rubik's Snake\" puzzle.\n\nSee also the \"Rubik\" and \"Cube21\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Rubik%27s_Snake"
    },
    {
      "title": "goldenapollian",
      "module": "./hacks/goldenapollian.js",
      "dim": "3d",
      "categories": [
        "fractals",
        "geometry"
      ],
      "author": "Martin Ranelius (mrange)",
      "year": 2021,
      "description": "Enter the golden fractal doorways.\n\nhttps://www.shadertoy.com/view/WlcfRS"
    },
    {
      "title": "goop",
      "module": "./hacks/goop.js",
      "dim": "2d",
      "categories": [
        "fluids",
        "plasma"
      ],
      "author": "Jamie Zawinski",
      "year": 1997,
      "description": "Translucent amoeba-like blobs wander the screen."
    },
    {
      "title": "grav",
      "module": "./hacks/grav.js",
      "dim": "2d",
      "categories": [
        "particles",
        "cosmic"
      ],
      "author": "Greg Bowering",
      "year": 1997,
      "description": "An orbital simulation, or perhaps a cloud chamber."
    },
    {
      "title": "greynetic",
      "module": "./hacks/greynetic.js",
      "dim": "2d",
      "categories": [
        "geometry",
        "plasma"
      ],
      "author": "Jamie Zawinski",
      "year": 1992,
      "description": "Colored, stippled and transparent rectangles."
    },
    {
      "title": "halftone",
      "module": "./hacks/halftone.js",
      "dim": "2d",
      "categories": [
        "optical"
      ],
      "author": "Peter Jaric",
      "year": 2002,
      "description": "A halftone dot pattern in motion.\n\nDraws the gravity force in each point on the screen seen through a halftone dot pattern. The gravity force is calculated from a set of moving mass points. View it from a distance for best effect.\n\nhttps://en.wikipedia.org/wiki/Halftone"
    },
    {
      "title": "halo",
      "module": "./hacks/halo.js",
      "dim": "2d",
      "categories": [
        "optical"
      ],
      "author": "Jamie Zawinski",
      "year": 1993,
      "description": "Circular interference patterns.\n\nhttps://en.wikipedia.org/wiki/Moire_pattern"
    },
    {
      "title": "helix",
      "module": "./hacks/helix.js",
      "dim": "2d",
      "categories": [
        "curves",
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 1992,
      "description": "Spirally string-art-ish patterns."
    },
    {
      "title": "hexadrop",
      "module": "./hacks/hexadrop.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2013,
      "description": "A grid of hexagons or other shapes, with tiles dropping out.\n\nhttps://en.wikipedia.org/wiki/Tiling_by_regular_polygons"
    },
    {
      "title": "hexplasma",
      "module": "./hacks/hexplasma.js",
      "dim": "3d",
      "categories": [
        "plasma"
      ],
      "author": "Nemerix",
      "year": 2025,
      "description": "A hexagon in a plasma field.\n\nhttps://www.shadertoy.com/view/WfS3Dd"
    },
    {
      "title": "hexstrut",
      "module": "./hacks/hexstrut.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2016,
      "description": "A grid of hexagons composed of rotating Y-shaped struts. Waves of rotation and color changes randomly propagate across the plane."
    },
    {
      "title": "hextrail",
      "module": "./hacks/hextrail.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2022,
      "description": "A network of colorful lines grows upon a hexagonal substrate."
    },
    {
      "title": "hopalong",
      "module": "./hacks/hopalong.js",
      "dim": "2d",
      "categories": [
        "attractors",
        "fractals"
      ],
      "author": "Patrick Naughton",
      "year": 1992,
      "description": "Lacy fractal patterns based on iteration in the imaginary plane, from a 1986 Scientific American article.\n\nSee also the \"Discrete\" screen saver."
    },
    {
      "title": "hyperball",
      "module": "./hacks/hyperball.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Joe Keane",
      "year": 2000,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.10. It has been replaced by the more general \"Polytopes\" screen saver, which can display this object as well as others. The Polytopes \"120-cell\" object corresponds to this one.\n\nHyperball is to hypercube as dodecahedron is to cube: this displays a 2D projection of the sequence of 3D objects which are the projections of the 4D analog to the dodecahedron. Technically, it is a \"120 cell polytope\".\n\nhttps://en.wikipedia.org/wiki/Hypercube\nhttps://en.wikipedia.org/wiki/Regular_polytope"
    },
    {
      "title": "hypercube",
      "module": "./hacks/hypercube.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Joe Keane, Fritz Mueller, Jamie Zawinski",
      "year": 1992,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.10. It has been replaced by the more general \"Polytopes\" screen saver, which can display this object as well as others.\n\nThis displays 2D projections of the sequence of 3D objects which are the projections of the 4D analog to the cube: as a square is composed of four lines, each touching two others; and a cube is composed of six squares, each touching four others; a hypercube is composed of eight cubes, each touching six others. To make it easier to visualize the rotation, it uses a different color for the edges of each face. Don't think about it too long, or your brain will melt.\n\nhttps://en.wikipedia.org/wiki/Hypercube\nhttps://en.wikipedia.org/wiki/Tesseract\nhttps://en.wikipedia.org/wiki/Regular_polytope"
    },
    {
      "title": "hypnowheel",
      "module": "./hacks/hypnowheel.js",
      "dim": "3d",
      "categories": [
        "optical",
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2008,
      "description": "Overlapping, translucent spiral patterns. The tightness of their spirals fluctuates in and out.\n\nhttps://en.wikipedia.org/wiki/Moire_pattern"
    },
    {
      "title": "ifs",
      "module": "./hacks/ifs.js",
      "dim": "2d",
      "categories": [
        "fractals"
      ],
      "author": "Chris Le Sueur and Robby Griffin",
      "year": 1997,
      "description": "Clouds of iterated function systems spin and collide.\n\nNote that the \"Detail\" parameter is exponential. Number of points drawn is functions^detail.\n\nhttps://en.wikipedia.org/wiki/Iterated_function_system"
    },
    {
      "title": "imsmap",
      "module": "./hacks/imsmap.js",
      "dim": "2d",
      "categories": [
        "plasma",
        "fractals"
      ],
      "author": "Juergen Nickelsen and Jamie Zawinski",
      "year": 1992,
      "description": "Recursive cloud-like fractal patterns."
    },
    {
      "title": "interaggregate",
      "module": "./hacks/interaggregate.js",
      "dim": "2d",
      "categories": [
        "curves",
        "optical"
      ],
      "author": "Casey Reas, William Ngan, Robert Hodgin, and Jamie Zawinski",
      "year": 2004,
      "description": "Pale pencil-like scribbles slowly fill the screen.\n\nA surface is filled with a hundred medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Displays the instantaneous intersections of the circles as well as the aggregate intersections of the circles.\n\nThough actually it doesn't look like circles at all!"
    },
    {
      "title": "interference",
      "module": "./hacks/interference.js",
      "dim": "2d",
      "categories": [
        "optical",
        "plasma"
      ],
      "author": "Hannu Mallat",
      "year": 1998,
      "description": "Decaying sinusoidal waves make colors."
    },
    {
      "title": "intermomentary",
      "module": "./hacks/intermomentary.js",
      "dim": "2d",
      "categories": [
        "optical"
      ],
      "author": "Casey Reas, William Ngan, Robert Hodgin, and Jamie Zawinski",
      "year": 2004,
      "description": "Blinking dots interact with each other circularly.\n\nA surface is filled with a hundred medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate. Displays the instantaneous intersections of the circles as well as the aggregate intersections of the circles.\n\nThe circles begin with a radius of 1 pixel and slowly increase to some arbitrary size. Circles are drawn with small moving points along the perimeter. The intersections are rendered as glowing orbs. Glowing orbs are rendered only when a perimeter point moves past the intersection point."
    },
    {
      "title": "julia",
      "module": "./hacks/julia.js",
      "dim": "2d",
      "categories": [
        "fractals"
      ],
      "author": "Sean McCullough",
      "year": 1997,
      "description": "The Julia set is a close relative of the Mandelbrot set. The small moving dot indicates the control point from which the rest of the image was generated.\n\nSee also the \"Discrete\" screen saver.\n\nhttps://en.wikipedia.org/wiki/Julia_set"
    },
    {
      "title": "kaleidescope",
      "module": "./hacks/kaleidescope.js",
      "dim": "2d",
      "categories": [
        "optical",
        "curves"
      ],
      "author": "Ron Tapia",
      "year": 1997,
      "description": "A simple kaleidoscope made of line segments.\n\nSee \"GLeidescope\" for a more sophisticated take.\n\nhttps://en.wikipedia.org/wiki/Kaleidoscope"
    },
    {
      "title": "kumppa",
      "module": "./hacks/kumppa.js",
      "dim": "2d",
      "categories": [
        "plasma"
      ],
      "author": "Teemu Suutari",
      "year": 1998,
      "description": "Spiraling, spinning, and very, very fast splashes of color rush toward the screen."
    },
    {
      "title": "lament",
      "module": "./hacks/lament.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 1998,
      "description": "Lemarchand's Box, the Lament Configuration.\n\nWarning: occasionally opens doors.\n\nhttps://en.wikipedia.org/wiki/Lemarchand%27s_box"
    },
    {
      "title": "laser",
      "module": "./hacks/laser.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Pascal Pensa",
      "year": 1995,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nMoving radiating lines, that look vaguely like scanning laser beams. (Frankie say relax.)"
    },
    {
      "title": "lightning",
      "module": "./hacks/lightning.js",
      "dim": "2d",
      "categories": [
        "fractals",
        "curves"
      ],
      "author": "Keith Romberg",
      "year": 1996,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nCrackling fractal lightning bolts."
    },
    {
      "title": "lisa",
      "module": "./hacks/lisa.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Caleb Cullen",
      "year": 1997,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nLissajous loops.\n\nhttps://en.wikipedia.org/wiki/Lissajous_curve"
    },
    {
      "title": "lissie",
      "module": "./hacks/lissie.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Alexander Jolk",
      "year": 1996,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nLissajous loops. This one draws the progress of circular shapes along a path.\n\nhttps://en.wikipedia.org/wiki/Lissajous_curve"
    },
    {
      "title": "lmorph",
      "module": "./hacks/lmorph.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Sverre H. Huseby and Glenn T. Lines",
      "year": 1995,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nThis generates random spline-ish line drawings and morphs between them."
    },
    {
      "title": "lockward",
      "module": "./hacks/lockward.js",
      "dim": "3d",
      "categories": [
        "optical",
        "geometry"
      ],
      "author": "Leo L. Schwab",
      "year": 2007,
      "description": "A translucent spinning, blinking thing. Sort of a cross between the wards in an old combination lock and those old backlit information displays that animated and changed color via polarized light."
    },
    {
      "title": "logarithmiccircles",
      "module": "./hacks/logarithmiccircles.js",
      "dim": "3d",
      "categories": [
        "optical",
        "geometry"
      ],
      "author": "mrange",
      "year": 2023,
      "description": "Zooming black and white circles.\n\nhttps://www.shadertoy.com/view/mljcWR"
    },
    {
      "title": "loop",
      "module": "./hacks/loop.js",
      "dim": "2d",
      "categories": [
        "automata"
      ],
      "author": "David Bagley",
      "year": 1999,
      "description": "A cellular automaton that generates loop-shaped colonies that spawn, age, and eventually die.\n\nhttps://en.wikipedia.org/wiki/Langton%27s_loops"
    },
    {
      "title": "marbling",
      "module": "./hacks/marbling.js",
      "dim": "2d",
      "categories": [
        "plasma",
        "fractals"
      ],
      "author": "Jamie Zawinski and Dave Odell",
      "year": 2021,
      "description": "Marble-like or cloud-like patterns generated using Perlin Noise and Fractal Brownian Motion."
    },
    {
      "title": "metaballs",
      "module": "./hacks/metaballs.js",
      "dim": "2d",
      "categories": [
        "particles",
        "plasma"
      ],
      "author": "W.P. van Paassen",
      "year": 2003,
      "description": "2D meta-balls: overlapping and merging balls with fuzzy edges.\n\nhttps://en.wikipedia.org/wiki/Metaballs"
    },
    {
      "title": "moebiusgears",
      "module": "./hacks/moebiusgears.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2007,
      "description": "An interlinked loop of rotating gears. The layout of the gears follows the path of a m\u00f6bius strip.\n\nSee also the \"Pinion\" and \"Gears\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Involute_gear\nhttps://en.wikipedia.org/wiki/Moebius_strip"
    },
    {
      "title": "moire",
      "module": "./hacks/moire.js",
      "dim": "2d",
      "categories": [
        "optical"
      ],
      "author": "Jamie Zawinski and Michael Bayne",
      "year": 1997,
      "description": "When the lines on the screen\nMake more lines in between,\nThat's a moir\u00e9!\n\nhttps://en.wikipedia.org/wiki/Moire_pattern"
    },
    {
      "title": "moire2",
      "module": "./hacks/moire2.js",
      "dim": "2d",
      "categories": [
        "optical"
      ],
      "author": "Jamie Zawinski",
      "year": 1998,
      "description": "Generates fields of concentric circles or ovals, and combines the planes with various operations. The planes are moving independently of one another, causing the interference lines to spray.\n\nhttps://en.wikipedia.org/wiki/Moire_pattern"
    },
    {
      "title": "morph3d",
      "module": "./hacks/morph3d.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Marcelo Vianna",
      "year": 1997,
      "description": "Platonic solids that turn inside out and get spikey.\n\nhttps://en.wikipedia.org/wiki/Platonic_solid"
    },
    {
      "title": "mountain",
      "module": "./hacks/mountain.js",
      "dim": "2d",
      "categories": [
        "surfaces",
        "worlds"
      ],
      "author": "Pascal Pensa",
      "year": 1997,
      "description": "3D plots that are vaguely mountainous."
    },
    {
      "title": "munch",
      "module": "./hacks/munch.js",
      "dim": "2d",
      "categories": [
        "geometry",
        "optical"
      ],
      "author": "Tim Showalter, Jamie Zawinski and Steven Hazel",
      "year": 1997,
      "description": "DATAI 2\nADDB 1,2\nROTC 2,-22\nXOR 1,2\nJRST .-4\n\nAs reported by HAKMEM (MIT AI Memo 239, 1972), Jackson Wright wrote the above PDP-1 code in 1962. That code still lives on here, 60+ years later.\n\nIn \"mismunch\" mode, it displays a creatively broken misimplementation of the classic munching squares algorithm instead.\n\nhttps://en.wikipedia.org/wiki/HAKMEM\nhttps://en.wikipedia.org/wiki/Munching_square"
    },
    {
      "title": "neongravity",
      "module": "./hacks/neongravity.js",
      "dim": "3d",
      "categories": [
        "plasma"
      ],
      "author": "mrange",
      "year": 2024,
      "description": "The stylish interior of a torus.\n\nhttps://www.shadertoy.com/view/43G3Wc"
    },
    {
      "title": "neontriangulator",
      "module": "./hacks/neontriangulator.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "mrange",
      "year": 2025,
      "description": "Neon triangles zoom.\n\nhttps://www.shadertoy.com/view/tXGGRD"
    },
    {
      "title": "nerverot",
      "module": "./hacks/nerverot.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Dan Bornstein",
      "year": 2000,
      "description": "Nervously vibrating squiggles."
    },
    {
      "title": "noxfire",
      "module": "./hacks/noxfire.js",
      "dim": "3d",
      "categories": [
        "plasma"
      ],
      "author": "Matt Vianueva",
      "year": 2025,
      "description": "I fell in to a burning ring of fire; I went down, down, down and the flames went higher.\n\nhttps://www.shadertoy.com/view/wfG3Dz"
    },
    {
      "title": "papercube",
      "module": "./hacks/papercube.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Ireneusz Szpilewski and Jamie Zawinski",
      "year": 2023,
      "description": "How to make a glueless paper cube."
    },
    {
      "title": "pedal",
      "module": "./hacks/pedal.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Dale Moore",
      "year": 1994,
      "description": "The even-odd winding rule.\n\nhttps://en.wikipedia.org/wiki/Even-odd_rule\nhttps://en.wikipedia.org/wiki/Nonzero-rule"
    },
    {
      "title": "penrose",
      "module": "./hacks/penrose.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Timo Korvola",
      "year": 1996,
      "description": "Quasiperiodic tilings.\n\nIn April 1997, Sir Roger Penrose, a British math professor who has worked with Stephen Hawking on such topics as relativity, black holes, and whether time has a beginning, filed a copyright-infringement lawsuit against the Kimberly-Clark Corporation, which Penrose said copied a pattern he created (a pattern demonstrating that \"a nonrepeating pattern could exist in nature\") for its Kleenex quilted toilet paper. Penrose said he doesn't like litigation but, \"When it comes to the population of Great Britain being invited by a multinational to wipe their bottoms on what appears to be the work of a Knight of the Realm, then a last stand must be taken.\"\n\nAs reported by News of the Weird #491, 4-Jul-1997.\n\nhttps://en.wikipedia.org/wiki/Penrose_tiling\nhttps://en.wikipedia.org/wiki/Tessellation"
    },
    {
      "title": "petri",
      "module": "./hacks/petri.js",
      "dim": "2d",
      "categories": [
        "biota"
      ],
      "author": "Dan Bornstein",
      "year": 1999,
      "description": "Colonies of mold grow in a petri dish. Growing colored circles overlap and leave spiral interference in their wake."
    },
    {
      "title": "piecewise",
      "module": "./hacks/piecewise.js",
      "dim": "2d",
      "categories": [
        "optical",
        "geometry"
      ],
      "author": "Geoffrey Irving",
      "year": 2003,
      "description": "Moving circles switch from visibility to invisibility at intersection points."
    },
    {
      "title": "pinion",
      "module": "./hacks/pinion.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2004,
      "description": "A gear system marches across the screen.\n\nSee also the \"Gears\" and \"M\u00f6bius Gears\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Involute_gear"
    },
    {
      "title": "pipes",
      "module": "./hacks/pipes.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Marcelo Vianna",
      "year": 1997,
      "description": "A growing plumbing system, with bolts and valves."
    },
    {
      "title": "polyominoes",
      "module": "./hacks/polyominoes.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Stephen Montgomery-Smith",
      "year": 2000,
      "description": "Repeatedly attempts to completely fill a rectangle with irregularly-shaped puzzle pieces.\n\nhttps://en.wikipedia.org/wiki/Polyomino"
    },
    {
      "title": "popsquares",
      "module": "./hacks/popsquares.js",
      "dim": "2d",
      "categories": [
        "geometry",
        "plasma"
      ],
      "author": "Levi Burton",
      "year": 2003,
      "description": "A pop-art-ish looking grid of pulsing colors."
    },
    {
      "title": "prococean",
      "module": "./hacks/prococean.js",
      "dim": "3d",
      "categories": [
        "worlds",
        "fluids"
      ],
      "author": "afl_ext",
      "year": 2017,
      "description": "A very fast procedural ocean.\n\nhttps://www.shadertoy.com/view/MdXyzX"
    },
    {
      "title": "protophore",
      "module": "./hacks/protophore.js",
      "dim": "3d",
      "categories": [
        "fractals"
      ],
      "author": "otaviogood",
      "year": 2015,
      "description": "A reflective metal fractal.\n\nhttps://www.shadertoy.com/view/XljGDz"
    },
    {
      "title": "pyro",
      "module": "./hacks/pyro.js",
      "dim": "2d",
      "categories": [
        "particles"
      ],
      "author": "Jamie Zawinski",
      "year": 1992,
      "description": "Exploding fireworks.\n\nSee also the \"Fireworkx\", \"Eruption\", and \"XFlame\" screen savers."
    },
    {
      "title": "qix",
      "module": "./hacks/qix.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 1992,
      "description": "Bounces a series of line segments around the screen with various presentations.\n\nhttps://en.wikipedia.org/wiki/Qix"
    },
    {
      "title": "quasicrystal",
      "module": "./hacks/quasicrystal.js",
      "dim": "3d",
      "categories": [
        "optical",
        "geometry"
      ],
      "author": "Jamie Zawinski",
      "year": 2013,
      "description": "A quasicrystal is a structure that is ordered but aperiodic.\n\nTwo-dimensional quasicrystals can be generated by adding a set of planes where x is the sine of y. Different complex aperiodic plane tilings are produced depending on the period, position, and rotation of the component planes, and whether the rotation of the planes is evenly distributed around the circle (the \"symmetry\" option, above) or random.\n\nSee also the \"RD-Bomb\", \"CWaves\" and \"Penrose\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Quasicrystal"
    },
    {
      "title": "rdbomb",
      "module": "./hacks/rdbomb.js",
      "dim": "2d",
      "categories": [
        "plasma",
        "biota"
      ],
      "author": "Scott Draves",
      "year": 1997,
      "description": "Reaction-diffusion: draws a grid of growing square-like shapes that, once they overtake each other, react in unpredictable ways."
    },
    {
      "title": "rigrekt",
      "module": "./hacks/rigrekt.js",
      "dim": "3d",
      "categories": [
        "worlds",
        "geometry"
      ],
      "heavy": true,
      "author": "Matt Vianueva (diatribes)",
      "year": 2026,
      "description": "Exploring a flooded mega-structure.\n\nhttps://www.shadertoy.com/view/3XKfDV"
    },
    {
      "title": "rocks",
      "module": "./hacks/rocks.js",
      "dim": "2d",
      "categories": [
        "cosmic"
      ],
      "author": "Jamie Zawinski",
      "year": 1992,
      "description": "An asteroid field zooms by."
    },
    {
      "title": "rorschach",
      "module": "./hacks/rorschach.js",
      "dim": "2d",
      "categories": [
        "optical"
      ],
      "author": "Jamie Zawinski",
      "year": 1992,
      "description": "Inkblot patterns via a reflected random walk.\n\nhttps://en.wikipedia.org/wiki/Rorschach_inkblot_test\nhttps://en.wikipedia.org/wiki/Random_walk"
    },
    {
      "title": "rotor",
      "module": "./hacks/rotor.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Tom Lawrence",
      "year": 1997,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nDraws a line segment moving along a complex spiraling curve."
    },
    {
      "title": "rubik",
      "module": "./hacks/rubik.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Marcelo Vianna",
      "year": 1997,
      "description": "A Rubik's Cube that repeatedly shuffles and solves itself.\n\nSee also the \"GLSnake\" and \"Cube21\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Rubik%27s_Cube"
    },
    {
      "title": "rubikblocks",
      "module": "./hacks/rubikblocks.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Vasek Potocek",
      "year": 2009,
      "description": "The \"Rubik's Mirror Blocks\" puzzle.\n\nSee also the \"Rubik\", \"Cube21\", and \"GLSnake\" screen savers.\n\nhttps://en.wikipedia.org/wiki/Combination_puzzles#Irregular_cuboids"
    },
    {
      "title": "scooter",
      "module": "./hacks/scooter.js",
      "dim": "2d",
      "categories": [
        "cosmic"
      ],
      "author": "Sven Thoennissen",
      "year": 2001,
      "description": "Zooming down a tunnel in a star field. Originally an Amiga hack."
    },
    {
      "title": "selfreflect",
      "module": "./hacks/selfreflect.js",
      "dim": "3d",
      "categories": [
        "geometry",
        "optical"
      ],
      "author": "mrange",
      "year": 2024,
      "description": "Platonic solids with inner mirrors.\n\nhttps://www.shadertoy.com/view/XfyXRV"
    },
    {
      "title": "shadebobs",
      "module": "./hacks/shadebobs.js",
      "dim": "2d",
      "categories": [
        "plasma",
        "particles"
      ],
      "author": "Shane Smit",
      "year": 1999,
      "description": "Oscillating oval patterns that look something like vapor trails or neon tubes."
    },
    {
      "title": "sierpinski",
      "module": "./hacks/sierpinski.js",
      "dim": "2d",
      "categories": [
        "fractals"
      ],
      "author": "Desmond Daignault",
      "year": 1997,
      "description": "The 2D Sierpinski triangle fractal.\n\nSee also the \"Sierpinski3D\" screen saver.\n\nhttps://en.wikipedia.org/wiki/Sierpinski_triangle"
    },
    {
      "title": "skyline",
      "module": "./hacks/skyline.js",
      "dim": "3d",
      "categories": [
        "worlds"
      ],
      "author": "otaviogood",
      "year": 2015,
      "description": "A procedurally-generated cityscape.\n\nhttps://www.shadertoy.com/view/XtsSWs"
    },
    {
      "title": "sphere",
      "module": "./hacks/sphere.js",
      "dim": "2d",
      "categories": [
        "surfaces",
        "geometry"
      ],
      "author": "Tom Duff and Jamie Zawinski",
      "year": 1982,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nDraws shaded spheres in multiple colors."
    },
    {
      "title": "spiral",
      "module": "./hacks/spiral.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Peter Schmitzberger",
      "year": 1997,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nMoving circular moir\u00e9 patterns."
    },
    {
      "title": "squiral",
      "module": "./hacks/squiral.js",
      "dim": "2d",
      "categories": [
        "automata"
      ],
      "author": "Jeff Epler",
      "year": 1999,
      "description": "Square-spiral-producing automata. The spirals grow outward until they hit something, then they go around it."
    },
    {
      "title": "stardome",
      "module": "./hacks/stardome.js",
      "dim": "3d",
      "categories": [
        "cosmic"
      ],
      "author": "mrange",
      "year": 2022,
      "description": "Stars and a galaxy under a dome on a moon.\n\nhttps://www.shadertoy.com/view/stBcW1"
    },
    {
      "title": "starfish",
      "module": "./hacks/starfish.js",
      "dim": "2d",
      "categories": [
        "biota",
        "plasma"
      ],
      "author": "Jamie Zawinski",
      "year": 1997,
      "description": "Undulating, throbbing, star-like patterns pulsate, rotate, and turn inside out."
    },
    {
      "title": "starnest",
      "module": "./hacks/starnest.js",
      "dim": "3d",
      "categories": [
        "cosmic"
      ],
      "author": "Pablo Roman Andrioli (Kali)",
      "year": 2013,
      "description": "A star field via 3D kaliset fractal and volumetric rendering.\n\nhttps://www.shadertoy.com/view/XlfGRj"
    },
    {
      "title": "strange",
      "module": "./hacks/strange.js",
      "dim": "2d",
      "categories": [
        "attractors"
      ],
      "author": "Massimino Pascal",
      "year": 1997,
      "description": "Strange attractors: a swarm of dots swoops and twists around.\n\nhttps://en.wikipedia.org/wiki/Attractor#Strange_attractor"
    },
    {
      "title": "stripeytorus",
      "module": "./hacks/stripeytorus.js",
      "dim": "3d",
      "categories": [
        "surfaces"
      ],
      "author": "mrange",
      "year": 2021,
      "description": "The stylish interior of a torus.\n\nhttps://www.shadertoy.com/view/fd33zn"
    },
    {
      "title": "substrate",
      "module": "./hacks/substrate.js",
      "dim": "2d",
      "categories": [
        "curves",
        "geometry"
      ],
      "author": "J. Tarbell and Mike Kershaw",
      "year": 2004,
      "description": "Crystalline lines grow on a computational substrate. A simple perpendicular growth rule creates intricate city-like structures."
    },
    {
      "title": "superquadrics",
      "module": "./hacks/superquadrics.js",
      "dim": "3d",
      "categories": [
        "geometry",
        "surfaces"
      ],
      "author": "Ed Mackey",
      "year": 1987,
      "description": "Morphing 3D shapes."
    },
    {
      "title": "swirl",
      "module": "./hacks/swirl.js",
      "dim": "2d",
      "categories": [
        "plasma",
        "curves"
      ],
      "author": "M. Dobie and R. Taylor",
      "year": 1994,
      "description": "Flowing, swirly patterns."
    },
    {
      "title": "synthwavecity",
      "module": "./hacks/synthwavecity.js",
      "dim": "3d",
      "categories": [
        "worlds"
      ],
      "author": "3w36zj6 (after Jan Mroz)",
      "year": 2022,
      "description": "Let the neon wash over you.\n\nhttps://www.shadertoy.com/view/7lKyDD"
    },
    {
      "title": "thornbird",
      "module": "./hacks/thornbird.js",
      "dim": "2d",
      "categories": [
        "attractors"
      ],
      "author": "Tim Auckland",
      "year": 2002,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 6.05. This fractal is among those generated by \"Discrete\"."
    },
    {
      "title": "topblock",
      "module": "./hacks/topblock.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "rednuht",
      "year": 2006,
      "description": "Creates a 3D world with dropping blocks that build up and up."
    },
    {
      "title": "topologica",
      "module": "./hacks/topologica.js",
      "dim": "3d",
      "categories": [
        "plasma"
      ],
      "author": "Otavio Good",
      "year": 2014,
      "description": "Pulsing lines of light.\n\nhttps://www.shadertoy.com/view/4djXzz"
    },
    {
      "title": "trainmandala",
      "module": "./hacks/trainmandala.js",
      "dim": "3d",
      "categories": [
        "optical",
        "geometry"
      ],
      "author": "mrange",
      "year": 2023,
      "description": "Enter the flowing ring.\n\nhttps://www.shadertoy.com/view/mtjyz1"
    },
    {
      "title": "triangle",
      "module": "./hacks/triangle.js",
      "dim": "2d",
      "categories": [
        "surfaces",
        "worlds"
      ],
      "author": "Tobias Gloth",
      "year": 1997,
      "description": "Generates random mountain ranges using iterative subdivision of triangles."
    },
    {
      "title": "trizm",
      "module": "./hacks/trizm.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "Matt Vianueva",
      "year": 2025,
      "description": "Neon cyber circuit-board-like triangle waves.\n\nhttps://www.shadertoy.com/view/3fcBD8"
    },
    {
      "title": "truchet",
      "module": "./hacks/truchet.js",
      "dim": "2d",
      "categories": [
        "geometry"
      ],
      "author": "Adrian Likins",
      "year": 1998,
      "description": "Line- and arc-based truchet patterns that tile the screen.\n\nhttps://en.wikipedia.org/wiki/Tessellation"
    },
    {
      "title": "truchetzoom",
      "module": "./hacks/truchetzoom.js",
      "dim": "3d",
      "categories": [
        "geometry"
      ],
      "author": "mrange",
      "year": 2024,
      "description": "A looping, distorting truchet chain with scanlines.\n\nhttps://www.shadertoy.com/view/4cBcDy"
    },
    {
      "title": "universeball",
      "module": "./hacks/universeball.js",
      "dim": "3d",
      "categories": [
        "cosmic"
      ],
      "heavy": true,
      "author": "Matt Vianueva",
      "year": 2025,
      "description": "A mysterious orb is surrounded by clouds.\n\nhttps://www.shadertoy.com/view/WcGcWV"
    },
    {
      "title": "vermiculate",
      "module": "./hacks/vermiculate.js",
      "dim": "2d",
      "categories": [
        "curves",
        "biota"
      ],
      "author": "Tyler Pierce",
      "year": 2001,
      "description": "Squiggly worm-like paths."
    },
    {
      "title": "vines",
      "module": "./hacks/vines.js",
      "dim": "2d",
      "categories": [
        "curves",
        "fractals"
      ],
      "author": "Tracy Camp and David Hansen",
      "year": 1997,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nGenerates a continuous sequence of small, curvy geometric patterns."
    },
    {
      "title": "wander",
      "module": "./hacks/wander.js",
      "dim": "2d",
      "categories": [
        "plasma",
        "curves"
      ],
      "author": "Rick Campbell",
      "year": 1999,
      "description": "A colorful random-walk.\n\nhttps://en.wikipedia.org/wiki/Random_walk"
    },
    {
      "title": "whirlwindwarp",
      "module": "./hacks/whirlwindwarp.js",
      "dim": "2d",
      "categories": [
        "particles",
        "fluids"
      ],
      "author": "Paul \"Joey\" Clark",
      "year": 2001,
      "description": "Floating stars are acted upon by a mixture of simple 2D force fields. The strength of each force field changes continuously, and it is also switched on and off at random."
    },
    {
      "title": "whirlygig",
      "module": "./hacks/whirlygig.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Ashton Trey Belew",
      "year": 2001,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nZooming chains of sinusoidal spots."
    },
    {
      "title": "worm",
      "module": "./hacks/worm.js",
      "dim": "2d",
      "categories": [
        "biota",
        "curves"
      ],
      "author": "Brad Taylor, Dave Lemke, Boris Putanec, and Henrik Theiling",
      "year": 1991,
      "description": "This screen saver was removed from the XScreenSaver distribution as of version 5.08.\n\nDraws multicolored worms that crawl around the screen."
    },
    {
      "title": "wormhole",
      "module": "./hacks/wormhole.js",
      "dim": "2d",
      "categories": [
        "cosmic"
      ],
      "author": "Jon Rafkind",
      "year": 2004,
      "description": "Flying through a colored wormhole in space."
    },
    {
      "title": "xanalogtv",
      "module": "./hacks/xanalogtv.js",
      "dim": "2d",
      "categories": [
        "optical"
      ],
      "author": "Trevor Blackwell",
      "year": 2003,
      "description": "An old TV set, including artifacts like snow, bloom, distortion, ghosting, and hash noise. It also simulates the TV warming up. It will cycle through 12 channels, some with images you give it, and some with color bars or nothing but static."
    },
    {
      "title": "xflame",
      "module": "./hacks/xflame.js",
      "dim": "2d",
      "categories": [
        "plasma"
      ],
      "author": "Carsten Haitzler",
      "year": 1996,
      "description": "Pulsing fire. It can also take an arbitrary image and set it on fire too."
    },
    {
      "title": "xlyap",
      "module": "./hacks/xlyap.js",
      "dim": "2d",
      "categories": [
        "fractals"
      ],
      "author": "Ron Record",
      "year": 1991,
      "description": "The Lyapunov exponent makes pretty fractal pictures.\n\nhttps://en.wikipedia.org/wiki/Lyapunov_exponent"
    },
    {
      "title": "xrayswarm",
      "module": "./hacks/xrayswarm.js",
      "dim": "2d",
      "categories": [
        "particles"
      ],
      "author": "Chris Leger",
      "year": 2000,
      "description": "Worm-like swarms of particles with vapor trails."
    },
    {
      "title": "xspirograph",
      "module": "./hacks/xspirograph.js",
      "dim": "2d",
      "categories": [
        "curves"
      ],
      "author": "Rohit Singh",
      "year": 2000,
      "description": "Simulates that pen-in-nested-plastic-gears toy from your childhood.\n\nhttps://en.wikipedia.org/wiki/Spirograph"
    }
  ]
}
