benikigai/plus-onePublic

Plus One

geometry.json · 16 KB · commit #1 · Nov 1, 2026

SHA-256 ea781b64a05105a17196eae4914fc79289ffc1a66996db75ad7e665f1d8c2e80

{
  "generator": "tools/make_plus_one_cad.py",
  "status": "prototype in design; every size is a design target, not a measurement",
  "units": {
    "length": "mm",
    "volume": "mm3",
    "area": "mm2"
  },
  "frame": "origin at footprint centre, z = 0 at the underside of the sealed base, +z up through the plus button, USB-C at -x",
  "parts": {
    "part:top-shell": {
      "title": "Top shell",
      "step": "parts/top-shell.step",
      "glb": "parts/top-shell.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 5489.412,
      "surface_area_mm2": 8199.307,
      "bbox_mm": {
        "min": [
          -29.0,
          -29.0,
          3.4
        ],
        "max": [
          29.0,
          29.0,
          16.8
        ],
        "size": [
          58.0,
          58.0,
          13.4
        ]
      },
      "centroid_mm": [
        0.261,
        0.0,
        12.187
      ],
      "materials": [
        "shell-graphite"
      ]
    },
    "part:ring-diffuser": {
      "title": "Light-ring diffuser",
      "step": "parts/ring-diffuser.step",
      "glb": "parts/ring-diffuser.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 833.628,
      "surface_area_mm2": 1665.17,
      "bbox_mm": {
        "min": [
          -25.0,
          -25.0,
          14.7
        ],
        "max": [
          25.0,
          25.0,
          17.0
        ],
        "size": [
          50.0,
          50.0,
          2.3
        ]
      },
      "centroid_mm": [
        -0.0,
        0.0,
        15.701
      ],
      "materials": [
        "diffuser-lime"
      ]
    },
    "part:plus-button": {
      "title": "Plus button",
      "step": "parts/plus-button.step",
      "glb": "parts/plus-button.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 3179.391,
      "surface_area_mm2": 4019.118,
      "bbox_mm": {
        "min": [
          -17.7,
          -17.7,
          14.5
        ],
        "max": [
          17.7,
          17.7,
          19.45
        ],
        "size": [
          35.4,
          35.4,
          4.95
        ]
      },
      "centroid_mm": [
        -0.0,
        0.0,
        16.847
      ],
      "materials": [
        "button-graphite",
        "plus-white"
      ]
    },
    "part:mic-gasket": {
      "title": "Mic gasket",
      "step": "parts/mic-gasket.step",
      "glb": "parts/mic-gasket.glb",
      "quantity_per_unit": 2,
      "frame": "instance-local (own axis at x = y = 0, product z)",
      "volume_mm3": 8.143,
      "surface_area_mm2": 31.667,
      "bbox_mm": {
        "min": [
          -1.8,
          -1.8,
          14.6
        ],
        "max": [
          1.8,
          1.8,
          15.5
        ],
        "size": [
          3.6,
          3.6,
          0.9
        ]
      },
      "centroid_mm": [
        0.0,
        0.0,
        15.05
      ],
      "materials": [
        "gasket-black"
      ]
    },
    "part:main-pcba": {
      "title": "Main board (PCBA)",
      "step": "parts/main-pcba.step",
      "glb": "parts/main-pcba.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 4072.188,
      "surface_area_mm2": 5296.951,
      "bbox_mm": {
        "min": [
          -28.05,
          -26.6,
          9.2
        ],
        "max": [
          26.6,
          26.6,
          14.9
        ],
        "size": [
          54.65,
          53.2,
          5.7
        ]
      },
      "centroid_mm": [
        -0.552,
        3.273,
        12.068
      ],
      "materials": [
        "pcb-green",
        "ic-black",
        "led-white",
        "module-shield",
        "connector-silver"
      ]
    },
    "part:speaker": {
      "title": "Speaker, 15 mm",
      "step": "parts/speaker.step",
      "glb": "parts/speaker.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 768.041,
      "surface_area_mm2": 564.23,
      "bbox_mm": {
        "min": [
          -7.5,
          -25.5,
          6.6
        ],
        "max": [
          7.5,
          -10.5,
          11.0
        ],
        "size": [
          15.0,
          15.0,
          4.4
        ]
      },
      "centroid_mm": [
        0.0,
        -18.0,
        8.773
      ],
      "materials": [
        "speaker-black"
      ]
    },
    "part:haptic-motor": {
      "title": "Haptic motor, 8 mm",
      "step": "parts/haptic-motor.step",
      "glb": "parts/haptic-motor.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 170.903,
      "surface_area_mm2": 185.982,
      "bbox_mm": {
        "min": [
          13.0,
          -18.0,
          8.0
        ],
        "max": [
          21.0,
          -10.0,
          11.4
        ],
        "size": [
          8.0,
          8.0,
          3.4
        ]
      },
      "centroid_mm": [
        17.0,
        -14.0,
        9.7
      ],
      "materials": [
        "haptic-grey"
      ]
    },
    "part:battery": {
      "title": "Li-ion cell with protection",
      "step": "parts/battery.step",
      "glb": "parts/battery.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 3829.4,
      "surface_area_mm2": 2242.0,
      "bbox_mm": {
        "min": [
          -17.0,
          -10.6,
          4.6
        ],
        "max": [
          17.0,
          15.5,
          9.1
        ],
        "size": [
          34.0,
          26.1,
          4.5
        ]
      },
      "centroid_mm": [
        -0.005,
        2.985,
        6.851
      ],
      "materials": [
        "battery-silver",
        "battery-lead-red"
      ]
    },
    "part:battery-foam": {
      "title": "Battery foam tape",
      "step": "parts/battery-foam.step",
      "glb": "parts/battery-foam.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 315.0,
      "surface_area_mm2": 1311.0,
      "bbox_mm": {
        "min": [
          -15.0,
          -7.5,
          9.1
        ],
        "max": [
          15.0,
          13.5,
          9.6
        ],
        "size": [
          30.0,
          21.0,
          0.5
        ]
      },
      "centroid_mm": [
        -0.0,
        3.0,
        9.35
      ],
      "materials": [
        "foam-grey"
      ]
    },
    "part:base": {
      "title": "Sealed base",
      "step": "parts/base.step",
      "glb": "parts/base.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 4774.393,
      "surface_area_mm2": 6551.284,
      "bbox_mm": {
        "min": [
          -29.0,
          -29.0,
          0.0
        ],
        "max": [
          29.0,
          29.0,
          5.4
        ],
        "size": [
          58.0,
          58.0,
          5.4
        ]
      },
      "centroid_mm": [
        0.112,
        0.011,
        1.072
      ],
      "materials": [
        "base-graphite"
      ]
    },
    "part:base-magnet": {
      "title": "Base magnet",
      "step": "parts/base-magnet.step",
      "glb": "parts/base-magnet.glb",
      "quantity_per_unit": 2,
      "frame": "instance-local (own axis at x = y = 0, product z)",
      "volume_mm3": 42.412,
      "surface_area_mm2": 84.823,
      "bbox_mm": {
        "min": [
          -3.0,
          -3.0,
          0.2
        ],
        "max": [
          3.0,
          3.0,
          1.7
        ],
        "size": [
          6.0,
          6.0,
          1.5
        ]
      },
      "centroid_mm": [
        -0.0,
        0.0,
        0.95
      ],
      "materials": [
        "magnet-steel"
      ]
    },
    "part:pogo-pad": {
      "title": "Pogo pad",
      "step": "parts/pogo-pad.step",
      "glb": "parts/pogo-pad.glb",
      "quantity_per_unit": 5,
      "frame": "instance-local (own axis at x = y = 0, product z)",
      "volume_mm3": 1.357,
      "surface_area_mm2": 11.31,
      "bbox_mm": {
        "min": [
          -1.2,
          -1.2,
          0.0
        ],
        "max": [
          1.2,
          1.2,
          0.3
        ],
        "size": [
          2.4,
          2.4,
          0.3
        ]
      },
      "centroid_mm": [
        0.0,
        0.0,
        0.15
      ],
      "materials": [
        "pogo-gold"
      ]
    },
    "part:board-screw": {
      "title": "Board screw",
      "step": "parts/board-screw.step",
      "glb": "parts/board-screw.glb",
      "quantity_per_unit": 3,
      "frame": "instance-local (own axis at x = y = 0, product z)",
      "volume_mm3": 28.061,
      "surface_area_mm2": 65.911,
      "bbox_mm": {
        "min": [
          -1.9,
          -1.9,
          11.2
        ],
        "max": [
          1.9,
          1.9,
          17.0
        ],
        "size": [
          3.8,
          3.8,
          5.8
        ]
      },
      "centroid_mm": [
        -0.0,
        0.0,
        13.294
      ],
      "materials": [
        "screw-steel"
      ]
    },
    "part:flat-back": {
      "title": "Flat foot back",
      "step": "parts/flat-back.step",
      "glb": "parts/flat-back.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 7043.315,
      "surface_area_mm2": 5679.905,
      "bbox_mm": {
        "min": [
          -28.5,
          -28.5,
          -3.0
        ],
        "max": [
          28.5,
          28.5,
          0.4
        ],
        "size": [
          57.0,
          57.0,
          3.4
        ]
      },
      "centroid_mm": [
        -0.0,
        0.013,
        -1.607
      ],
      "materials": [
        "back-lime"
      ]
    }
  },
  "instances": [
    {
      "id": "part:top-shell",
      "part": "part:top-shell",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        40.0
      ],
      "usd_prim": "/Product/TopShell",
      "assembly": "asm:top-sub"
    },
    {
      "id": "part:ring-diffuser",
      "part": "part:ring-diffuser",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        54.0
      ],
      "usd_prim": "/Product/RingDiffuser",
      "assembly": "asm:top-sub"
    },
    {
      "id": "part:plus-button",
      "part": "part:plus-button",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        66.0
      ],
      "usd_prim": "/Product/PlusButton",
      "assembly": "asm:top-sub"
    },
    {
      "id": "part:mic-gasket#1",
      "part": "part:mic-gasket",
      "translation": [
        -20.8,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        36.0
      ],
      "usd_prim": "/Product/MicGasket_1",
      "assembly": "asm:top-sub"
    },
    {
      "id": "part:mic-gasket#2",
      "part": "part:mic-gasket",
      "translation": [
        20.8,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        36.0
      ],
      "usd_prim": "/Product/MicGasket_2",
      "assembly": "asm:top-sub"
    },
    {
      "id": "part:main-pcba",
      "part": "part:main-pcba",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        22.0
      ],
      "usd_prim": "/Product/MainPCBA",
      "assembly": "asm:core"
    },
    {
      "id": "part:board-screw#1",
      "part": "part:board-screw",
      "translation": [
        1.4695761589768238e-15,
        24.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        16.0
      ],
      "usd_prim": "/Product/BoardScrew_1",
      "assembly": "asm:core"
    },
    {
      "id": "part:board-screw#2",
      "part": "part:board-screw",
      "translation": [
        -20.784609690826528,
        -12.000000000000004,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        16.0
      ],
      "usd_prim": "/Product/BoardScrew_2",
      "assembly": "asm:core"
    },
    {
      "id": "part:board-screw#3",
      "part": "part:board-screw",
      "translation": [
        20.78460969082652,
        -12.00000000000001,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        16.0
      ],
      "usd_prim": "/Product/BoardScrew_3",
      "assembly": "asm:core"
    },
    {
      "id": "part:speaker",
      "part": "part:speaker",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        10.0
      ],
      "usd_prim": "/Product/Speaker",
      "assembly": "asm:core"
    },
    {
      "id": "part:haptic-motor",
      "part": "part:haptic-motor",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        10.0
      ],
      "usd_prim": "/Product/HapticMotor",
      "assembly": "asm:core"
    },
    {
      "id": "part:battery",
      "part": "part:battery",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        0.0
      ],
      "usd_prim": "/Product/Battery",
      "assembly": "asm:core"
    },
    {
      "id": "part:battery-foam",
      "part": "part:battery-foam",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        4.0
      ],
      "usd_prim": "/Product/BatteryFoam",
      "assembly": "asm:core"
    },
    {
      "id": "part:base",
      "part": "part:base",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -16.0
      ],
      "usd_prim": "/Product/Base",
      "assembly": "asm:base"
    },
    {
      "id": "part:base-magnet#1",
      "part": "part:base-magnet",
      "translation": [
        -16.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -24.0
      ],
      "usd_prim": "/Product/BaseMagnet_1",
      "assembly": "asm:base"
    },
    {
      "id": "part:base-magnet#2",
      "part": "part:base-magnet",
      "translation": [
        16.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -24.0
      ],
      "usd_prim": "/Product/BaseMagnet_2",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#1",
      "part": "part:pogo-pad",
      "translation": [
        -8.0,
        -7.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -26.0
      ],
      "usd_prim": "/Product/PogoPad_1",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#2",
      "part": "part:pogo-pad",
      "translation": [
        -4.0,
        -7.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -26.0
      ],
      "usd_prim": "/Product/PogoPad_2",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#3",
      "part": "part:pogo-pad",
      "translation": [
        0.0,
        -7.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -26.0
      ],
      "usd_prim": "/Product/PogoPad_3",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#4",
      "part": "part:pogo-pad",
      "translation": [
        4.0,
        -7.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -26.0
      ],
      "usd_prim": "/Product/PogoPad_4",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#5",
      "part": "part:pogo-pad",
      "translation": [
        8.0,
        -7.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -26.0
      ],
      "usd_prim": "/Product/PogoPad_5",
      "assembly": "asm:base"
    },
    {
      "id": "part:flat-back",
      "part": "part:flat-back",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -34.0
      ],
      "usd_prim": "/Product/FlatBack",
      "assembly": "asm:back"
    }
  ]
}