Site model: two sealed dock positions on the north gable (depressed
12 m pit + 12 m ramp cut into ground and paving), water treatment
moved clear of the cooling tower, second car/staff gate on the NE
edge with access road to parking, guard house relocated between the
gates, perimeter wall rebuilt continuous on its 0.4 m inset line,
leftover door recesses filled on both envelopes, loading-apron
marking removed. Renders re-exported.
Docs: phase 1 contractor pricing request (PEB spec, PIR envelope,
dock, site works, exclusions, soil caveats).
setViewDirection leaves camera roll unconstrained, so the aerials came
out with a tilted horizon. The camera orientation is now built explicitly
with world +Z projected as the frame up-vector.
Two FreeCAD quirks had to be worked around. setCameraOrientation() goes
through an animated setter (UseAnimation defaults on), so saveImage fired
mid-transition and the roll drifted; setting the Coin camera node
directly avoids the animation entirely. The first call after a standard
view also needs a second application to take, so each render now verifies
up.z equals cos(elevation) before saving and retries if not.
Also tightened framing 20%, since fitAll was zooming out to include the
road strip that runs well past the parcel.
The first pass included two orthographic elevations and a low approach
view, which read the site edge-on and showed no roof. Dropped those.
The set is now six views that all look down: a straight-down site plan,
four aerials at 45 degrees from each corner, and one 35 degree hero shot.
Nine 2400px views of the site model in docs/renders: an isometric, a
site plan, dimetric and trimetric, four aerial obliques from each corner,
a low approach view from the road, and two orthographic elevations.
Also hardens the freecad MCP entry added in the previous commit. It ran
"uvx freecad-mcp" unpinned, which resolves and executes whatever version
is current at every launch. Now pinned to 0.1.20 and marked optional, in
line with the ruv-swarm and flow-nexus entries alongside it.
Models the plot and everything on it in FreeCAD, and writes up the
decisions the modelling forced.
Parcel geometry is traced from the DOL LandsMaps cadastral polygon and
reconciled against that portal's own measured edge lengths (40.86 + 26.61
/ 166.81 / 42.48 + 14.94 / 152.46 m), which the trace reproduces to within
about 1% with 1.67 m of closure error over a 444 m perimeter. Note the
mapped extent comes out near 9,570 sqm against a deed area of 8,266 sqm,
a ~16% gap that needs a surveyor before any offer.
On the site: 60x25 m production building on a 10 degree monopitch, a
45x38 m phase-2 building, roof and carport PV, fire and raw water tanks,
a detached boiler/chiller utility yard, perimeter wall and gate, guard
house, roofed staff parking, and the loading and fire-access roads.
Docs:
- scale.md: expansion headroom for a second building, and the detached
utility yard, which frees ~126 sqm inside the main shed
- sustainability.md: roof orientation study (rotating the building for
solar gains under 1 point and costs 4 m of clearance, so it stays
aligned to the plot), and a new water supply section
- facility-security.md: fire water supply behind the existing
suppression design
Figures marked as estimates are planning-grade, not engineering
calculations; the PV module spec is a generic placeholder, and zoning for
factory use on this plot is still unverified.
Three current gates (market validation, BOI, land title check) through
quotes, commitment, build, launch, and revenue-gated expansion; import
window correctly attributed to certificate issuance
Own land yields ~80-135 t/yr vs ~350-400 t/yr mature demand; forestry
classification check gates everything; staged electric-first path with
coppice planted now for the expansion-phase biomass boiler
Press cooling return (60 C) feeds heat pump into boiler feedwater; waste
heat runs label oven and HVAC dehumid reheat; solar thermal preheat;
steam accumulator; boiler does only the final lift. Heat pumps for the
final 180 C steam and ground-source in tropical Thailand both ruled out
with reasoning; northern Thailand LPG tank context documented
Steam, compressed air, cooling, water treatment, racking, HVAC, solar EPC
and BESS; baseline total 23.98M-41.63M THB, options priced separately;
all figures budgetary +/- 30%, basis marked per row
Group B base activity (plastics) with non-tax package and machinery duty
exemption; CIT value engineered via solar/BESS, smart-and-sustainable
automation, and R&D merit measures; NEC/Lamphun regional angle; BOI
approval sequenced ahead of incorporation and machinery orders
- docs/process-flow.md: mermaid chart plus stage table of every check and
the three artist approval gates, from audio intake to fulfillment
- docs/process-flow.drawio with PNG and PDF exports
- pressing-line.md: floor must carry multiple tons per m2 in machine areas
- README: process-flow entry in document index and layout tree
- docs/facility-layout.drawio: zoned floor concept (production, galvanics,
utilities, logistics, support) with material and stamper flow arrows
- PNG and PDF exports alongside the source
- facility-security.md: suppression subsection no longer splits the fire
safety bullet list; clean agent wording updated to FK-5-1-12
- README: vendor sections for Agnew Analog (lathe), Plating Power/Digital
Matrix (galvanics), Sibert (stamper prep), Stamper Discs (bridge stamper
service), Pheenix Alpha (automated presses)
- docs/suppliers/equipment-suppliers.md: full needs list and supplier map
across all nine areas of the production chain
- docs/: Newbilt equipment offer, site requirements, process schematic,
service rates, project cost overview, PVC supplier list, consultancy overview
- .gitignore excluding local tooling config and runtime state