{
  "version": 1,
  "generatedAt": "2026-09-27T00:08:32.598Z",
  "mode": "demo",
  "concept": true,
  "notice": "Detent is a concept product. This site is a design and engineering demonstration; nothing is for sale and no payment or personal data is collected.",
  "seller": {
    "name": "Detent Labs",
    "brand": "Detent",
    "url": "https://alexmorrison12.github.io/detent/",
    "email": "hello@detent.example"
  },
  "currency": "USD",
  "launch": {
    "phase": "reserve",
    "phaseName": "Reserve",
    "phases": [
      {
        "id": "tease",
        "name": "Tease",
        "starts": "2026-10-06",
        "landing": "https://alexmorrison12.github.io/detent/l/tease/",
        "stage": "announced",
        "current": false
      },
      {
        "id": "waitlist",
        "name": "Waitlist",
        "starts": "2026-10-20",
        "landing": "https://alexmorrison12.github.io/detent/l/waitlist/",
        "stage": "waitlist",
        "current": false
      },
      {
        "id": "reserve",
        "name": "Reserve",
        "starts": "2026-11-10",
        "landing": "https://alexmorrison12.github.io/detent/l/reserve/",
        "stage": "reservable",
        "current": true
      },
      {
        "id": "launch",
        "name": "Launch day",
        "starts": "2026-12-01",
        "landing": "https://alexmorrison12.github.io/detent/l/launch/",
        "stage": "orderable",
        "current": false
      },
      {
        "id": "live",
        "name": "Live",
        "starts": "2026-12-04",
        "landing": "https://alexmorrison12.github.io/detent/",
        "stage": "orderable",
        "current": false
      }
    ],
    "launchDate": "2026-12-01T17:00:00Z",
    "launchPriceEnds": "2026-12-04T17:00:00Z",
    "shipBatches": [
      "February 2027",
      "April 2027"
    ],
    "deposit": {
      "usd": 20,
      "foundersUsd": 50,
      "refundable": true
    },
    "foundersRun": 2000
  },
  "products": [
    {
      "id": "one",
      "sku": "DT1",
      "name": "Detent One",
      "summary": "The dial. Every feel, every integration, every update.",
      "url": "https://alexmorrison12.github.io/detent/shop/",
      "priceUsd": 349,
      "launchPriceUsd": 299,
      "currency": "USD",
      "installments": {
        "count": 4,
        "label": "or 4 interest-free payments of $74.75"
      },
      "limitedTo": null,
      "includes": [
        "Detent One in Raw, Graphite or Glacier",
        "1 m braided USB-C cable",
        "Free engraving on the base",
        "60-day studio trial, 3-year warranty"
      ],
      "availability": {
        "phase": "reserve",
        "stage": "reservable",
        "purchasable": false,
        "schemaOrg": "https://schema.org/PreOrder",
        "currentPriceUsd": 299,
        "deposit": {
          "usd": 20,
          "refundable": true,
          "creditedToOrder": true
        },
        "ships": "Batch 1 ships February 2027; Batch 2 April 2027",
        "action": {
          "label": "Reserve for $20",
          "url": "https://alexmorrison12.github.io/detent/l/reserve/",
          "note": "Fully refundable. Locks the $299 launch price."
        }
      },
      "variants": [
        {
          "id": "one-raw",
          "sku": "DT1-RAW",
          "name": "Detent One, Raw",
          "finish": {
            "id": "raw",
            "name": "Raw",
            "description": "Bead-blasted 6061 aluminum. Cool, bright, a little industrial.",
            "color": "#c9c8c6"
          },
          "url": "https://alexmorrison12.github.io/detent/shop/?edition=one&finish=raw",
          "images": [
            "https://alexmorrison12.github.io/detent/renders/raw-config-240.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-config-480.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-config-800.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-config.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-exploded-240.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-exploded-480.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-exploded-800.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-exploded.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-front-240.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-front-480.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-front-800.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-front.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-240.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-480.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-800.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-240.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-480.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-800.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-clock.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-hero.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-side-240.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-side-480.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-side-800.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-side.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-top-240.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-top-480.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-top-800.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-top.webp",
            "https://alexmorrison12.github.io/detent/renders/raw-config-240.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-config-480.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-config-800.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-config.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-exploded-240.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-exploded-480.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-exploded-800.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-exploded.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-front-240.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-front-480.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-front-800.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-front.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-240.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-480.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-800.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-240.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-480.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-800.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-hero-clock.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-hero.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-side-240.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-side-480.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-side-800.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-side.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-top-240.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-top-480.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-top-800.avif",
            "https://alexmorrison12.github.io/detent/renders/raw-top.avif",
            "https://alexmorrison12.github.io/detent/og/shop.png"
          ]
        },
        {
          "id": "one-graphite",
          "sku": "DT1-GRAPHITE",
          "name": "Detent One, Graphite",
          "finish": {
            "id": "graphite",
            "name": "Graphite",
            "description": "Anodized near-black. Disappears on a dark desk until you touch it.",
            "color": "#2a2729"
          },
          "url": "https://alexmorrison12.github.io/detent/shop/?edition=one&finish=graphite",
          "images": [
            "https://alexmorrison12.github.io/detent/renders/graphite-config-240.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-config-480.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-config-800.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-config.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-exploded-240.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-exploded-480.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-exploded-800.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-exploded.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-front-240.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-front-480.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-front-800.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-front.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-hero-240.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-hero-480.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-hero-800.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-hero.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-side-240.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-side-480.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-side-800.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-side.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-top-240.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-top-480.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-top-800.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-top.webp",
            "https://alexmorrison12.github.io/detent/renders/graphite-config-240.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-config-480.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-config-800.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-config.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-exploded-240.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-exploded-480.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-exploded-800.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-exploded.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-front-240.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-front-480.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-front-800.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-front.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-hero-240.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-hero-480.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-hero-800.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-hero.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-side-240.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-side-480.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-side-800.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-side.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-top-240.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-top-480.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-top-800.avif",
            "https://alexmorrison12.github.io/detent/renders/graphite-top.avif",
            "https://alexmorrison12.github.io/detent/og/shop.png"
          ]
        },
        {
          "id": "one-glacier",
          "sku": "DT1-GLACIER",
          "name": "Detent One, Glacier",
          "finish": {
            "id": "glacier",
            "name": "Glacier",
            "description": "Pale blue anodize, the color of cold aluminum at 6 a.m.",
            "color": "#b8c9d6"
          },
          "url": "https://alexmorrison12.github.io/detent/shop/?edition=one&finish=glacier",
          "images": [
            "https://alexmorrison12.github.io/detent/renders/glacier-config-240.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-config-480.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-config-800.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-config.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-exploded-240.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-exploded-480.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-exploded-800.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-exploded.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-front-240.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-front-480.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-front-800.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-front.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-hero-240.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-hero-480.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-hero-800.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-hero.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-side-240.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-side-480.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-side-800.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-side.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-top-240.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-top-480.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-top-800.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-top.webp",
            "https://alexmorrison12.github.io/detent/renders/glacier-config-240.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-config-480.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-config-800.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-config.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-exploded-240.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-exploded-480.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-exploded-800.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-exploded.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-front-240.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-front-480.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-front-800.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-front.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-hero-240.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-hero-480.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-hero-800.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-hero.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-side-240.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-side-480.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-side-800.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-side.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-top-240.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-top-480.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-top-800.avif",
            "https://alexmorrison12.github.io/detent/renders/glacier-top.avif",
            "https://alexmorrison12.github.io/detent/og/shop.png"
          ]
        }
      ]
    },
    {
      "id": "founders",
      "sku": "DT1-F",
      "name": "Founders Edition",
      "summary": "Numbered 0001–2000 in Tally red, with a machined walnut plinth.",
      "url": "https://alexmorrison12.github.io/detent/shop/",
      "priceUsd": 449,
      "launchPriceUsd": 449,
      "currency": "USD",
      "installments": {
        "count": 4,
        "label": "or 4 interest-free payments of $112.25"
      },
      "limitedTo": 2000,
      "includes": [
        "Detent One in Tally, serial-engraved 0001–2000",
        "Machined walnut plinth ($59 value)",
        "Founders feel pack: 12 profiles tuned with early testers",
        "Early firmware channel for life",
        "Everything in Detent One"
      ],
      "availability": {
        "phase": "reserve",
        "stage": "reservable",
        "purchasable": false,
        "schemaOrg": "https://schema.org/PreOrder",
        "currentPriceUsd": 449,
        "deposit": {
          "usd": 50,
          "refundable": true,
          "creditedToOrder": true
        },
        "ships": "Batch 1 ships February 2027; Batch 2 April 2027",
        "action": {
          "label": "Reserve for $20",
          "url": "https://alexmorrison12.github.io/detent/l/reserve/",
          "note": "Fully refundable. Locks the $299 launch price."
        }
      },
      "variants": [
        {
          "id": "founders-tally",
          "sku": "DT1-F-TALLY",
          "name": "Founders Edition, Tally",
          "finish": {
            "id": "tally",
            "name": "Tally",
            "description": "The on-air red. Numbered, engraved, and only on the Founders Edition.",
            "color": "#c4124f"
          },
          "url": "https://alexmorrison12.github.io/detent/shop/?edition=founders&finish=tally",
          "images": [
            "https://alexmorrison12.github.io/detent/renders/tally-config-240.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-config-480.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-config-800.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-config.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-exploded-240.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-exploded-480.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-exploded-800.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-exploded.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-front-240.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-front-480.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-front-800.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-front.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-hero-240.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-hero-480.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-hero-800.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-hero.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-side-240.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-side-480.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-side-800.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-side.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-top-240.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-top-480.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-top-800.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-top.webp",
            "https://alexmorrison12.github.io/detent/renders/tally-config-240.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-config-480.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-config-800.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-config.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-exploded-240.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-exploded-480.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-exploded-800.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-exploded.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-front-240.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-front-480.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-front-800.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-front.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-hero-240.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-hero-480.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-hero-800.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-hero.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-side-240.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-side-480.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-side-800.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-side.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-top-240.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-top-480.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-top-800.avif",
            "https://alexmorrison12.github.io/detent/renders/tally-top.avif",
            "https://alexmorrison12.github.io/detent/og/shop.png"
          ]
        }
      ]
    }
  ],
  "accessories": [
    {
      "id": "plinth",
      "name": "Walnut plinth",
      "priceUsd": 59,
      "description": "Tilts the dial 8° toward you. Oiled black walnut, machined pocket.",
      "url": "https://alexmorrison12.github.io/detent/shop/"
    },
    {
      "id": "case",
      "name": "Travel case",
      "priceUsd": 39,
      "description": "Molded felt shell with a cable pocket. Fits in a laptop sleeve.",
      "url": "https://alexmorrison12.github.io/detent/shop/"
    },
    {
      "id": "cable",
      "name": "Coiled cable",
      "priceUsd": 25,
      "description": "Aviator-coiled USB-C in graphite. Because you were going to ask.",
      "url": "https://alexmorrison12.github.io/detent/shop/"
    }
  ],
  "policies": {
    "trialDays": 60,
    "warrantyYears": 3,
    "freeShipping": true,
    "installments": 4,
    "trial": "60-day studio trial, free return shipping",
    "warranty": "3 years, parts and labor",
    "repair": "Four Torx screws. Battery, foot and knob cap sold as parts",
    "shipping": [
      {
        "q": "Where do you ship?",
        "a": "The US, Canada, the UK, the EU, Australia, New Zealand, Japan and South Korea at launch, with duties included in the price you see."
      },
      {
        "q": "Is shipping free?",
        "a": "Yes, everywhere we ship, with tracking and insurance."
      }
    ],
    "buying": [
      {
        "q": "How does the $20 reservation work?",
        "a": "A $20 deposit holds your place and locks the $299 launch price on Detent One. The Founders Edition is always $449; its $50 deposit holds one numbered serial. When your batch is ready we email a ship date and a link to pay the rest; the deposit comes off the price. Cancel any time before it ships for a full refund, one click, no questions."
      },
      {
        "q": "When does it ship?",
        "a": "Batch 1 ships in February 2027 and Batch 2 in April 2027. Reservations are filled in order, and your confirmation email shows your batch."
      },
      {
        "q": "What makes the Founders Edition different?",
        "a": "Tally red anodize, a serial number from 0001 to 2000 engraved on the base, a machined walnut plinth, the Founders feel pack and early firmware for life. When the 2,000 are gone, Tally is gone."
      },
      {
        "q": "What if I do not love it?",
        "a": "Use it for 60 days. If it has not earned its spot on your desk, send it back with the prepaid label for a full refund."
      },
      {
        "q": "Can I pay over time?",
        "a": "Yes, from December 4, when the store goes live. Checkout splits the price into 4 interest-free payments: $87.25 each for Detent One at $349. It is not offered on deposits or on launch-week orders."
      }
    ],
    "privacy": "https://alexmorrison12.github.io/detent/legal/privacy/",
    "terms": "https://alexmorrison12.github.io/detent/legal/terms/"
  },
  "specs": [
    {
      "group": "Body",
      "label": "Material",
      "value": "6061-T6 aluminum, CNC-machined from one billet"
    },
    {
      "group": "Body",
      "label": "Finish",
      "value": "Bead-blasted; Type II anodize (Graphite, Glacier, Tally)"
    },
    {
      "group": "Body",
      "label": "Dimensions",
      "value": "Ø 72 mm base, Ø 58 mm knob, 44 mm tall"
    },
    {
      "group": "Body",
      "label": "Weight",
      "value": "412 g. It does not slide."
    },
    {
      "group": "Body",
      "label": "Foot",
      "value": "Replaceable silicone, micro-suction"
    },
    {
      "group": "Haptics",
      "label": "Motor",
      "value": "Brushless gimbal motor, field-oriented control at 10 kHz"
    },
    {
      "group": "Haptics",
      "label": "Position sensing",
      "value": "14-bit magnetic encoder, 0.022° resolution"
    },
    {
      "group": "Haptics",
      "label": "Peak torque",
      "value": "32 mN·m"
    },
    {
      "group": "Haptics",
      "label": "Torque on battery",
      "value": "24 mN·m peak, capped to save charge"
    },
    {
      "group": "Haptics",
      "label": "Press",
      "value": "Force-sensing knob, three pressure levels"
    },
    {
      "group": "Haptics",
      "label": "Profiles on device",
      "value": "64, switched automatically per app"
    },
    {
      "group": "Display & light",
      "label": "Display",
      "value": "1.43″ round AMOLED, 466 × 466, under strengthened glass"
    },
    {
      "group": "Display & light",
      "label": "Refresh",
      "value": "60 Hz, always-on dim mode"
    },
    {
      "group": "Display & light",
      "label": "Halo",
      "value": "24-LED light ring in the base, per-profile color"
    },
    {
      "group": "Connectivity & power",
      "label": "Wired",
      "value": "USB-C: HID + class-compliant MIDI, no driver needed"
    },
    {
      "group": "Connectivity & power",
      "label": "Wireless",
      "value": "Bluetooth LE 5.3, three pairings"
    },
    {
      "group": "Connectivity & power",
      "label": "Latency",
      "value": "Under 4 ms wired, under 12 ms wireless"
    },
    {
      "group": "Connectivity & power",
      "label": "Battery",
      "value": "2,000 mAh, about 40 hours of active haptics"
    },
    {
      "group": "Connectivity & power",
      "label": "Works with",
      "value": "macOS 13+, Windows 11, Linux, iPadOS"
    },
    {
      "group": "Software",
      "label": "Companion app",
      "value": "Detent Studio for macOS, Windows and Linux"
    },
    {
      "group": "Software",
      "label": "Account",
      "value": "None required. Local-first, no cloud, no telemetry by default"
    },
    {
      "group": "Software",
      "label": "SDK",
      "value": "Open SDK (TypeScript and Rust); profiles are plain JSON"
    },
    {
      "group": "Software",
      "label": "Firmware",
      "value": "Open source (Apache-2.0), signed updates over USB or BLE"
    },
    {
      "group": "In the box",
      "label": "Detent One",
      "value": "In your finish, engraved if you asked"
    },
    {
      "group": "In the box",
      "label": "Cable",
      "value": "1 m braided USB-C to USB-C"
    },
    {
      "group": "In the box",
      "label": "Paper",
      "value": "One quick-start card. That’s it."
    },
    {
      "group": "Care",
      "label": "Warranty",
      "value": "3 years, parts and labor"
    },
    {
      "group": "Care",
      "label": "Trial",
      "value": "60-day studio trial, free return shipping"
    },
    {
      "group": "Care",
      "label": "Repair",
      "value": "Four Torx screws. Battery, foot and knob cap sold as parts"
    }
  ],
  "profiles": [
    {
      "id": "ratchet",
      "name": "Ratchet",
      "feel": "Twenty-four crisp clicks per turn, like a good camera dial.",
      "use": "Step through frames, list items, undo history.",
      "physics": {
        "detents": 24,
        "strength": 0.8,
        "damping": 0.15,
        "spring": 0,
        "stops": null
      }
    },
    {
      "id": "fluid",
      "name": "Fluid",
      "feel": "No clicks. Weighted and slippery, like a flywheel in oil.",
      "use": "Scrub timelines, zoom canvases, sweep filters.",
      "physics": {
        "detents": 0,
        "strength": 0,
        "damping": 0.05,
        "spring": 0,
        "stops": null
      }
    },
    {
      "id": "spring",
      "name": "Spring",
      "feel": "Pulls back to center. The further you push, the harder it pushes back.",
      "use": "Shuttle playback speed, pitch bend, nudge values.",
      "physics": {
        "detents": 0,
        "strength": 0,
        "damping": 0.25,
        "spring": 0.9,
        "stops": [
          -120,
          120
        ]
      }
    },
    {
      "id": "clock",
      "name": "Clock",
      "feel": "Twelve heavy detents with a deeper one at noon.",
      "use": "Switch tools, pick brushes, choose tracks.",
      "physics": {
        "detents": 12,
        "strength": 1,
        "damping": 0.2,
        "spring": 0,
        "stops": null,
        "accents": [
          0
        ]
      }
    },
    {
      "id": "wall",
      "name": "Wall",
      "feel": "Hard stops at zero and a hundred, a soft bump halfway.",
      "use": "Volume, opacity, brush size: anything with a real range.",
      "physics": {
        "detents": 0,
        "strength": 0.4,
        "damping": 0.3,
        "spring": 0,
        "stops": [
          -135,
          135
        ],
        "accents": [
          0
        ]
      }
    },
    {
      "id": "magnet",
      "name": "Magnet",
      "feel": "Smooth until it finds something that matters, then it snaps.",
      "use": "Jump between markers, keyframes, git hunks, chorus and verse.",
      "physics": {
        "detents": 0,
        "strength": 0.9,
        "damping": 0.12,
        "spring": 0,
        "stops": null,
        "snaps": [
          -150,
          -95,
          -20,
          35,
          110,
          160
        ]
      }
    }
  ],
  "integrations": [
    {
      "app": "DaVinci Resolve",
      "category": "Video",
      "does": "Frame-step in Ratchet, shuttle in Spring, snap to markers in Magnet.",
      "profile": "ratchet",
      "status": "plugin"
    },
    {
      "app": "Premiere Pro",
      "category": "Video",
      "does": "Jog the playhead, trim edits frame by frame, ride clip gain.",
      "profile": "ratchet",
      "status": "plugin"
    },
    {
      "app": "Final Cut Pro",
      "category": "Video",
      "does": "Scrub with real inertia; press to set in and out points.",
      "profile": "fluid",
      "status": "plugin"
    },
    {
      "app": "After Effects",
      "category": "Video",
      "does": "Nudge keyframes; Magnet snaps to every key on the layer.",
      "profile": "magnet",
      "status": "plugin"
    },
    {
      "app": "Ableton Live",
      "category": "Audio",
      "does": "Macro knobs with hard end stops; Clock picks scenes.",
      "profile": "wall",
      "status": "native"
    },
    {
      "app": "Logic Pro",
      "category": "Audio",
      "does": "Fader rides with a bump at unity gain.",
      "profile": "wall",
      "status": "native"
    },
    {
      "app": "Bitwig Studio",
      "category": "Audio",
      "does": "Modulator depth with Spring return; MIDI-learn anything.",
      "profile": "spring",
      "status": "native"
    },
    {
      "app": "FL Studio",
      "category": "Audio",
      "does": "Pattern select in Clock, tempo in Ratchet.",
      "profile": "clock",
      "status": "community"
    },
    {
      "app": "Figma",
      "category": "Design",
      "does": "Rotate, resize and scrub numeric fields without touching the trackpad.",
      "profile": "ratchet",
      "status": "plugin"
    },
    {
      "app": "Photoshop",
      "category": "Design",
      "does": "Brush size with Wall stops, history scrubbing in Fluid.",
      "profile": "wall",
      "status": "plugin"
    },
    {
      "app": "Lightroom Classic",
      "category": "Design",
      "does": "Exposure and white balance with a detent at zero.",
      "profile": "wall",
      "status": "plugin"
    },
    {
      "app": "Blender",
      "category": "3D",
      "does": "Timeline scrub, orbit the viewport, set values with Magnet on keyframes.",
      "profile": "fluid",
      "status": "community"
    },
    {
      "app": "Cinema 4D",
      "category": "3D",
      "does": "Orbit and dolly the camera; Clock switches tools.",
      "profile": "clock",
      "status": "community"
    },
    {
      "app": "VS Code",
      "category": "Code",
      "does": "Magnet snaps through diff hunks and problems; Ratchet walks the undo stack.",
      "profile": "magnet",
      "status": "native"
    },
    {
      "app": "Xcode",
      "category": "Code",
      "does": "Step the debugger one line per click; press to continue.",
      "profile": "ratchet",
      "status": "community"
    },
    {
      "app": "Terminal",
      "category": "Code",
      "does": "Scroll history in Fluid, cycle shells and tabs in Clock.",
      "profile": "fluid",
      "status": "native"
    },
    {
      "app": "OBS Studio",
      "category": "Stream",
      "does": "Switch scenes in Clock, ride mic gain with Wall.",
      "profile": "clock",
      "status": "plugin"
    },
    {
      "app": "System",
      "category": "System",
      "does": "Scroll, zoom, undo, volume, brightness and media, in every app, out of the box.",
      "profile": "wall",
      "status": "native"
    }
  ],
  "audiences": [
    {
      "id": "editors",
      "label": "Video editors",
      "headline": "Cut on the frame, not near it.",
      "url": "https://alexmorrison12.github.io/detent/for/editors/"
    },
    {
      "id": "musicians",
      "label": "Music producers",
      "headline": "A real knob for every fake one.",
      "url": "https://alexmorrison12.github.io/detent/for/musicians/"
    },
    {
      "id": "designers",
      "label": "Designers & 3D artists",
      "headline": "Rotate it by feel.",
      "url": "https://alexmorrison12.github.io/detent/for/designers/"
    },
    {
      "id": "developers",
      "label": "Developers",
      "headline": "Feel the diff.",
      "url": "https://alexmorrison12.github.io/detent/for/developers/"
    }
  ],
  "links": {
    "home": "https://alexmorrison12.github.io/detent/",
    "shop": "https://alexmorrison12.github.io/detent/shop/",
    "specs": "https://alexmorrison12.github.io/detent/specs/",
    "profiles": "https://alexmorrison12.github.io/detent/profiles/",
    "integrations": "https://alexmorrison12.github.io/detent/integrations/",
    "support": "https://alexmorrison12.github.io/detent/support/",
    "llms": "https://alexmorrison12.github.io/detent/llms.txt",
    "sitemap": "https://alexmorrison12.github.io/detent/sitemap-index.xml"
  },
  "schemaOrg": {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "Organization",
        "@id": "https://alexmorrison12.github.io/detent/#org",
        "name": "Detent Labs",
        "url": "https://alexmorrison12.github.io/detent/",
        "email": "hello@detent.example",
        "logo": "https://alexmorrison12.github.io/detent/favicon.svg"
      },
      {
        "@type": "ProductGroup",
        "@id": "https://alexmorrison12.github.io/detent/shop/#detent-one",
        "name": "Detent One",
        "description": "Detent One is a machined aluminum dial with software-defined haptics. It clicks, glides, springs back or stops dead, depending on the app you are in.",
        "url": "https://alexmorrison12.github.io/detent/shop/",
        "productGroupID": "DT1",
        "variesBy": [
          "https://schema.org/color"
        ],
        "brand": {
          "@type": "Brand",
          "name": "Detent"
        },
        "material": "6061-T6 aluminum",
        "weight": {
          "@type": "QuantitativeValue",
          "value": 412,
          "unitCode": "GRM"
        },
        "additionalProperty": [
          {
            "@type": "PropertyValue",
            "name": "Body: Material",
            "value": "6061-T6 aluminum, CNC-machined from one billet"
          },
          {
            "@type": "PropertyValue",
            "name": "Body: Finish",
            "value": "Bead-blasted; Type II anodize (Graphite, Glacier, Tally)"
          },
          {
            "@type": "PropertyValue",
            "name": "Body: Dimensions",
            "value": "Ø 72 mm base, Ø 58 mm knob, 44 mm tall"
          },
          {
            "@type": "PropertyValue",
            "name": "Body: Weight",
            "value": "412 g. It does not slide."
          },
          {
            "@type": "PropertyValue",
            "name": "Body: Foot",
            "value": "Replaceable silicone, micro-suction"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Motor",
            "value": "Brushless gimbal motor, field-oriented control at 10 kHz"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Position sensing",
            "value": "14-bit magnetic encoder, 0.022° resolution"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Peak torque",
            "value": "32 mN·m"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Torque on battery",
            "value": "24 mN·m peak, capped to save charge"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Press",
            "value": "Force-sensing knob, three pressure levels"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Profiles on device",
            "value": "64, switched automatically per app"
          },
          {
            "@type": "PropertyValue",
            "name": "Display & light: Display",
            "value": "1.43″ round AMOLED, 466 × 466, under strengthened glass"
          },
          {
            "@type": "PropertyValue",
            "name": "Display & light: Refresh",
            "value": "60 Hz, always-on dim mode"
          },
          {
            "@type": "PropertyValue",
            "name": "Display & light: Halo",
            "value": "24-LED light ring in the base, per-profile color"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Wired",
            "value": "USB-C: HID + class-compliant MIDI, no driver needed"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Wireless",
            "value": "Bluetooth LE 5.3, three pairings"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Latency",
            "value": "Under 4 ms wired, under 12 ms wireless"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Battery",
            "value": "2,000 mAh, about 40 hours of active haptics"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Works with",
            "value": "macOS 13+, Windows 11, Linux, iPadOS"
          },
          {
            "@type": "PropertyValue",
            "name": "Software: Companion app",
            "value": "Detent Studio for macOS, Windows and Linux"
          },
          {
            "@type": "PropertyValue",
            "name": "Software: Account",
            "value": "None required. Local-first, no cloud, no telemetry by default"
          },
          {
            "@type": "PropertyValue",
            "name": "Software: SDK",
            "value": "Open SDK (TypeScript and Rust); profiles are plain JSON"
          },
          {
            "@type": "PropertyValue",
            "name": "Software: Firmware",
            "value": "Open source (Apache-2.0), signed updates over USB or BLE"
          },
          {
            "@type": "PropertyValue",
            "name": "In the box: Detent One",
            "value": "In your finish, engraved if you asked"
          },
          {
            "@type": "PropertyValue",
            "name": "In the box: Cable",
            "value": "1 m braided USB-C to USB-C"
          },
          {
            "@type": "PropertyValue",
            "name": "In the box: Paper",
            "value": "One quick-start card. That’s it."
          },
          {
            "@type": "PropertyValue",
            "name": "Care: Warranty",
            "value": "3 years, parts and labor"
          },
          {
            "@type": "PropertyValue",
            "name": "Care: Trial",
            "value": "60-day studio trial, free return shipping"
          },
          {
            "@type": "PropertyValue",
            "name": "Care: Repair",
            "value": "Four Torx screws. Battery, foot and knob cap sold as parts"
          }
        ],
        "disambiguatingDescription": "Detent is a concept product. This site is a design and engineering demonstration; nothing is for sale and no payment or personal data is collected.",
        "hasVariant": [
          {
            "@type": "Product",
            "sku": "DT1-RAW",
            "name": "Detent One, Raw",
            "color": "Raw",
            "description": "Bead-blasted 6061 aluminum. Cool, bright, a little industrial.",
            "url": "https://alexmorrison12.github.io/detent/shop/?edition=one&finish=raw",
            "image": [
              "https://alexmorrison12.github.io/detent/renders/raw-config-240.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-config-480.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-config-800.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-config.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-exploded-240.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-exploded-480.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-exploded-800.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-exploded.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-front-240.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-front-480.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-front-800.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-front.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-240.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-480.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-800.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-240.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-480.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-800.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-clock.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-hero.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-side-240.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-side-480.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-side-800.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-side.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-top-240.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-top-480.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-top-800.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-top.webp",
              "https://alexmorrison12.github.io/detent/renders/raw-config-240.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-config-480.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-config-800.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-config.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-exploded-240.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-exploded-480.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-exploded-800.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-exploded.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-front-240.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-front-480.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-front-800.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-front.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-240.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-480.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-800.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-240.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-480.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-clock-800.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-hero-clock.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-hero.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-side-240.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-side-480.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-side-800.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-side.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-top-240.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-top-480.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-top-800.avif",
              "https://alexmorrison12.github.io/detent/renders/raw-top.avif",
              "https://alexmorrison12.github.io/detent/og/shop.png"
            ]
          },
          {
            "@type": "Product",
            "sku": "DT1-GRAPHITE",
            "name": "Detent One, Graphite",
            "color": "Graphite",
            "description": "Anodized near-black. Disappears on a dark desk until you touch it.",
            "url": "https://alexmorrison12.github.io/detent/shop/?edition=one&finish=graphite",
            "image": [
              "https://alexmorrison12.github.io/detent/renders/graphite-config-240.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-config-480.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-config-800.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-config.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-exploded-240.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-exploded-480.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-exploded-800.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-exploded.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-front-240.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-front-480.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-front-800.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-front.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-hero-240.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-hero-480.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-hero-800.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-hero.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-side-240.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-side-480.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-side-800.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-side.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-top-240.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-top-480.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-top-800.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-top.webp",
              "https://alexmorrison12.github.io/detent/renders/graphite-config-240.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-config-480.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-config-800.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-config.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-exploded-240.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-exploded-480.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-exploded-800.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-exploded.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-front-240.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-front-480.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-front-800.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-front.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-hero-240.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-hero-480.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-hero-800.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-hero.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-side-240.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-side-480.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-side-800.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-side.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-top-240.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-top-480.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-top-800.avif",
              "https://alexmorrison12.github.io/detent/renders/graphite-top.avif",
              "https://alexmorrison12.github.io/detent/og/shop.png"
            ]
          },
          {
            "@type": "Product",
            "sku": "DT1-GLACIER",
            "name": "Detent One, Glacier",
            "color": "Glacier",
            "description": "Pale blue anodize, the color of cold aluminum at 6 a.m.",
            "url": "https://alexmorrison12.github.io/detent/shop/?edition=one&finish=glacier",
            "image": [
              "https://alexmorrison12.github.io/detent/renders/glacier-config-240.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-config-480.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-config-800.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-config.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-exploded-240.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-exploded-480.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-exploded-800.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-exploded.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-front-240.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-front-480.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-front-800.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-front.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-hero-240.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-hero-480.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-hero-800.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-hero.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-side-240.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-side-480.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-side-800.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-side.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-top-240.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-top-480.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-top-800.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-top.webp",
              "https://alexmorrison12.github.io/detent/renders/glacier-config-240.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-config-480.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-config-800.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-config.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-exploded-240.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-exploded-480.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-exploded-800.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-exploded.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-front-240.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-front-480.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-front-800.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-front.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-hero-240.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-hero-480.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-hero-800.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-hero.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-side-240.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-side-480.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-side-800.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-side.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-top-240.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-top-480.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-top-800.avif",
              "https://alexmorrison12.github.io/detent/renders/glacier-top.avif",
              "https://alexmorrison12.github.io/detent/og/shop.png"
            ]
          }
        ]
      },
      {
        "@type": "Product",
        "@id": "https://alexmorrison12.github.io/detent/shop/#founders-edition",
        "sku": "DT1-F-TALLY",
        "name": "Founders Edition",
        "description": "Numbered 0001–2000 in Tally red, with a machined walnut plinth.",
        "color": "Tally",
        "url": "https://alexmorrison12.github.io/detent/shop/?edition=founders&finish=tally",
        "image": [
          "https://alexmorrison12.github.io/detent/renders/tally-config-240.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-config-480.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-config-800.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-config.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-exploded-240.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-exploded-480.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-exploded-800.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-exploded.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-front-240.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-front-480.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-front-800.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-front.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-hero-240.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-hero-480.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-hero-800.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-hero.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-side-240.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-side-480.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-side-800.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-side.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-top-240.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-top-480.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-top-800.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-top.webp",
          "https://alexmorrison12.github.io/detent/renders/tally-config-240.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-config-480.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-config-800.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-config.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-exploded-240.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-exploded-480.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-exploded-800.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-exploded.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-front-240.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-front-480.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-front-800.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-front.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-hero-240.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-hero-480.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-hero-800.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-hero.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-side-240.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-side-480.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-side-800.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-side.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-top-240.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-top-480.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-top-800.avif",
          "https://alexmorrison12.github.io/detent/renders/tally-top.avif",
          "https://alexmorrison12.github.io/detent/og/shop.png"
        ],
        "isRelatedTo": {
          "@id": "https://alexmorrison12.github.io/detent/shop/#detent-one"
        },
        "brand": {
          "@type": "Brand",
          "name": "Detent"
        },
        "material": "6061-T6 aluminum",
        "weight": {
          "@type": "QuantitativeValue",
          "value": 412,
          "unitCode": "GRM"
        },
        "additionalProperty": [
          {
            "@type": "PropertyValue",
            "name": "Body: Material",
            "value": "6061-T6 aluminum, CNC-machined from one billet"
          },
          {
            "@type": "PropertyValue",
            "name": "Body: Finish",
            "value": "Bead-blasted; Type II anodize (Graphite, Glacier, Tally)"
          },
          {
            "@type": "PropertyValue",
            "name": "Body: Dimensions",
            "value": "Ø 72 mm base, Ø 58 mm knob, 44 mm tall"
          },
          {
            "@type": "PropertyValue",
            "name": "Body: Weight",
            "value": "412 g. It does not slide."
          },
          {
            "@type": "PropertyValue",
            "name": "Body: Foot",
            "value": "Replaceable silicone, micro-suction"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Motor",
            "value": "Brushless gimbal motor, field-oriented control at 10 kHz"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Position sensing",
            "value": "14-bit magnetic encoder, 0.022° resolution"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Peak torque",
            "value": "32 mN·m"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Torque on battery",
            "value": "24 mN·m peak, capped to save charge"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Press",
            "value": "Force-sensing knob, three pressure levels"
          },
          {
            "@type": "PropertyValue",
            "name": "Haptics: Profiles on device",
            "value": "64, switched automatically per app"
          },
          {
            "@type": "PropertyValue",
            "name": "Display & light: Display",
            "value": "1.43″ round AMOLED, 466 × 466, under strengthened glass"
          },
          {
            "@type": "PropertyValue",
            "name": "Display & light: Refresh",
            "value": "60 Hz, always-on dim mode"
          },
          {
            "@type": "PropertyValue",
            "name": "Display & light: Halo",
            "value": "24-LED light ring in the base, per-profile color"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Wired",
            "value": "USB-C: HID + class-compliant MIDI, no driver needed"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Wireless",
            "value": "Bluetooth LE 5.3, three pairings"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Latency",
            "value": "Under 4 ms wired, under 12 ms wireless"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Battery",
            "value": "2,000 mAh, about 40 hours of active haptics"
          },
          {
            "@type": "PropertyValue",
            "name": "Connectivity & power: Works with",
            "value": "macOS 13+, Windows 11, Linux, iPadOS"
          },
          {
            "@type": "PropertyValue",
            "name": "Software: Companion app",
            "value": "Detent Studio for macOS, Windows and Linux"
          },
          {
            "@type": "PropertyValue",
            "name": "Software: Account",
            "value": "None required. Local-first, no cloud, no telemetry by default"
          },
          {
            "@type": "PropertyValue",
            "name": "Software: SDK",
            "value": "Open SDK (TypeScript and Rust); profiles are plain JSON"
          },
          {
            "@type": "PropertyValue",
            "name": "Software: Firmware",
            "value": "Open source (Apache-2.0), signed updates over USB or BLE"
          },
          {
            "@type": "PropertyValue",
            "name": "In the box: Detent One",
            "value": "In your finish, engraved if you asked"
          },
          {
            "@type": "PropertyValue",
            "name": "In the box: Cable",
            "value": "1 m braided USB-C to USB-C"
          },
          {
            "@type": "PropertyValue",
            "name": "In the box: Paper",
            "value": "One quick-start card. That’s it."
          },
          {
            "@type": "PropertyValue",
            "name": "Care: Warranty",
            "value": "3 years, parts and labor"
          },
          {
            "@type": "PropertyValue",
            "name": "Care: Trial",
            "value": "60-day studio trial, free return shipping"
          },
          {
            "@type": "PropertyValue",
            "name": "Care: Repair",
            "value": "Four Torx screws. Battery, foot and knob cap sold as parts"
          }
        ],
        "disambiguatingDescription": "Detent is a concept product. This site is a design and engineering demonstration; nothing is for sale and no payment or personal data is collected."
      }
    ]
  }
}