From small to fully equipped
- Fleets from the launch plant to a full Payap press hall (about 870 m²:
- the two Duplex bays plus the Classic and ten more Classic positions, or the same floor
- with more Duplex systems), at the current settings and plant configuration. Click a row to load it.
+ Fleets from the launch plant to a full Payap press hall (about 870 m²,
+ laid out 60/40 by floor for Duplex systems because the plant focuses on special pressings: four
+ Duplex bays and six Classic positions, ~740 m²), then the same floor filled Classic-led or with
+ Duplex systems only, for comparison, at the current settings and plant configuration. Click a row to load it.
@@ -1238,7 +1239,9 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; }
function X(fx) { return FX + fx; }
function Y(fy) { return FY + fy; }
// Press hall: 2 rows, 8 m deep. Slot lengths follow the calculator's floor
- // figures (110 m2 per Duplex bay, 50 m2 per Classic, 870 m2 hall).
+ // figures (110 m2 per Duplex bay, 50 m2 per Classic, 870 m2 hall). Laid out 60/40 by floor
+ // for Duplex systems (special pressings first, October 2026): 4 Duplex bays + 6 Classic positions.
+ var HALL_D = 4, HALL_C = 6;
var HALL = { cap: 870, aD: 110, aC: 50 };
var HROWS = [{ x: X(40), y0: Y(3.6), y1: Y(11.6), len: 52 }, { x: X(47.8), y0: Y(12.4), y1: Y(20.4), len: 44.2 }];
var LTOT = 52 + 44.2, WD = HALL.aD / HALL.cap * LTOT, WC = HALL.aC / HALL.cap * LTOT;
@@ -1279,8 +1282,8 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; }
var D = cfg.duplex, Cn = cfg.classic, A = 0, Dh = 0, Ch = 0, i, items = [];
while (Dh < D && A + HALL.aD <= HALL.cap + 1e-9) { Dh++; A += HALL.aD; }
while (Ch < Cn && A + HALL.aC <= HALL.cap + 1e-9) { Ch++; A += HALL.aC; }
- var eD = Math.max(0, 2 - Dh); while (eD > 0 && A + eD * HALL.aD > HALL.cap) eD--;
- var eC = Math.max(0, 11 - Ch); while (eC > 0 && A + eD * HALL.aD + eC * HALL.aC > HALL.cap) eC--;
+ var eD = Math.max(0, HALL_D - Dh); while (eD > 0 && A + eD * HALL.aD > HALL.cap) eD--;
+ var eC = Math.max(0, HALL_C - Ch); while (eC > 0 && A + eD * HALL.aD + eC * HALL.aC > HALL.cap) eC--;
for (i = 0; i < Dh; i++) items.push({ t: "D", n: i + 1 });
for (i = 0; i < eD; i++) items.push({ t: "D", e: 1 });
for (i = 0; i < Ch; i++) items.push({ t: "C", n: i + 1 });
@@ -1562,7 +1565,7 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; }
sc.inf("factory", "Factory, 128 x 25 m",
"Production floor only (Payap scenario model): workshop, galvanics, stamper prep, PVC lab, colour store, press hall, finishing block; warehouse and dispatch behind the fire wall. Monopitch roof, low eave 7.0 m, high side 11.4 m.");
sc.inf("presshall", "Press hall, ~870 m2",
- al.Dh + " Duplex system" + (al.Dh === 1 ? "" : "s") + " and " + al.Ch + " Classic" + (al.Ch === 1 ? "" : "s") + " in the hall; laid out for 2 Duplex bays + 11 Classic positions (Payap scenario model)" +
+ al.Dh + " Duplex system" + (al.Dh === 1 ? "" : "s") + " and " + al.Ch + " Classic" + (al.Ch === 1 ? "" : "s") + " in the hall; laid out 60/40 by floor for special pressings: 4 Duplex bays and 6 Classic positions, ~740 m2 (pressing-line.md)" +
(al.p2need ? "; " + (al.ovD + al.ovC) + " more in the phase 2 building" : ""));
sc.inf("galvanics", cfg.galvanics ? "Galvanics clean room (Pheenix Alpha line)" : "Galvanics room: stampers bought in",
cfg.galvanics ? "PASU, PPPU, PDPU, PMPB; one PDPU covers full-capacity demand, a second is redundancy (galvanics.md). Room-in-room under the crane, open to stamper prep." :
@@ -1680,7 +1683,7 @@ html[data-theme=light] .iso-svg .iso-glint { display: inline; }
fl.flat(pts, z + 0.015, "iso-slot iso-empty", id);
sc.inf(id, sl.t === "D" ? "Duplex bay (room reserved)" : "Classic position (reserved)",
sl.t === "D" ? "Growth option: room, utility modules and ring-main tees reserved, not in the investment (pressing-line.md)" :
- "Floor kept for up to ten more Classics (option, not in the plan)");
+ "Classic position kept for growth (option, not in the investment); the hall is laid out 60/40 for Duplex systems (pressing-line.md)");
} else fl.flat(pts, z + 0.015, "iso-slot", sl.t === "D" ? "duplex-" + sl.n : "classic-" + sl.n);
if (!sl.e && sl.t === "D") {
var cx = (sl.x0 + sl.x1) / 2, cy = (sl.y0 + sl.y1) / 2;
@@ -3076,8 +3079,9 @@ function caseNow() {
return "";
}
const LADDER = [
- ["Launch plant", 1, 1], ["Second Duplex", 2, 1], ["Step 1", 2, 3], ["Step 2", 2, 5], ["Step 3", 2, 8],
- ["Full hall, Classic-led", 2, 11], ["Full hall, mixed", 4, 7], ["Full hall, specials-led", 6, 3],
+ // Duplex systems first: the hall is laid out 60/40 by floor for them (special pressings, October 2026)
+ ["Launch plant", 1, 1], ["Second Duplex", 2, 1], ["Step 1", 3, 2], ["Step 2", 4, 3],
+ ["Full hall 60/40", 4, 6], ["Same floor, Classic-led", 2, 11], ["Same floor, Duplex only", 7, 0],
];
// presets: fleet plus plant configuration; prices, case and assumptions stay as they are
const CFG0 = Object.fromEntries(CFGK.map(k => [k, S0[k]]));
@@ -3087,7 +3091,7 @@ const PRESETS = {
levers: { ...LAUNCH, solar: "ppa", metro: "launch", galvPrice: "oms", corridor: "later" },
lean: { ...LAUNCH, galv: "bought", cut: "out" },
five: { mode: "fleet", dFleet: 2, cFleet: 1, ...CFG0 },
- full: { mode: "fleet", dFleet: 2, cFleet: 11, ...CFG0 },
+ full: { mode: "fleet", dFleet: 4, cFleet: 6, ...CFG0 },
};
let S = { ...S0 }, A = { ...A0 };
diff --git a/docs/roadmap.md b/docs/roadmap.md
index e244003..a1e8fd8 100644
--- a/docs/roadmap.md
+++ b/docs/roadmap.md
@@ -173,4 +173,5 @@ Since October 2026 the plant launches with everything in one capital
round (~161M to 292M THB, target ~216M with the levers in
[total investment](finance/total-investment.md#launch-plant-october-2026));
the gates still come before the round is spent, and the growth options
-(second Duplex, more Classics) are funded from revenue.
+(more Duplex systems first, then Classics, in a press hall laid out 60/40
+for Duplex) are funded from revenue.
diff --git a/docs/scale.md b/docs/scale.md
index 552b750..fe83ce0 100644
--- a/docs/scale.md
+++ b/docs/scale.md
@@ -11,7 +11,7 @@ page as real quotes and the site decision land.
|---|---|---|
| Launch plant (decided October 2026) | 2 semi-auto (Duplex system 1: EX 50 main + EX 35 colour extruder) + 1 automated (Newbilt Classic), commissioned in sequence, 2 shifts at volume | ~0.71 to 0.97 million records/yr |
| Growth option: second Duplex | 4 semi-auto (two Duplex systems) + 1 Classic, 2 shifts; room reserved, not in the investment | ~1.0 to 1.5 million records/yr |
-| Expansion (option) | the five-press fleet + up to 10 more Newbilt Classics, 2 shifts | ~4.7 to 5.8 million records/yr (estimate) |
+| Full hall (option) | 4 Duplex systems + 6 Classics, the hall laid out 60/40 for Duplex, 2 shifts | ~3.6 to 4.7 million records/yr (estimate) |
The [press fleet calculator](fleet-calculator.html) sizes the fleet for
any yearly output and specials share, with the people and utilities it
@@ -44,10 +44,14 @@ effectiveness of 60 to 70% applied: 368 to 448 records/hour, ~1.06 to 1.5
million a year. The theoretical ceiling of the mature fleet at 100% uptime
is roughly 1.8 to 2.2 million records per year. (The earlier 50/50 fleet,
two semi-automatic presses and two Pheenix AD12s, landed in the same
-range.) The expansion row is an option the plant keeps room for, not a
-plan: ten more Classics add ~1,280 records/hour on the same basis, and
-neither the [revenue model](finance/revenue-model.md) nor the investment
-includes them.
+range.) The full-hall row is an option the plant keeps room for, not a
+plan: the press hall is laid out 60/40 by floor for Duplex systems, since
+the plant focuses on special pressings
+([pressing line](equipment/pressing-line.md)). Eight semi-automatic
+presses and six Classics give 1,250 to 1,410 records/hour gross, ~3.6 to
+4.7 million a year on the same basis, and neither the
+[revenue model](finance/revenue-model.md) nor the investment includes
+them.
**The 60–70% effectiveness assumption is worth challenging, but not yet
changing.** Newbilt publishes ≥95% yield and ≥95% uptime for the Classic
@@ -254,8 +258,9 @@ kW hydraulic oil cooler) at 305 to 540 l/min of circulating water. The
peak rows assume all five presses cooling hard on a hot afternoon; the
Classic counts as one HRP 12 press plus one extruder until Newbilt states
its figures. The presses share one central hydraulic plant and one
-compressed-air plant. The optional ten more Classics would need up to ~1.9
-MW of cooling and ~2.3 to 2.7 t/h of steam: a utility phase of its own.
+compressed-air plant. The optional full hall (four Duplex systems and six
+Classics, fourteen presses) would need up to ~1.8 MW of cooling and ~2.1
+to 2.5 t/h of steam: a utility phase of its own.
Tariff: PEA Schedule 3.2.2, Medium General Service on time of use at
22 kV (the flat rate is closed to new customers): 132.93 THB/kW demand
diff --git a/docs/site-candidates.md b/docs/site-candidates.md
index 96d8fb6..b464c62 100644
--- a/docs/site-candidates.md
+++ b/docs/site-candidates.md
@@ -122,7 +122,8 @@ dropped. Source record with the zone's full rules and annex:
5. **Plot fit.** Shape and size against the 60 × 25 m building, the
detached utility yard and the phase 2 footprint (6 to 8 rai). The
Payap scenario model below needs a 150 m square (14.1 rai) as drawn,
- with room for ten more Classics, a colour store and a reserve.
+ with a press hall laid out 60/40 for Duplex systems, a colour store and
+ a reserve.
6. **Galvanics on a campus.** Phase 5 electroplating needs the lessor's
written consent; the zero-discharge design
([sustainability](sustainability.md)) becomes a lease condition, not
@@ -155,7 +156,7 @@ and every equipment envelope is an estimate.
- **Plot**: 150 × 150 m (22,500 m², 14.1 rai), road assumed on the south
side, 6 m setbacks (placeholder). That is about twice the 6 to 8 rai of
- [scale](scale.md): the factory keeps room for ten more Classics and a
+ [scale](scale.md): the factory keeps room for the full press hall and a
colour store, and the plot keeps a reserve in front for a second hall
or a PV field.
- **Factory, production floor only**: 128 × 25 m at floor level +1.2 m,
@@ -179,9 +180,14 @@ and every equipment envelope is an estimate.
that special designs need, about 100 positions on four levels
(estimate), with weighing and mixing and a vacuum conveying station
([pressing line](equipment/pressing-line.md)).
- - **Press hall** (~870 m²): two Duplex systems, each two HRP 12 presses
- with an EX 50 and an EX 35, the Classic, and ten more Classic
- positions in two rows. Each Duplex is one operator's cell of about
+ - **Press hall** (~870 m²), laid out 60/40 by floor for Duplex systems
+ because the plant focuses on special pressings (October 2026,
+ [pressing line](equipment/pressing-line.md)): four Duplex bays, each
+ for two HRP 12 presses with an EX 50 and an EX 35, along the visitor
+ corridor, and six Classic positions in the second row; the launch
+ plant fills one of each. The FreeCAD model still draws the earlier
+ layout (two Duplex systems, the Classic and ten more Classic
+ positions). Each Duplex is one operator's cell of about
5 × 3 m at Newbilt's machine sizes: presses either side turned
towards the operator, the extruders behind him, one trimmer in front
([pressing line](equipment/pressing-line.md)).