benikigai/plus-onePublic
Plus One
SHA-256 0eed6bb1bb176e2c13a209ae99de978da7aeb26874b1c98ce25b59dcdcc2c823
{
"schema": "factory-n1/layout/v1",
"revision": 1,
"selection": {
"status": "proposal",
"date": "2026-11-01"
},
"geometry_evidence": "ASSUMPTION",
"calibration_status": "uncalibrated",
"workstations": "manual",
"units": {
"length": "m",
"angle": "rad"
},
"frame": {
"handedness": "right",
"up_axis": "Z",
"origin": "floor corner at minimum X and Y",
"flow_axis": "+X",
"station_pose_anchor": "footprint centre at floor level",
"quaternion_order": "xyzw"
},
"station_geometry_defaults": {
"footprint_m": [
1.2,
0.75
],
"work_surface_height_m": 0.9
},
"id": "plus-one-madecell-balanced",
"label": "Plus One on a MadeCell base, balanced to 10,000 a month (concept)",
"title": "Plus One · MadeCell, balanced",
"room": {
"size_m": [
21.6,
6.4384,
3.0
]
},
"footprint_m": [
20.2,
4.44
],
"stations": [
{
"station_id": "W1",
"position_m": [
4.346,
3.8942,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
1.0,
0.0
],
"label": "Top shell and board"
},
{
"station_id": "W2",
"position_m": [
6.846,
3.8942,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
1.0,
0.0
],
"label": "Screws, speaker, haptic"
},
{
"station_id": "W3",
"position_m": [
9.346,
3.8942,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
1.0,
0.0
],
"label": "Battery and base",
"copies": [
{
"position_m": [
9.346,
2.5442,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
0.0,
1.0
]
}
]
},
{
"station_id": "W4",
"position_m": [
11.846,
3.8942,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
1.0,
0.0
],
"label": "Flash + calibrate",
"copies": [
{
"position_m": [
11.846,
2.5442,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
0.0,
1.0
]
}
]
},
{
"station_id": "T",
"position_m": [
15.05,
3.8942,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
1.0,
0.0
],
"label": "Test cell",
"copies": [
{
"position_m": [
16.35,
3.8942,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
1.0,
0.0
]
},
{
"position_m": [
17.65,
3.8942,
0.0
],
"orientation_xyzw": [
0.0,
0.0,
1.0,
0.0
]
}
]
}
],
"base": {
"origin_m": [
2.0,
2.0
],
"size_m": [
12.192,
2.4384
],
"shell_height_m": 2.896,
"operator_strip_m": 1.0,
"bay_pitch_m": 2.5,
"bay_centres_x_m": [
4.346,
6.846,
9.346,
11.846
]
},
"conveyor": {
"type": "straight",
"centreline_y_m": 3.2192,
"from_x_m": 2.0,
"to_x_m": 18.4,
"width_m": 0.6
},
"test_cell": {
"x_m": [
14.45,
18.3
],
"fixtures": 3,
"operator_side": "A"
},
"restock": {
"type": "overhead_rail",
"z_m": 2.25,
"from_x_m": 0.8,
"to_x_m": 12.6,
"y_m": 3.2192
},
"crews": [
{
"id": "w1",
"count": 1,
"stations": [
"W1"
]
},
{
"id": "w2",
"count": 1,
"stations": [
"W2"
]
},
{
"id": "w3",
"count": 2,
"stations": [
"W3"
]
},
{
"id": "w4",
"count": 2,
"stations": [
"W4"
]
},
{
"id": "test",
"count": 1,
"stations": [
"T"
]
}
],
"behavior_binding": {
"station_key": "station_id",
"route_source": "active product sequence",
"station_definition_source": "resolved product station library",
"timing_and_outcome_source": "recorded engine events and results",
"inactive_station_policy": "retain footprint; show inactive; no unit visits"
},
"transport": {
"duration_source": "engine",
"layout_time_model": "not-calibrated"
},
"notes": [
"Concept layout for the 10,000-a-month scenario (studies/plus_one_demand.yaml) on the MadeCell base of the madecell layout (prototype brief v0.1 planning dimensions: not engineered, not a fit check, not compliance). Every new position is an ASSUMPTION.",
"One workstation per bay on side A; bays 3 and 4 also hold a second copy of the same workstation on side B. No bay pairs two consecutive steps, so the shared transfer point never hands a unit from one station to the next.",
"The test cell is past the output end on the host floor: the conveyor runs on 4.2 m to 18.4 m as the buffer in front of three test fixtures, with one operator on side A tending them.",
"Restocking: an overhead rail at 2.25 m above the conveyor runs from INPUT to bay 4; a material handler loads bin trolleys at the kitted-parts zone at INPUT, pushes them along above the conveyor and lowers full bins down a chute to each bench's bin rail, taking the empties back. Nobody restocks across an operator strip.",
"\"copies\" are the same workstation's parallel fixtures (line_stations.<W>.parallel in the study); the viewer draws a bench at each.",
"Work in process lives only on pallets; a failed unit stays on its pallet, flagged red, and rides to the HOLD lane at the output end (display only).",
"footprint_m spans the parts zone at INPUT to the AGV zone past the test cell, operator strips included.",
"\"crews\" repeats the study's crews (studies/plus_one_demand.yaml) for the viewer, which draws only that many operators at the benches they are working; tests/test_demand_layouts.py keeps the two the same."
]
}