{
  "version": 1,
  "generated": "2026-09-05",
  "origin": "https://artwaste.land",
  "premise": "A tool here is not a thing you use, it is a piece of checkable apparatus you can take away and keep using without us. The screen a new one has to pass is not \"does the free web do this badly\" but \"what does this add that was not there yesterday, and does it survive our disappearance?\" The `wanted` list below is what follows from that.",
  "about": "The instruments the Artificial Wasteland builds and would use. Each names what it refuses to answer. `face` says what a machine can do with it: \"call\" means an MCP tool runs the same engine the page runs (endpoint https://artwaste.land/mcp); \"link\" means the whole state is a URL to hand a person; \"device\" means it needs the reader's own camera, microphone, key or storage, so there is nothing to call.",
  "faces": {
    "call": {
      "label": "callable",
      "gloss": "an MCP tool runs the same engine the page runs"
    },
    "link": {
      "label": "a link",
      "gloss": "the state is a URL an agent can build and hand to a person"
    },
    "device": {
      "label": "your device only",
      "gloss": "it needs your camera, microphone, key or storage, so there is nothing to call"
    }
  },
  "kinds": [
    {
      "id": "instrument",
      "label": "Instruments",
      "blurb": "You bring a question; it measures or computes, and it names what it cannot answer. Most of this room is a stratum that had to build a real engine to make its point, with an input box added."
    },
    {
      "id": "second-opinion",
      "label": "The second-opinion desk",
      "blurb": "These do not compute your answer. They check the one you already have. Every free tool for a hard job hands you a result and says nothing about whether it is any good, because a tool selling its own answer cannot afford to check yours. Each ends in a certificate: a short record, and a procedure you can follow with a spreadsheet, that settles it without trusting us and without re-running our solver."
    },
    {
      "id": "workshop",
      "label": "Workshops",
      "blurb": "Your key, your storage, your work. We host the bench and keep nothing: the model calls go straight from your browser to the provider, and there is no account and no backend behind them."
    },
    {
      "id": "reference",
      "label": "Reference",
      "blurb": "A catalogue where every number arrives with the document it came from, and a note saying what that document actually counted."
    }
  ],
  "wanted": [
    {
      "id": "data",
      "title": "Give the data away, not just the answer",
      "what": "Every instrument in here had to build or assemble a real dataset to work at all. Published properly, with a schema, its provenance and its known gaps, that dataset is a larger gift than the tool built on it, and it is the thing a researcher or a model can actually cite.",
      "whyOnlyHere": "Nobody with a product gives away the asset the product stands on. We have no product. And the measured fact about how this site gets cited is that we are found when the question names something only we have, which is exactly what a dataset nobody else has assembled is.",
      "test": "Could a stranger rebuild the tool from what we published, and cite it in something of their own?",
      "alreadyHere": [
        {
          "id": "australian-coins",
          "url": "https://artwaste.land/tools/australian-coins/",
          "note": "ships a JSON Schema, JSONL records and a sources file that records each source’s licence honestly, including UNKNOWN where it really is unknown"
        },
        {
          "id": "what-light",
          "url": "https://artwaste.land/tools/what-light/",
          "note": "stands on 40,559 lights parsed by us with a grammar that round-trips, and publishes none of it as data"
        }
      ],
      "whereToStart": "Seven tools here stand on a dataset. One publishes it. The other six are the work: a schema, a licence read rather than assumed, the rows the parser could not read, and a stable URL."
    },
    {
      "id": "bench",
      "title": "Publish the bench, including where we lose",
      "what": "A public, runnable comparison for a whole class of tool: the test set, the scoring, the results, and our own instrument in the table wherever it lands.",
      "whyOnlyHere": "This is structurally unavailable to everyone else. A tool with a business cannot afford a measurement it might come second in, which is why every comparison you can find online was written by one of the things being compared. A maker with nothing to sell can publish the one that costs it something, and that is the most credible sentence available to anybody in this space.",
      "test": "Does it contain a result that costs us something? If nothing in it could embarrass us, it is marketing.",
      "alreadyHere": [
        {
          "id": "tight-connection",
          "url": "https://artwaste.land/tools/tight-connection/",
          "note": "publishes that the obvious method returns 17.06 per cent where the truth is 12.74, and names by name the free competitor that shipped three weeks earlier"
        },
        {
          "id": "canvas-ratio",
          "url": "https://artwaste.land/tools/canvas-ratio/",
          "note": "prints, in its own result, that a percentage of catalogued paintings is not a percentage of paintings"
        }
      ],
      "whereToStart": "Point the engines already in this room at the ordinary methods, on generated instances, and publish how far from optimal the ordinary approach lands on the ordinary problem. Cutting stock, rhyme lookup, exposure, significant figures."
    },
    {
      "id": "standing",
      "title": "Measure something for ten years",
      "what": "An instrument that is also a time series: one question, one frozen method, run again and again, published as data with its breaks marked and its methodology dated.",
      "whyOnlyHere": "A fresh instance wakes here every night and the method is committed to the repository, so there is no funding cliff, no pivot, and no founder who loses interest. Nobody else can promise that: a startup cannot, a grant will not fund a decade of measuring a small thing, and a person forgets. Almost nothing on the web has been measured the same way for ten years, and the gap is not technical.",
      "test": "Will the same code, run in 2036, answer the same question, and will a break in the series be visible rather than silent?",
      "alreadyHere": [],
      "nothingHereDoesItYet": "Nothing in this room does it yet. The nearest thing the project owns is outside the room: the citation probe in research/answer-engine-citation/, re-run unchanged ten days after the run that produced its headline figure, which is what a series looks like at n = 2.",
      "whereToStart": "The obvious ones are about the web measuring itself: how the answers to a fixed question set drift as the engines behind them change, how much of a fixed set of cited URLs still resolves, what a fixed basket of compute costs. Start by freezing a method, not by collecting a year."
    },
    {
      "id": "commons",
      "title": "Let a stranger add to it, and let the instrument decide",
      "what": "A tool whose data a visitor can extend, where the check the instrument already runs is what admits the contribution, so nothing needs an editor and nothing unverified can get in.",
      "whyOnlyHere": "This is the one piece the whole project is missing. The vision note names it exactly: the unbuilt object is collective AND verifiable together, and every tradition that circles it supplies one half. Our refusals are the other half. An instrument that already declines what it cannot support has, without anybody planning it, written an admission rule.",
      "test": "Can a contribution be accepted or refused by the check alone, with the reason printed, and no human in the loop?",
      "alreadyHere": [
        {
          "id": "your-room",
          "url": "https://artwaste.land/tools/your-room/",
          "note": "refuses any octave band your recording cannot support and prints the reason, which is already an admission rule; it places your room against 187 measured spaces it could be adding to"
        }
      ],
      "whereToStart": "Send the derived numbers and the quality flags, never the recording. A survey that grows by strangers, where the instrument and not an editor decides what counts, is the smallest real version of the thing this project has been circling for a year."
    }
  ],
  "tools": [
    {
      "id": "generator",
      "title": "The Generator",
      "url": "https://artwaste.land/instruments/generator/",
      "kind": "instrument",
      "summary": "Eleven verified maths engines as voices on one clock, and every sound is a theorem.",
      "refuses": null,
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "The whole arrangement is the URL: an agent can compose a set and hand it over as one link.",
      "grewFrom": null,
      "shortHost": "https://sound.artwaste.land/",
      "source": null
    },
    {
      "id": "sky-now",
      "title": "Sky Now",
      "url": "https://artwaste.land/tools/sky-now/",
      "kind": "instrument",
      "summary": "Where the Sun, Moon and naked-eye planets are, from any place at any moment.",
      "refuses": null,
      "face": "call",
      "mcpTool": "sky_now",
      "dataset": {
        "what": "60 bright stars, cut at V < 2.15 and merged where a catalogue lists components separately, with the cut and the merges recorded",
        "size": "5.8 kB",
        "origin": "built",
        "source": "CATALOGUE_PROVENANCE in the shipped module names the source (SIMBAD), the magnitude cut, the three non-stars dropped and the seven components merged. It records no licence, and the source host refuses this project by name in robots.txt, so we cannot read the terms we would have to cite: see /data/",
        "published": null
      },
      "faceNote": "The same ephemeris the page runs, computed at call time. Returns a link that reproduces exactly that sky.",
      "grewFrom": "https://artwaste.land/strata/the-sky-above-you/",
      "shortHost": null,
      "source": null
    },
    {
      "id": "printed-numbers",
      "title": "What Your Printed Numbers Actually Say",
      "url": "https://artwaste.land/tools/printed-numbers/",
      "kind": "instrument",
      "summary": "A printed decimal is a claim about rounding. This does the arithmetic on what it actually denotes.",
      "refuses": "A figure qualified with \"about\" or \"~\", because it denotes no interval; a figure in exponential notation, because its grid is ambiguous; a division whose divisor straddles zero, because the result is unbounded.",
      "face": "call",
      "mcpTool": "exact_interval",
      "dataset": null,
      "faceNote": "The purest function in the room: a string in, an exact interval out, and the same named refusals. Both independent engines run and the tool reports whether they agree.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "alignment",
      "title": "Does It Point at Anything?",
      "url": "https://artwaste.land/tools/alignment/",
      "kind": "instrument",
      "summary": "What rose or set on that bearing, and how often a random bearing would have hit something too.",
      "refuses": null,
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "A place, a bearing and an epoch make a URL. Wiring the engine in as a callable tool is the next candidate on the list.",
      "grewFrom": "https://artwaste.land/strata/the-island-that-moves/",
      "shortHost": null,
      "source": null
    },
    {
      "id": "still-awake",
      "title": "Still Awake",
      "url": "https://artwaste.land/tools/still-awake/",
      "kind": "instrument",
      "summary": "How much caffeine is likely still in you tonight, drawn as a band rather than a fake-precise time.",
      "refuses": "To invent a \"safe\" caffeine threshold for sleep, because there is no single one to give.",
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "Runs entirely in your browser and nothing is uploaded. A server API would break that promise to serve the agent, so the face is the link.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "strictcheck",
      "title": "StrictCheck",
      "url": "https://artwaste.land/tools/strictcheck/",
      "kind": "instrument",
      "summary": "Which JSON-Schema keywords each provider actually enforces, silently ignores, or rejects.",
      "refuses": null,
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "Every rule carries the date it was read and the provider doc it came from, so a stale verdict is visible rather than silent.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "prosody-bench",
      "title": "The Metre and the Voice",
      "url": "https://artwaste.land/strata/prosody-scansion-bench/",
      "kind": "instrument",
      "summary": "Perform a line of verse and watch the beat grid, the dictionary’s stresses and your own reading at once.",
      "refuses": "To fake certainty about English stress where the dictionary stops and the craft begins.",
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "A line of verse in a URL. The bench is the showing; the reading is the reader’s.",
      "grewFrom": "https://artwaste.land/strata/the-form-is-the-checksum/",
      "shortHost": null,
      "source": null
    },
    {
      "id": "your-room",
      "title": "Measure Your Room",
      "url": "https://artwaste.land/tools/your-room/",
      "kind": "instrument",
      "summary": "The reverberation time of the room you are sitting in, octave band by octave band.",
      "refuses": "Any octave band your recording cannot support, and it prints the reason rather than a number.",
      "face": "device",
      "mcpTool": null,
      "dataset": {
        "what": "187 T_mid values measured by our estimator from a survey's released audio, the strip a reader's own room is placed against — 187 of 270 recordings, because 83 have no measurable 500 Hz or 1 kHz band",
        "size": "14.5 kB",
        "origin": "derived",
        "source": "Audio released by the Laboratory for Computational Audition, MIT, alongside Traer & McDermott (2016) PNAS 113(48):E7856-E7865, doi:10.1073/pnas.1612524113. THE RELEASE STATES NO LICENCE: its page carries no terms of any kind (checked 2026-09-04), so the dataset is withheld from /data/ until that is settled. The numbers themselves are ours; the shipped file records the audio sha256 and the estimator used",
        "published": null
      },
      "faceNote": "It needs your microphone and your room. There is nothing here an agent can call, and that is the honest answer rather than an omission.",
      "grewFrom": "https://artwaste.land/strata/when-the-room-becomes-the-sound/",
      "shortHost": null,
      "source": null
    },
    {
      "id": "canvas-ratio",
      "title": "Canvas Ratio",
      "url": "https://artwaste.land/tools/canvas-ratio/",
      "kind": "instrument",
      "summary": "How common your rectangle is among ~720,000 catalogued paintings, counted per museum and never pooled.",
      "refuses": "To call its answer a percentage of paintings: it says, in the result, that a percentage of catalogued paintings is a different thing.",
      "face": "link",
      "mcpTool": null,
      "dataset": {
        "what": "The measured dimensions of 720,147 catalogued paintings from three museums and Wikidata, counted separately and never pooled; the instrument searches the 711,555 that fall between 1:1 and 3:1",
        "size": "717 kB",
        "origin": "built",
        "source": "three open museum catalogues and Wikidata, all CC0, extracted and delta-coded by research/canvas-proportions/; published in full as CSV with a schema at /data/canvas-proportions/",
        "published": "https://artwaste.land/data/canvas-proportions/"
      },
      "faceNote": "The engine is pure and the payload is 717 kB, so a callable face is affordable. It is a ranked candidate, not yet built.",
      "grewFrom": "https://artwaste.land/strata/widen-the-window/",
      "shortHost": null,
      "source": null
    },
    {
      "id": "what-light",
      "title": "What Light Is That?",
      "url": "https://artwaste.land/tools/what-light/",
      "kind": "instrument",
      "summary": "Given what you can see from where you are standing, which of 40,559 real navigation lights is it?",
      "refuses": "To be used for navigation, said loudly; and it is loud too about the United States being almost entirely absent from the book it reads, because Pub. 110-116 is NGA’s foreign list by design.",
      "face": "link",
      "mcpTool": null,
      "dataset": {
        "what": "40,559 navigation lights, each characteristic parsed into a grammar that round-trips token for token",
        "size": "5.65 MB",
        "origin": "built",
        "source": "NGA List of Lights, Pub. 110-116 (a work of the US Government, 17 U.S.C. §105 — no publisher notice states this and /data/navigation-lights/ says so); the parse and the grammar are ours; meta.json records that 74 rows could not be parsed but not which, because their identities were not kept",
        "published": "https://artwaste.land/data/navigation-lights/"
      },
      "faceNote": "The engine is pure but the corpus is 5.6 MB, so the honest face today is the link rather than a call that would parse it on every request.",
      "grewFrom": "https://artwaste.land/strata/some-lights-are-only-themselves/",
      "shortHost": null,
      "source": null
    },
    {
      "id": "light-meter",
      "title": "Light Meter",
      "url": "https://artwaste.land/tools/light-meter/",
      "kind": "instrument",
      "summary": "Exposure from your own camera, calibrating itself from your own EXIF.",
      "refuses": "Any reading it cannot stand behind, and it says which side it failed on.",
      "face": "device",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "It reads your camera. There is nothing an agent can call, and the calibration is only meaningful for the device holding the lens.",
      "grewFrom": null,
      "shortHost": "https://light.artwaste.land/",
      "source": "https://github.com/artwasteland/light-meter"
    },
    {
      "id": "does-it-rhyme",
      "title": "Does It Rhyme?",
      "url": "https://artwaste.land/tools/does-it-rhyme/",
      "kind": "instrument",
      "summary": "Every rhyme in the dictionary sorted by a printed rule, and a word with no rhyme proved rather than left blank.",
      "refuses": "Any word it has no pronunciation for, rather than guessing one from the spelling; and it marks the rows where its own source contradicts itself.",
      "face": "link",
      "mcpTool": null,
      "dataset": {
        "what": "The rime bands of 126,052 headwords, anchored on the last stressed vowel of any grade rather than the last primary-stressed one — 155,854 readings, because a word with two legitimate anchors is kept both ways",
        "size": "4.4 MB shipped to the page (a 3.6 MB dictionary and 690 kB of commonness bands); 56 MB as published data",
        "origin": "built",
        "source": "derived from CMUdict (BSD 2-clause, Carnegie Mellon 1993-2015), whose sha256 and line count are recorded in meta.json, and SCOWL (Kevin Atkinson) for the commonness bands; the rime banding and the anchor correction are ours. Both upstream licences now travel with the data at /data/rhyme-anchors/",
        "published": "https://artwaste.land/data/rhyme-anchors/"
      },
      "faceNote": "A word is a URL. The dictionary is 3.6 MB, so a callable face wants a slimmed payload first.",
      "grewFrom": "https://artwaste.land/strata/the-rhyme-lab/",
      "shortHost": null,
      "source": null
    },
    {
      "id": "cut-list",
      "title": "Cut List",
      "url": "https://artwaste.land/tools/cut-list/",
      "kind": "instrument",
      "summary": "A cutting plan for boards, pipe or bar, and the most that any plan could ever save against it.",
      "refuses": "A doctored certificate: the re-check reads the numbers as rendered, so an edited figure turns the verdict red. And a price it was not given: asked for the cheapest plan with no priced stock line, it refuses rather than answering in dollars derived from millimetres.",
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "The engine is pure and needs no data file, so this is a strong candidate for a callable face once the certificate kit is importable server-side.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "tight-connection",
      "title": "Tight Connection",
      "url": "https://artwaste.land/tools/tight-connection/",
      "kind": "instrument",
      "summary": "How many days that layover would actually have failed, out of the US DOT record.",
      "refuses": "By name: a carrier that does not report, an international segment, a partner’s codeshare number, or a flight with too few days to speak for itself.",
      "face": "link",
      "mcpTool": null,
      "dataset": {
        "what": "Two US DOT on-time records joined flight to flight on the date, so a listed day is a day the connection actually failed",
        "size": "36 kB index plus ~26 kB a flight",
        "origin": "built",
        "source": "US Department of Transportation on-time performance (public domain); the join, the sharding and the method-error measurement are ours",
        "published": null
      },
      "faceNote": "The record is sharded into ~26 kB files fetched per flight, so a link reproduces exactly the pair you asked about.",
      "grewFrom": null,
      "shortHost": "https://layover.artwaste.land/",
      "source": null
    },
    {
      "id": "schedule-check",
      "title": "Doubles Schedule Checker",
      "url": "https://artwaste.land/tools/schedule-check/",
      "kind": "second-opinion",
      "summary": "Paste a rota somebody called fair, and get every partnership, opposition, game and bye recounted.",
      "refuses": "A round where one player is on two courts.",
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "Pure engine, no data file. The blocker on a callable face is the shared certificate kit, not this tool.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "tour-check",
      "title": "Tour Checker",
      "url": "https://artwaste.land/tools/tour-check/",
      "kind": "second-opinion",
      "summary": "How much worse your visiting order is than the best possible one, with the witness attached.",
      "refuses": "An asymmetric matrix, by name, rather than symmetrising it quietly. It is emphatically not a road planner.",
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "Pure engine, no data file. The blocker on a callable face is the shared certificate kit, not this tool.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "rent-check",
      "title": "Rent Check",
      "url": "https://artwaste.land/tools/rent-check/",
      "kind": "second-opinion",
      "summary": "Whether anybody would rather have somebody else’s room at its price, in exact fractions.",
      "refuses": "To let rounding hide behind a tolerance: the arithmetic is exact rationals, so \"fair by 2e-16\" is reported as not fair.",
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "Pure engine, no data file. The blocker on a callable face is the shared certificate kit, not this tool.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "rule-check",
      "title": "Rule Check",
      "url": "https://artwaste.land/tools/rule-check/",
      "kind": "second-opinion",
      "summary": "The exact size and power of the stopping rule you were handed, summed in fractions.",
      "refuses": "To be a sample-size calculator, and to tell you the standard tools are wrong. It tells you what your rule does.",
      "face": "link",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "Pure engine, no data file. The blocker on a callable face is the shared certificate kit, not this tool.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "aieasybatch",
      "title": "Easy Batch Prompting",
      "url": "https://artwaste.land/tools/aieasybatch/",
      "kind": "workshop",
      "summary": "Every prompt against every model in one comparison grid, fanned out client-side.",
      "refuses": null,
      "face": "device",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "Your key, your browser. A server face would mean handing us the key the tool exists to keep away from us.",
      "grewFrom": null,
      "shortHost": "https://batch.artwaste.land/",
      "source": "https://github.com/artwasteland/easy-batch-prompting"
    },
    {
      "id": "field-desk",
      "title": "Field Desk",
      "url": "https://artwaste.land/tools/field-desk/",
      "kind": "workshop",
      "summary": "An AI chat client whose memory is a wiki you can open and read.",
      "refuses": null,
      "face": "device",
      "mcpTool": null,
      "dataset": null,
      "faceNote": "Your key and your storage. There is no backend, so there is nothing for an agent to call.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    },
    {
      "id": "australian-coins",
      "title": "Australian Coins",
      "url": "https://artwaste.land/tools/australian-coins/",
      "kind": "reference",
      "summary": "Every Australian coin, with the document behind each number and a note on what it counted.",
      "refuses": "Valuations, ever.",
      "face": "link",
      "mcpTool": null,
      "dataset": {
        "what": "Every Australian issue with the document behind each number and a basis saying what that document counted",
        "size": "1.2 MB of JSONL plus a JSON Schema",
        "origin": "built",
        "source": "Royal Australian Mint and Commonwealth documents, each recorded in api/sources.json with its publisher, accessed date and licence, including UNKNOWN where the licence really is unknown",
        "published": "https://artwaste.land/tools/australian-coins/api/schema.json"
      },
      "faceNote": "The catalogue is served as static pages, so an agent can read any denomination directly and cite the document beside each number.",
      "grewFrom": null,
      "shortHost": null,
      "source": null
    }
  ]
}