benikigai/plus-onePublic

Plus One

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

SHA-256 7e6e24a02624e98353edac6569886378e532cd67ce01321e89fd9395f558dbf9

{
  "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 base, +z up through the plus button, USB-C at -x, alignment key at +y",
  "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": 3430.893,
      "surface_area_mm2": 6505.124,
      "bbox_mm": {
        "min": [
          -28.5,
          -28.5,
          0.0
        ],
        "max": [
          28.5,
          28.5,
          9.2
        ],
        "size": [
          57.0,
          57.0,
          9.2
        ]
      },
      "centroid_mm": [
        0.33,
        0.006,
        6.369
      ],
      "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": 577.2,
      "surface_area_mm2": 1535.044,
      "bbox_mm": {
        "min": [
          -23.8,
          -23.8,
          7.7
        ],
        "max": [
          23.8,
          23.8,
          9.3
        ],
        "size": [
          47.6,
          47.6,
          1.6
        ]
      },
      "centroid_mm": [
        0.0,
        0.0,
        8.373
      ],
      "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": 1325.317,
      "surface_area_mm2": 1880.872,
      "bbox_mm": {
        "min": [
          -16.5,
          -16.5,
          7.8
        ],
        "max": [
          16.5,
          16.5,
          9.55
        ],
        "size": [
          33.0,
          33.0,
          1.75
        ]
      },
      "centroid_mm": [
        0.0,
        0.0,
        8.632
      ],
      "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": 4.354,
      "surface_area_mm2": 22.431,
      "bbox_mm": {
        "min": [
          -1.6,
          -1.6,
          7.6
        ],
        "max": [
          1.6,
          1.6,
          8.2
        ],
        "size": [
          3.2,
          3.2,
          0.6
        ]
      },
      "centroid_mm": [
        -0.0,
        0.0,
        7.9
      ],
      "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": 3514.596,
      "surface_area_mm2": 5064.184,
      "bbox_mm": {
        "min": [
          -27.55,
          -26.2,
          2.8
        ],
        "max": [
          26.2,
          26.2,
          7.6
        ],
        "size": [
          53.75,
          52.4,
          4.8
        ]
      },
      "centroid_mm": [
        -2.51,
        4.659,
        5.464
      ],
      "materials": [
        "pcb-green",
        "ic-black",
        "led-white",
        "module-shield",
        "connector-silver"
      ]
    },
    "part:speaker": {
      "title": "Speaker, 12 mm thin",
      "step": "parts/speaker.step",
      "glb": "parts/speaker.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 339.292,
      "surface_area_mm2": 339.292,
      "bbox_mm": {
        "min": [
          11.0,
          -2.0,
          2.9
        ],
        "max": [
          23.0,
          10.0,
          5.9
        ],
        "size": [
          12.0,
          12.0,
          3.0
        ]
      },
      "centroid_mm": [
        17.0,
        4.0,
        4.4
      ],
      "materials": [
        "speaker-black"
      ]
    },
    "part:haptic-motor": {
      "title": "Haptic motor, 7 mm coin",
      "step": "parts/haptic-motor.step",
      "glb": "parts/haptic-motor.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 96.211,
      "surface_area_mm2": 131.947,
      "bbox_mm": {
        "min": [
          -21.5,
          -13.0,
          3.4
        ],
        "max": [
          -14.5,
          -6.0,
          5.9
        ],
        "size": [
          7.0,
          7.0,
          2.5
        ]
      },
      "centroid_mm": [
        -18.0,
        -9.5,
        4.65
      ],
      "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": 1571.84,
      "surface_area_mm2": 1215.52,
      "bbox_mm": {
        "min": [
          -14.0,
          -20.0,
          2.4
        ],
        "max": [
          14.0,
          -2.8,
          5.9
        ],
        "size": [
          28.0,
          17.2,
          3.5
        ]
      },
      "centroid_mm": [
        -0.0,
        -11.979,
        4.151
      ],
      "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": 28.8,
      "surface_area_mm2": 583.2,
      "bbox_mm": {
        "min": [
          -12.0,
          -18.0,
          5.9
        ],
        "max": [
          12.0,
          -6.0,
          6.0
        ],
        "size": [
          24.0,
          12.0,
          0.1
        ]
      },
      "centroid_mm": [
        0.0,
        -12.0,
        5.95
      ],
      "materials": [
        "foam-grey"
      ]
    },
    "part:qi-coil": {
      "title": "Wireless charging coil and ferrite",
      "step": "parts/qi-coil.step",
      "glb": "parts/qi-coil.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 917.502,
      "surface_area_mm2": 2396.407,
      "bbox_mm": {
        "min": [
          -19.0,
          -19.0,
          1.4
        ],
        "max": [
          19.0,
          19.0,
          2.3
        ],
        "size": [
          38.0,
          38.0,
          0.9
        ]
      },
      "centroid_mm": [
        -0.0,
        0.0,
        1.833
      ],
      "materials": [
        "ferrite-black",
        "coil-copper"
      ]
    },
    "part:magnet-ring": {
      "title": "Magnet ring",
      "step": "parts/magnet-ring.step",
      "glb": "parts/magnet-ring.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 594.515,
      "surface_area_mm2": 1501.933,
      "bbox_mm": {
        "min": [
          -26.8,
          -26.8,
          0.3
        ],
        "max": [
          26.8,
          26.8,
          1.3
        ],
        "size": [
          53.6,
          53.6,
          1.0
        ]
      },
      "centroid_mm": [
        0.0,
        0.0,
        0.8
      ],
      "materials": [
        "magnet-steel"
      ]
    },
    "part:base": {
      "title": "Base: lugs, key and pad seats",
      "step": "parts/base.step",
      "glb": "parts/base.glb",
      "quantity_per_unit": 1,
      "frame": "product",
      "volume_mm3": 3057.352,
      "surface_area_mm2": 6577.212,
      "bbox_mm": {
        "min": [
          -27.2,
          -28.3,
          0.0
        ],
        "max": [
          27.2,
          27.2,
          1.6
        ],
        "size": [
          54.4,
          55.5,
          1.6
        ]
      },
      "centroid_mm": [
        0.007,
        0.019,
        0.79
      ],
      "materials": [
        "base-graphite"
      ]
    },
    "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": 0.942,
      "surface_area_mm2": 8.168,
      "bbox_mm": {
        "min": [
          -1.0,
          -1.0,
          0.0
        ],
        "max": [
          1.0,
          1.0,
          0.3
        ],
        "size": [
          2.0,
          2.0,
          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": 13.261,
      "surface_area_mm2": 39.081,
      "bbox_mm": {
        "min": [
          -1.7,
          -1.7,
          5.1
        ],
        "max": [
          1.7,
          1.7,
          8.0
        ],
        "size": [
          3.4,
          3.4,
          2.9
        ]
      },
      "centroid_mm": [
        0.0,
        0.0,
        6.107
      ],
      "materials": [
        "screw-steel"
      ]
    }
  },
  "instances": [
    {
      "id": "part:top-shell",
      "part": "part:top-shell",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        26.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,
        36.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,
        44.0
      ],
      "usd_prim": "/Product/PlusButton",
      "assembly": "asm:top-sub"
    },
    {
      "id": "part:mic-gasket#1",
      "part": "part:mic-gasket",
      "translation": [
        -19.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        22.0
      ],
      "usd_prim": "/Product/MicGasket_1",
      "assembly": "asm:top-sub"
    },
    {
      "id": "part:mic-gasket#2",
      "part": "part:mic-gasket",
      "translation": [
        19.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        22.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,
        12.0
      ],
      "usd_prim": "/Product/MainPCBA",
      "assembly": "asm:core"
    },
    {
      "id": "part:board-screw#1",
      "part": "part:board-screw",
      "translation": [
        16.970562748477143,
        16.97056274847714,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        8.0
      ],
      "usd_prim": "/Product/BoardScrew_1",
      "assembly": "asm:core"
    },
    {
      "id": "part:board-screw#2",
      "part": "part:board-screw",
      "translation": [
        -23.182219830937637,
        6.211657082460505,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        8.0
      ],
      "usd_prim": "/Product/BoardScrew_2",
      "assembly": "asm:core"
    },
    {
      "id": "part:board-screw#3",
      "part": "part:board-screw",
      "translation": [
        6.211657082460487,
        -23.18221983093764,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        8.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,
        0.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,
        0.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,
        3.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,
        -24.0
      ],
      "usd_prim": "/Product/Base",
      "assembly": "asm:base"
    },
    {
      "id": "part:magnet-ring",
      "part": "part:magnet-ring",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -18.0
      ],
      "usd_prim": "/Product/MagnetRing",
      "assembly": "asm:base"
    },
    {
      "id": "part:qi-coil",
      "part": "part:qi-coil",
      "translation": [
        0.0,
        0.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -12.0
      ],
      "usd_prim": "/Product/QiCoil",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#1",
      "part": "part:pogo-pad",
      "translation": [
        -8.541469504591802,
        -19.18445461049462,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -30.0
      ],
      "usd_prim": "/Product/PogoPad_1",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#2",
      "part": "part:pogo-pad",
      "translation": [
        -4.366145507172956,
        -20.541099615409916,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -30.0
      ],
      "usd_prim": "/Product/PogoPad_2",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#3",
      "part": "part:pogo-pad",
      "translation": [
        -3.857637417314163e-15,
        -21.0,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -30.0
      ],
      "usd_prim": "/Product/PogoPad_3",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#4",
      "part": "part:pogo-pad",
      "translation": [
        4.3661455071729485,
        -20.541099615409916,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -30.0
      ],
      "usd_prim": "/Product/PogoPad_4",
      "assembly": "asm:base"
    },
    {
      "id": "part:pogo-pad#5",
      "part": "part:pogo-pad",
      "translation": [
        8.541469504591795,
        -19.184454610494623,
        0.0
      ],
      "exploded_offset": [
        0.0,
        0.0,
        -30.0
      ],
      "usd_prim": "/Product/PogoPad_5",
      "assembly": "asm:base"
    }
  ]
}