5bdb013449f3af956ac85343d2c062f36fbd55d6
28
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
face699a28 |
Optical QC: EtherCAT control plan with geizhals.de prices
Deploy test site / deploy (push) Successful in 57s
User, 19 Oct 2026: plan the current EtherCAT setup, keep the 100 W servo, check prices on geizhals.de. - New docs/equipment/inline-qc-control-plan.md: decisions, bus layout (drives at the end of the line because the A6-200EC takes control power from the main supply), I/O list for EL1809/EL2809/EL3152/EL5101 and the drive touch probe, PDO and DC notes from the A6-EC manual, geizhals.de price table (EUR 1,891.60 to 2,104.39 + USD 246.58 for the servo kits, THB 80k to 88k), NixOS/EtherCrab software, safety circuit (PNOZ s3, two contactors, dump valve), bench test with pass marks (parts about THB 64k, all reused), build order, spares, open points. - EL3102 replaced by EL3152: the optoNCDT 1420 output is 4 to 20 mA. - Spindle encoder index goes to an EL5101 instead of the drive touch probe; encoder 2,000 to 2,500 pulses. - BOM: control lines split per part with geizhals.de prices (+30% high end for shipping and Thai duty/VAT, estimate); total USD 16,912 to 33,061 (THB 0.56M to 1.09M). Doc, render caption and fleet calculator text now say USD 17k to 33k. - README links the plan. |
||
|
|
8c2143630c |
Optical QC: one station for both presses, after the cooling racks
Deploy test site / deploy (push) Successful in 55s
User, 18 Oct 2026: for now one QC station for both machines; let the records cool in a queue before testing them. - inline-optical-qc.md "Where it sits": launch setup. Spindle stacks from the Duplex system and the Classic, labelled at the press (press, stamper set, first and last cycle), cool in FIFO racks (24 h accepted practice, 8 h at the shortest, Stamper Discs; about one day of output, 2,800 to 3,100 records); the finishing operator feeds the station from the cooled stacks. Gains: warp and centring measured on settled records (the release value), one station instead of two, no Classic unloader change, no warm-record sag or thermal camera. Cost: defects found hours later, covered by the Duplex operator, per-cycle telemetry and an early lane for the first records of each run and after stamper changes. Record key from the stack label and stack position, checked against the run-out stamper number. Capacity 10 to 12 a minute against 5 to 6: one station to about two Duplex systems and two Classics. A station at each press stays the later option. Cost table, open points, infeed row, thermal camera note and the Newbilt question follow. - Fleet calculator: the per-press stations and the release station are gone; the finishing block shows the cooling racks with record stacks and the one optical station by the corridor glass; tooltips, corridor and conveyor texts; machine park back to its legend, finishing box "cooling, QC, packing". - quality-automation.md layer 1, digital-factory.md QC row, process-flow.md stage 6, site-candidates.md block ground floor, crane-workshop-tours.md tour stop 6. - Investor render: infeed label "the operator sets each cooled record down". Checks: node --check; pw_bp_calc.py 0 fails; pw_iso_view_check.py OK; info for every data-id at all presets, levels and rotations; GF nodes 2,414 at the full preset; zoomed shots in two rotations. |
||
|
|
9ffcfe62f1 |
Plant view: inline optical QC station at every press
Deploy test site / deploy (push) Successful in 58s
User, 18 Oct 2026: add the new inline inspection machine to the factory. - Fleet calculator, isometric plant view: qcStation() draws the concept station (1.9 x 0.65 x 1.5 m: aluminium conveyor table with the two rim belts, light-tight tunnel, stack light, record on the infeed, reject bin) in front of the operator in every Duplex cell (after the trimmer) and at the unload side of every Classic, in the hall and in phase 2; own ids qc-duplex-n / qc-classic-n with tooltips from inline-optical-qc.md (Classic hand-off open with Newbilt). Cell floor extended to take the bin. - The finishing block's end-of-line optical station becomes the release inspection: the same station measuring cooled samples (records settle ~24 h); corridor, block and conveyor tooltips reworded. - Machine park schematic: a QC bar in every Duplex cell and Classic, an "inline QC" legend entry; the legend moved to the bottom of the hall box (it collided with the hall heading). - Docs: inline-optical-qc.md (release station location, plant view), site-candidates.md block ground floor, crane-workshop-tours.md tour stop 6. Checks: node --check on all scripts; pw_bp_calc.py 0 fails; pw_iso_view_check.py OK; every data-id has info at all presets, levels and rotations; legend clear of cells and heading up to 30M records; zoomed shots in both themes and two rotations. GF node count at the full preset 2,523 (was 2,388), 8M records ~2,980; rebuild under 60 ms. |
||
|
|
705690eb99 |
Fleet calculator: plant view starts from the front, drag pans at any zoom
Deploy test site / deploy (push) Successful in 55s
User, 18 Oct 2026: show the factory from the front at start, and make the view movable always, not only after the first zoom. - CNXIso default rotation 1 (from the south-west: office, car park and gate face the viewer) instead of 3; documented setRotation in the header. The business plan renders pin setRotation(1) already. - Drag pans at fit as well (was only when zoomed in); grab cursor at every zoom, grabbing while dragging. On touch screens the fitted view keeps vertical swipes for page scrolling (touch-action pan-y), so a horizontal drag pans; once zoomed in every direction pans, as before. |
||
|
|
984ced2485 |
Biomass steam in both plans, PV on the factory roof only
Deploy test site / deploy (push) Successful in 49s
User, 17 Oct 2026: "only put solar on the factory, prepare the other buildings for solar, option a and b should operate on biomass". - Steam: two 500 kg/h biomass modules (Getabec class, 6M to 10M THB) plus a fuel store and handling block (1M to 2M, estimate) in both plans; the electric bank becomes the alternative. ~0.67M THB of fuel a year against ~4.9M for electric steam; grid demand ~264 kW instead of ~980 kW. - Solar: ~520 kWp on the factory roof (the biomass-case optimum is ~500 to 550 kWp, hourly sketch in sustainability.md "PV size with biomass steam"); office roof and parking canopies built PV-ready (~120 kWp later). ~87 % used on site, ~61 % of the plant's electricity. - Calculator: biomass default, bFuel row, pvKWp 520, pvSelf 87, iso fills the factory roof first and shows the other roofs as PV-ready. - Numbers: launch plant ~168M / 232M / 296M with contingency; Plan A ~182M (~2M above 180M: the Chinese-route lever priced only electric boilers; a Chinese biomass quote is the way back), Plan B ~217M (label ~215M), ~35M more. Calculator EBITDA A 2.17M, B 2.23M USD. - CSV, total-investment, revenue-model, sustainability, scale, biomass, site-candidates, boi, steam-cooling, construction RFQ (canopies PV-ready), README, roadmap; business plan draft 0.3 rebuilt (A and B 63 pages) with new renders. |
||
|
|
9ff5feef11 |
Solar on every roof, BOI solar correction, open source section
Deploy test site / deploy (push) Successful in 54s
Solar (user, 17 Oct 2026: "use as much roof space as possible") - PV on every roof and canopy: ~640 kWp on the Payap scenario plot (factory roof ~523, canopies ~54, flat office roof ~65 kWp around the AC units); ~300 kWp on the Mueang Chi hall. Calculator: pvKWp 640, new pvSelf 85 % (zero export, hourly sketch), PV cost per kWp times the array, office-roof PV in the iso view, roofs drawn full. - 12.8M to 16.6M THB at 20 to 26 THB/W; CSV baseline 34.37M to 56.34M; launch plant ~168M / 231M / 294M THB with contingency; Plan B ~216M (label ~215M), ~39M above Plan A; Plan A unchanged (it leases the array), its solar lever ~17.5M. PV payback ~4.2 to 5.9 years. - Permits (rooftop solar no factory licence since 28 Dec 2024, ERC exemption under 1,000 kVA, PEA zero export) and PPA discounts sourced in sustainability.md. BOI correction - Announcement 3/2568 (in force 1 July 2025) ended BOI promotion for solar installations; only the battery may qualify (12M THB per MW cap). Removed the "BOI solar measure" from boi.md, total-investment, revenue-model, sustainability, site-candidates and both plan versions; Plan B's case for owning the array is the PPA bill it avoids (~0.07M USD a year). Open source (user, 17 Oct 2026) - digital-factory.md "Open source throughout, and working with other plants": everything we run and build is open source on NixOS, our code published (licence to decide), vendor firmware the stated exception; later the stack and factory-automation services for other pressing plants, not in the revenue. - Business plan section 5.6 plus an executive-summary bullet, reading guide and not-modelled mentions; draft 0.3 rebuilt (A 60, B 61 pages), renders re-made with the roofs full. |
||
|
|
ab303618d8 |
Solar and battery re-priced from Thai market data (October 2026)
Deploy test site / deploy (push) Successful in 46s
- Rooftop PV, 300 kWp (size still illustrative): 20 to 26 THB/W installed with the Deye hybrid inverters, 6.0M to 7.8M THB (was 25 to 35 THB/W, 7.5M to 10.5M). Sources in the utilities CSV: DEDE Thailand PV Status report (Mahidol survey: 22 to 25 THB/W for factory systems of 10 kW to 1 MW, 2023), CapSolar 2026 (20 to 25 under 1 MWp), Saimai Solar's list (300 kW for 5.4M THB), Deye hybrid inverter retail (160,500 THB per 50 kW). - Battery 271 kWh, now installed: 2.0M to 3.5M THB (was the bare Gobel list price, 1.4M to 2.0M, which matches DEDE's 5,000 to 7,000 THB/kWh for LiFePO4); adds enclosure, fire protection, controls and installation, below CapSolar's 12,000 to 15,000 THB/kWh for a fully installed factory BESS because the hybrid inverters do the conversion (estimate). - Utilities baseline 27.57M to 47.50M THB; launch plant ~160M / 222M / 283M THB with contingency; Plan B ~208M (~149M to 266M), ~31M more than Plan A; Plan A's total unchanged, its solar lever ~9.7M. PV payback ~3.8 to 5.4 years (sustainability.md). Calculator, README, roadmap, revenue model and both business plan versions (renders included) updated. |
||
|
|
3f33babdaa |
Plan B re-defined: the launch plant with everything in (~210M THB); front view on the cover
Deploy test site / deploy (push) Successful in 52s
- Plan B now starts like Plan A with one Duplex system and one Classic, but takes none of the six levers: owned solar and battery (with the BOI solar measure), the full metrology stack, the visitor corridor, cassette and CD-R, the bought crane and Thai-supplied utilities (user, 17 October 2026). ~193.8M THB before the reserve, ~209M with it (~150M to 268M), ~32M (~18 %) more than Plan A; the second Duplex is a growth step from revenue in both (~15.4M THB, estimate). - total-investment.md "Two plans" re-based (heading and anchor now "B at ~210M THB", README and roadmap links updated); revenue-model.md operating pictures: same volume and EBITDA as Plan A, depreciation on Plan B's capital (operating profit 1.26M USD central, payback ~3.7 yr); the extra earns nothing in the modelled table, which the docs say. - Calculator: Plan B preset = the launch plant with contingency kept out (EBITDA 2.07M USD, cash payback year ~4.3, IRR ~21 %); budget card marks 180M and 180M plus 25 %; preset label "Plan B (~210M, all in)". - Business plan draft 0.3, both versions rebuilt: every Plan B branch of the three content files rewritten; renders regenerated with the isometric view turned to the front of the site (road, car park, office, corridor facade) for the cover and Figures 8 to 10. |
||
|
|
bd357ab03f |
Business plan draft 0.3 in two versions: Plan A ~180M and Plan B ~225M THB
Deploy test site / deploy (push) Successful in 52s
- One build makes both documents: plan_variant.py switches the plan-specific text (pick / is_a / label); build_plan.py writes CNX-Vinyl-Business-Plan-A and -B (docx), export_pdf.py exports both PDFs with the table of contents filled in. Draft 0.2 (single launch-plant plan with contingency) is removed; it stays in the history. - Plan A: the launch plant with every machine and six cost levers, ~177M THB with the ramp-up reserve, no contingency. Plan B: the second Duplex at launch, five presses, ~224M THB on the same basis. Each version reads as a complete plan with one table comparing it with the other; the 216M investor-question text is gone, Pheenix is priced at OMS's reference plus 20 %. - Calculator renders in both documents, each from its own preset: the plant at a glance (Figure 4), the budget check (Figure 5) and ten years of cash (Figure 6), in docs/renders/calculator/. - Calculator budget card: the verdict and third KPI now name the tightest budget the midpoint fits (Plan A: 3.3M to spare under 180M; Plan B: 0.8M under 225M) instead of always 225M. - Fixes: CD replication cross-references point to section 4.10; the blended price in section 3.3 and roadmap item 1 is 3.76 to 5.27 USD at 60 % specials (3.50 to 4.60 at a standard-heavy mix). |
||
|
|
f2ff1eac1f |
Two plans for the investor: Plan A ~180M, Plan B ~225M THB; Pheenix at OMS +20 %
Deploy test site / deploy (push) Successful in 53s
User (October 2026): price the Pheenix galvanics line at OMS's reference plus 20 %, and work on a new business plan in two versions, one at roughly 180M THB and one at +25 %; the plans do not include contingency; Plan A keeps every machine and uses cost levers only. - total-investment.md: Pheenix block 324k to 445k USD (OMS 4-cell wet room with know-how transfer, EUR 234k to 321k, plus 20 %; was 320k to 650k estimate); launch plant now ~161M to 285M THB with contingency, midpoint ~223M. New section "Two plans": Plan A = launch plant with solar PPA, metrology launch tier, corridor later, cassette and CD-R later, rented crane, Chinese boilers and compressor: subtotal ~161.7M + ramp-up reserve 10 to 20M = ~177M THB (127M to 226M). Plan B = second Duplex at launch (five presses), everything in: subtotal ~209.2M + reserve = ~224M THB (162M to 286M). Contingency listed as not in either price (~24M / ~31M at 15 %). The 180M / 216M answer marked superseded. - revenue-model.md: operating pictures of both plans at 60 % specials. Plan A central EBITDA 1.73M USD, operating profit 1.34M, payback ~3.1 yr on the plan price; adverse loses money. Plan B (1.0 / 1.25 / 1.5M records) central EBITDA 3.14M, operating profit 2.63M, payback ~2.2 yr; adverse just covers depreciation; needs ~1.25M records sold. - Calculator: Pheenix price basis "OMS +20 %" and "OMS directly"; new contingency switch (in the total / shown separately); presets Plan A and Plan B (replace "investor levers" and "five-press"); budget card against 180M and 225M. - galvanics.md price note, README, roadmap. Checks: calculator regression updated and passing (0 fails, no page errors), node --check on all scripts, site build (no dead links), no em dashes added. |
||
|
|
3f1e4452b8 |
Press hall: five Duplex bays and four Classic positions (balanced at 60 % specials)
Deploy test site / deploy (push) Successful in 44s
User (October 2026): "change the hall layout" after the finding that the 60/40 floor split leaves the Classics about half loaded at 60 %+ specials (specials run only on the Duplex systems). - Press hall now keeps five Duplex bays (four along the visitor corridor, the fifth at the head of the second row) and four Classic positions: 550 + 200 = ~750 m2 of ~870 m2, ~73/27 by floor, 10 to 4 by presses; launch plant fills one of each, growth adds Duplex first. - Full hall: ~2.9 to 4.4M records a year at 60 % specials, Classics ~80 to 100 % loaded (60/40 gave ~2.3 to 3.6M); ~3.2 to 4.4M at ~20 %; fourteen presses as before: ~2.1 to 2.5 t/h steam, up to ~1.8 MW cooling, a utility phase of its own. - pressing-line.md, scale.md, site-candidates.md, crane-workshop-tours.md, roadmap.md, README (FreeCAD model still the earlier layout, not redrawn); calculator preset "Full hall (5 D + 4 C)" and ladder; plant view reserves 5 Duplex bays and 4 Classic positions; business plan draft 0.2 rebuilt. Checks: renderer 720 checks and functional checks pass, calculator regression 0 fails, level checks clean; PDF 47 pages, TOC filled. |
||
|
|
b3e8e4272b |
Specials share 60 %+: revenue model, calculator and business plan re-based
Deploy test site / deploy (push) Successful in 52s
User (October 2026): "lets say 60+% special prints" (the plant focuses on special prints, not mono colours). - Specials (splatter, marble, colour effects) run only on the Duplex systems, so at 60 % the Duplex sets the launch plant's output: ~0.58 / 0.74 / 0.90M records a year (was 0.71 / 0.84 / 0.97 at ~20 %), the Classic at about two thirds load. Full 60/40 hall: ~2.3 to 3.6M (Duplex -limited, Classics about half loaded); five-press fleet unchanged. A hall balanced by output at 60 % would give Duplex ~70 to 75 % of the floor (estimate; noted, not applied). - Blended price 3.76 / 4.49 / 5.27 USD (standard 3.40 / 3.80 / 4.25 plus the 0.60 / 1.15 / 1.70 specials premium on 60 %). Launch operating picture: revenue 2.28 / 3.65 / 5.41M USD, EBITDA 0.23 / 1.73 / 3.79M, operating profit -0.66 / 1.21 / 3.46M, payback ~3.8 yr central, break-even ~0.25M records; adverse needs ~1.1M records to cover depreciation. Specials' extra direct cost (coloured compound, purge, trim only into black) is not in the cost table yet: flagged as an upper bound until compound quotes. - Calculator default specials share 20 -> 60 % (planning rates keep the launch plant balanced at 850k: revenue 4.14M, EBITDA 2.07M, payback 3.3 yr, cash payback year ~4.8, IRR ~18 %). - revenue-model.md, scale.md, pressing-line.md, README; business plan draft 0.2 rebuilt (sections 1, 4, 9, risks). Checks: calculator regression 0 fails, no page errors, node --check on all scripts; PDF 47 pages, table of contents filled; no em dashes added. |
||
|
|
d8b2c1e2db |
Press hall laid out 60/40 for Duplex systems (special pressings first)
Deploy test site / deploy (push) Successful in 46s
User (October 2026): "the factory should have more space for duplex setups than classic, we will mainly focus on special prints and not mono colours plan it to be 60/40 duplex classic". - Press hall (~870 m2) planned 60/40 by floor: four Duplex bays along the visitor corridor and six Classic positions in the second row (440 + 300 = ~740 m2 at 110 / 50 m2), the rest open for mould carts and staging; the launch plant fills one of each, growth adds Duplex systems first. Replaces "room for ten more Classics". - Full hall: 8 semi-automatic presses + 6 Classics, 57/43 by press count, ~1,250 to 1,410 records/h gross, ~3.6 to 4.7M a year on the scale.md basis (was 4.7 to 5.8M for 2 Duplex + 11 Classics); ~2.1 to 2.5 t/h steam and up to ~1.8 MW cooling, still a utility phase of its own. By hourly output the six automatic Classics still press more than the eight semi-automatic presses (estimate). - pressing-line.md, scale.md (capacity table, utilities), site-candidates .md, crane-workshop-tours.md, roadmap.md, README (the FreeCAD Payap model still draws the earlier layout; noted, not redrawn). - Calculator: preset "Full hall 60/40 (4 D + 6 C)", fleet ladder Duplex first (1+1, 2+1, 3+2, 4+3, 4+6) plus the same floor Classic-led (2+11) and Duplex-only (7+0) for comparison; plant view reserves 4 Duplex bays and 6 Classic positions. - Business plan draft 0.2 rebuilt (capacity table row, plot fit, layout). Checks: renderer 720 checks pass (node budget 2,700 for the Duplex-heavy stress preset, 60 fps), calculator regression 0 fails, level selector and page checks clean at 390 / 1024 / 1440 px dark and light; PDF 47 pages with a filled table of contents. |
||
|
|
4beda7f27a |
Plant view: toilets in the factory, link lands on doors, no separate trimmer
Deploy test site / deploy (push) Successful in 45s
User feedback on the isometric view (October 2026): - "the production hall is missing toilets": two sets. At the staff entry: women 2 WC, men 1 WC and 1 urinal, an accessible WC, basins. At the east end of the back aisle in the finishing block: women 2 WC, men 1 WC and 1 urinal, basins (proposed, not yet in the parametric plans). site-candidates.md gets a Toilets bullet with the Thai minimum (Ministerial Regulation No. 39 B.E. 2537, table 2; separate toilets for men, women and disabled staff under the welfare regulation B.E. 2548). - "the door and the corridor is not aligned": the covered link now lands on doors at both ends, centred on it (factory entrance at the start of the visitor corridor, office lobby door on the north face, windows cleared); the corridor glass starts after the door; the stray staff door with no path is gone; the link deck ramps up to the factory floor. - "we also dont need a extra trimmer with the optical, this is included in the duplex and the classics": the finishing block keeps only the optical inspection station; site-candidates.md, the tour route and the process flow say the presses trim inline. Checks: renderer 720 checks and functional checks pass (max 2,485 SVG nodes); calculator regression 0 fails; level selector works in the page; no page errors or overflow at 390 / 1024 / 1440 px, dark and light. |
||
|
|
8e4559ee36 |
Plant view: GF / 1F / Roof levels, lamps off the drive areas, pipe bridges land on walls
Deploy test site / deploy (push) Successful in 48s
User feedback on the isometric view (October 2026):
- "a light pole in the middle of the truck apron": a PAVED list of the
drive areas (gate road, aprons, east road, lane, access road, car
park, yard); every lamp now stands on a kerb or verge (the apron lamp
to the south kerb, three more moved off drive areas, one added on the
east road); one LAMPS list feeds poles and light pools.
- "the office building also has 2 levels, can we make a selector for GF
1 2": the Roof / Inside toggle becomes GF | 1F | Roof. 1F shows the
office first floor (+4.0 m: offices, meeting and training, meeting
room, IT and server, toilets, pantry, flexible room, stair and lift)
and the finishing and print block's upper floor (+3.8 m: print room in
reserve, print stock, packaging materials, stair and goods lift), the
rest ghosted. Office ground floor re-split after the floor plans
(site-candidates.md). setMode('inside'/'roof') still works; new
setLevel / getLevel / onLevel; the level survives calculator updates.
- "the pipe bridge to the pump and HX room also stops mid air": both
pipe bridges now drop down the wall faces at the factory and at the
yard building to low-level wall sleeves, with a second support post.
Checks: renderer 720 checks (presets x GF/1F/Roof x 390/1024/1440 x
dark/light) and functional checks pass; calculator regression 0 fails;
level selector works in the page; screenshots reviewed in all rotations.
|
||
|
|
073f20a132 |
Plant view: cars under the canopies, PV on the car park, yard lamps, silo order
Deploy test site / deploy (push) Successful in 47s
User feedback on the isometric view (October 2026): - "the cars are above the car park roof": cars and scooters were their own sprites and the depth sort put some above the canopy; they are now drawn inside the canopy sprite before the posts and the roof, so the roof always covers them in every rotation. - "a light pole in the middle of the yard": the two yard lamps at the service-lane edge (one in front of the boiler hall) move to the yard's back fence; one LAMPS list feeds both the poles and the light pools. - "add solar panels to the car park": the car and scooter canopies now take PV first (107 modules, ~48 kWp; construction RFQ has canopy PV), the factory roof the rest (560 of 667 modules at 300 kWp); canopy tooltips give their kWp. - "arrange the pvc storage outside to be black, red, yellow": the silos read black, black, red, yellow from the default north-east view. Renderer checks rerun (288 + functional, no failures); calculator regression 62 checks pass; 390 / 1024 / 1440 px, dark and light, no page errors or overflow. |
||
|
|
71e30b0633 |
Plant view: isometric tile-game render of the configured plant
Deploy test site / deploy (push) Successful in 45s
User request (October 2026): a SimCity / Factorio style render in the calculator for an overview of the factory, solar and utilities. New card "The plant at a glance" at the top of the plant and business plan calculator: an isometric SVG scene (CNXIso, inlined with its iso- prefixed CSS) of the Payap-scenario site driven by the calculator state: Duplex systems and Classics (r.D, r.C; overflow into the phase 2 building), galvanics in-house or "stampers bought in", cutting in-house or "cut abroad", metrology tier, cassette and CD-R benches, solar buy / PPA / none (300 kWp, 271 kWh battery), electric or biomass steam (fuel store, chip pile, smoking stack), boiler and chiller modules out of the four positions each (r.nb, r.nc), crane, visitor corridor. Roof / Inside cutaway, four rotations with a north arrow, zoom, pan, pinch, tap for figures from the docs; dusk in the dark theme, day in the light theme; CSS-only animation that pauses off-screen and respects reduced motion. The scene only rebuilds when its config changes. Verified headless on Edge: 390 / 1024 / 1440 px, dark and light, no page errors, no overflow, presets map to the scene (lean, five-press, full hall); the calculator's 62-check regression still passes; node --check on all scripts. Renderer built and tested separately (288 checks). |
||
|
|
485b3b630a |
Plant and business plan calculator: configuration, investment, budget, ten-year cash
Deploy test site / deploy (push) Successful in 44s
User request (October 2026): an interactive business plan calculator where the plant configuration is chosen and everything follows. Built into the fleet calculator (same page and URL, one model): - Plant configuration card: galvanics in-house or bought stampers (and Pheenix estimate vs OMS reference), mastering and cutting in-house or outsourced, metrology full or launch tier, cassette and CD-R, solar buy / PPA / none, electric or biomass steam, Thai or Chinese utilities, crane buy or rent, visitor corridor now or later, ramp-up reserve; stamper supply to other plants; disabled-not-hidden controls. - Investment built from the total-investment blocks (low / mid / high, sources and kind badges); boiler and chiller modules sized from the fleet and flagged past the four positions; phase 2 building past the 870 m2 press hall. Default reproduces 160.9 / 226.7 / 292.5M THB. - Budget card against 180M and 216M THB; "Investor levers" preset gives 193.6M mid, 203.6 to 213.6M with the reserve. - Money follows the configuration: outsourced title steps passed through at cost (fee split 51.1 / 37.0 / 11.9 %), electric steam energy and demand charge, PPA power price, optional cassette/CD-R revenue. - Ten-year cash view: editable ramp and discount rate, payback, NPV, IRR, chart and table; pre-tax, pre-financing sketch. - Presets: launch plant, investor levers, lean, five-press, full hall. - Verified headless on Edge: 62 checks, 390 / 1024 / 1440 px, dark and light, no overflow, no page errors. Business plan 9.4 cross-check updated to the calculator's figures (EBITDA 1.68M, payback 4.1 yr; cash payback year ~5.7, IRR ~13 %); docx and pdf rebuilt. README and landing entry renamed. |
||
|
|
794cde228c |
Re-base scale, pressing line, roadmap, revenue model and calculator on the launch plant
Deploy test site / deploy (push) Successful in 48s
Launch plant (user, October 2026): one Duplex system and one Classic, with cutting and galvanics in-house, everything in one capital round. - scale.md: capacity table now launch plant 0.71-0.97M records/yr, the second Duplex as a growth option; launch utilities (450-540 kg/h on B-1/B-2, ~390 kW on 2 x 250 kW); calculator figure ~0.94M. - pressing-line.md: launch plant section on top; five-press fleet kept as the layout fleet the hall and backbone are built for. - roadmap.md: long-lead orders for the launch plant, no bridge stampers or outsourced cutting, commissioning order, what stays revenue-gated. - revenue-model.md: operating picture of the launch plant: central revenue ~3.75M USD, EBITDA ~1.6M, operating profit ~1.1M, payback ~4 yr on 216M THB, break-even ~0.3M records; adverse corner cannot cover depreciation. Five-press table kept and labelled. - fleet-calculator.html: start fleet 1 Duplex + 1 Classic, target 850k, capex base 6.55M (cases 8.9 / 6.55 / 4.9M), Duplex beyond one, chiller 500 kW, imported machinery 2.3M, ladder from the launch plant. - total-investment.md: superseded note updated. |
||
|
|
7af5d89dd0 |
Steam and cooling plant for the five-press fleet; utilities re-based
Deploy test site / deploy (push) Successful in 44s
New page docs/steam-cooling.html (site /demos/steam-cooling/): the utility plant as a clickable process diagram. Steam side: raw water, softener and dosing, feed tank with heat-pump feedwater recovery, feed pumps, a bank of two 500 kg/h boilers (third for N+1 as an option), separator and metering, optional accumulator, blowdown, the 10 bar header with a valved, metered branch and trap per press, drip legs and condensate return. Cooling side: Newbilt's press outlets are open (max. 2 bar), so returns drain to a warm tank, pass the heat pump, an optional dry cooler and a plate heat exchanger to a cold buffer tank, and VFD pumps feed the 20 to 25 C header at ~10 bar to every press, the extruders and the central hydraulic oil cooler; the chiller loop (three 250 kW air-cooled modules at 40 C ambient, fourth as option) stays closed and clean. Galvanics cooling (12 to 20 C) is a separate circuit. Operating cases (launch, Duplex system 1, five presses, one module down) show demand against installed capacity; design basis with sources, equipment schedule, RFQ questions. Static SVG, no per-frame work. Design basis at Newbilt's per-machine figures: steam 750 to 900 kg/h, cooling 652.5 kW (625 presses, 15 extruders, 12.5 hydraulics), 305 to 540 l/min circulating. Also found: Newbilt's 53 l/min at ~60 C out is ~140 kW, above its 125 kW peak; listed as a re-quote question. Re-based in the same commit: - scale.md: electrical table (chiller bank ~210 to 325 kW electrical, plant peak ~430 to 700 kW, ~950 to 1,330 kW with electric steam), grid 800 to 1,000 kVA (1,250 to 1,600 with electric steam, Schedule 4 past 1,000 kW), tariff 4.5M to 6.8M THB/yr, battery ~1 h of chiller peak, boiler and chiller banks, biomass up to ~550 t/yr at 1.5 M records, utilities money line. - sustainability.md, biomass.md: same figures; electric steam 5.2M to 6.0M THB/yr mature, 1.6M to 1.8M early; fuel saving 4.0M to 5.4M. - utilities CSV: boiler bank, chiller bank with HX and tanks, softener and loop treatment re-sized; baseline 23.98M-41.63M -> 30.07M-51.33M. - total-investment.md: re-size as an added-scope row (+185k / +294k USD); headline 4.7M to 8.9M unchanged until the investment re-base. - pressing-line, equipment-suppliers, facility-security, fleet calculator (boiler 1000 kg/h, chiller 750 kW), plant page detail texts; README, landing page, build.sh. |
||
|
|
53f3a07a45 |
Unified Engelbert Strauss workwear for all staff
Deploy test site / deploy (push) Successful in 43s
User, October 2026: we want unified Engelbert Strauss work clothes. - worker-safety.md: decision recorded; everyone, office included, in the same Strauss workwear with the company logo, process PPE on top. Kit at Strauss catalogue prices checked October 2026 (incl. 19 % German VAT, which drops out on export): production 3 trousers e.s.motion 2020, 3 polo shirts, 2 T-shirts, a sweatshirt, S1 safety shoes e.s. Vasegus II low, ~293 EUR before VAT, ~338 with embroidered logos (embroidery price an estimate); office 4 polos and a softshell jacket, ~127 EUR. Ordering: Strauss ships outside Germany where customs law allows, shipping quoted with the order, prepayment, duty and taxes charged to the recipient; Thai duty on work trousers 13.8 %, BOI does not cover clothing. About 9k USD (~0.3M THB) a year at the start fleet. Check lighter lines for the press hall heat with samples. - revenue-model.md: workwear noted on top of the x1.3. - Fleet calculator: workwear line under labour (production and office kits a year, shipping and Thai duty), six new assumptions; 8,573 USD a year at the defaults. |
||
|
|
8032e0ea47 |
BOI: machinery import duty and import VAT, PVC duty relief
Deploy test site / deploy (push) Successful in 35s
User, October 2026: take the BOI duty-free import and VAT exemption into consideration. - boi.md: import VAT goes with the BOI duty exemption (Revenue Department answer on the BOI OSOS FAQ, checked October 2026); what it is worth: ~2.75M USD of imported machinery at the start fleet (block midpoints) would otherwise carry ~5 % duty (Thai MFN averages 4.1 % on HS 8477, 0 to 10 % across HS 84; estimate until the HS codes are set), ~0.14M USD, and 7 % import VAT, ~0.2M paid at the border and recovered later as input tax, mostly as a refund claim since exports are zero-rated. - total-investment.md: the blocks are vendor prices without duty or import VAT, so the headline already assumes promotion. - Fleet calculator: BOI promoted / not promoted switch and export share. Not promoted adds the machinery duty to capex and depreciation, shows the import VAT as cash at the border, and charges duty on imported PVC compound; promoted exempts both, with no compound duty on exported records and 90 % off for domestic sales (sections 36(1) and 30). A note under the KPIs shows what promotion saves either way. Defaults: payback 3.1 years with BOI, 3.2 without; adverse case operating result -31k with BOI, -68k without. CIT and BOI CIT exemptions still not modelled. |
||
|
|
1a368287f8 |
Labour from base salaries; health care with check-ups for all staff
Deploy test site / deploy (push) Successful in 34s
User, October 2026: option to enter base salaries; the company should provide proper extra health care with check-ups for all staff. - worker-safety.md: new "Health care for all staff" policy (decided October 2026): group health insurance (inpatient and outpatient) and a yearly check-up for everyone, office included, on top of social security; the occupational checks Thai law requires for risk-factor work (Ministerial Regulation B.E. 2547: within 30 days, then yearly, by an occupational physician, records kept 2 years after the job ends) for the press floor, galvanics and maintenance; planning costs with sources checked October 2026 (group insurance ~8,000 to 18,006 THB a head a year, plan ~15,000; Rajavej Chiang Mai check-ups 1,290 to 5,990 THB, plan ~2,500 plus ~1,500 risk-factor tests, estimates); social security 5 % up to the 17,500 THB ceiling since 1 January 2026. - revenue-model.md: cutting engineer 50,000 THB is base salary; health care on top of the x1.3 (~0.35M THB a year at the start fleet); what the x1.3 is made of. - Fleet calculator: base salaries per role (the revenue model loaded rates / 1.3; cutting engineer 50,000), employer social security 5 % capped at 17,500, 25 % overtime, bonus and PPE, health insurance and check-ups for all staff incl. 4 office staff (scale.md 3 to 5), risk- factor tests for the press floor, galvanics and maintenance; all as editable assumptions; people table gains office and all-staff rows. Defaults: labour 5.25M THB (was 4.67M loaded), direct cost 1.90 USD a record, EBITDA 2.19M USD. |
||
|
|
eac45eb234 |
Lacquer blank 70 EUR and cutting engineer 50,000 THB a month
Deploy test site / deploy (push) Successful in 39s
Team figures, October 2026: - revenue-model.md: a lacquer blank costs about 70 EUR, one per side, so ~160 USD a two-sided title before recuts; a cutting engineer costs about 50,000 THB a month; - fleet calculator: the lacquer assumption is now in EUR (70, one per side, converted at 1.155 USD per EUR; styli and recuts not included) and the cutting engineer 50,000 THB a month, both marked as team figures instead of estimates. At the defaults lacquers come to ~54k USD a year and direct cost to 1.88 USD a record (was 1.86). |
||
|
|
ce1d71e0b5 |
Fleet calculator: material, energy and labour cost, revenue and P&L
Deploy test site / deploy (push) Successful in 36s
User, October 2026: add calculation for material cost, PVC, carton, chemicals, labour etc. and revenue from sales. New "Money a year" card (and a "Prices and money" input card): - revenue: standard records at the standard price, specials with the premium, title services per title (revenue-model.md 3.50 to 4.60 blended, +0.60 to 1.70, 580 to 1,730 USD a title); - materials and packaging: PVC from the compound tonnage (rejects in, trim back as regrind), labels per pressed record, inner sleeves, printed jackets, shrink wrap, shipping cartons (estimate), maintenance; - stamper making: lacquer blanks and styli per side (estimate), nickel, silver and chemistry per electroformed part (revenue model: 60 to 150 USD a three-generation set); - energy from the fleet: machines, chiller and compressors at the hours run plus an estimated base load, roof PV off, PEA 3.2.2 blended rate and demand charge; steam from the presses running time at the biomass heat price (biomass.md); the start fleet lands in scale.md 4.3 to 6.4M THB; - loaded labour per role (revenue-model.md wages; cutting engineer an estimate), headcount now also counts QC, maintenance and cutting; - overheads, EBITDA, depreciation of capex (total-investment.md start fleet plan plus or minus each Duplex system and Classic), operating profit, payback; per-record cost bar; - Adverse / Central / Favourable presets from the revenue model ranges, USD / THB / EUR display; ladder gains revenue and EBITDA columns. At the defaults (1 M records, 20 % specials): revenue 4.42M USD, direct cost 1.86 USD a record (revenue model central 1.94), EBITDA 2.23M. README bullet; revenue-model.md links the calculator from its operating picture. |
||
|
|
7d7a378c8b |
Fleet calculator: machine park schematic with the stamper line feeding it
Deploy test site / deploy (push) Successful in 34s
User, October 2026: add a visualization of the machine park and the connected stamper production to the tool. - New card "Machine park and stamper production": one live SVG that follows every input. Top: the stamper line, lathe, Pheenix PASU, PPPU, PDPU (2 cells), PMPB, Sibert VSF, VSP, VSC, each with its count, flow a day and how busy it is. Middle: the press hall, each Duplex cell drawn as in the cell sketch (presses either side of the operator, EX 50 and EX 35 behind, trimmer in front) and each Classic with its built-in extruder, wrapping into rows and scaling down for big fleets; compound in on the left, stamper rack in and finishing out on the right. Bottom: central hydraulics, boiler, cooling, air and electrical piped up into the hall, amber where they exceed the plant as planned today. - Stamper production is now counted per station from the cycle times in galvanics.md (silvering, pre-plate four at a time, father, mother, stamper plus handling per PDPU cell, PMPB, Sibert steps; usable share of the hours 80 %, estimate) instead of a flat 20 to 32 parts per PDPU. At the defaults: 1 PDPU at ~43 % busy, as galvanics.md concludes. New assumptions with sources; the lathe rate (8 sides a day) is an estimate. - Requirements table: per-station counts and load; the URL hash now also reloads in an open tab (hashchange). Checked headless in Edge, both themes: no JS errors, no text overlap or overflow in the schematic at the default, 8 M and 30 M records, no horizontal overflow at 390 px. |
||
|
|
6df1301fb9 |
Site: light and dark mode for the landing page, plant overview and fleet calculator
Deploy test site / deploy (push) Successful in 36s
User, October 2026: add bright/dark mode to the site for both tools. - Each page sets data-theme on <html> before first paint: the saved choice (localStorage "cnx-theme", shared by all cnxvinyl.lol pages) or, without one, the system setting (prefers-color-scheme), which it keeps following until the user picks a mode. Toggle: header button (sun / moon). - Plant overview: light overrides for every SVG class; pipe colours are now CSS variables (--p-*), used by the pipes and the legend, darkened in light mode where the dark-mode tints were too pale (DI water, granulate, stamper sets, cooling return); press state text and the VEX zone fills use variables instead of inline hex, so they flip with the theme. - Fleet calculator and landing page: light palettes; input, flag, badge and ladder-highlight colours moved to variables. Checked headless in Edge: both system schemes pick the right mode, the toggle persists across pages, computed colours flip (press text, zones, pipes, legend), no text overflow in either mode, no JS errors. |
||
|
|
c6bec71442 |
Press fleet calculator: target output and specials share to fleet mix and needs
Deploy test site / deploy (push) Successful in 37s
User, October 2026: calculations for the later business plan, starting from 2 Duplex + 1 Classic at 3 records a minute per Duplex and 2 per Classic, as an interactive tool on the website: pick the yearly output and the share of splatter/specials, get the machine mix and all the requirements (people, hydraulics, power, ...). docs/fleet-calculator.html (single static page, no dependencies): - target mode sizes the fleet (specials only on Duplex with its EX 35; grow with Classics or with Duplex systems; start fleet as the floor); fleet mode takes a fleet and gives its output at the specials share; - output, capacity, utilisation and the mix bar per machine type; - needs: people per shift and in total, galvanics operators, machines, connected kVA and average kW, MWh/yr, central hydraulics (flow, motor, oil, accumulator), steam, cooling and cooling water, compressed air, press floor, room climate, compound, trim, titles, electroformed parts and plating units; checks against the 400 kg/h boiler, 250 kW chiller and the 870 m2 Payap press hall; - ladder from the start fleet to a full Payap press hall, click to load; - every assumption editable with its source (Newbilt Duplex site requirements V14 and offer 240620-04, scale.md, galvanics.md, revenue model, Payap model; estimates labelled), shareable link via the hash. The Classic counts as one HRP 12 press plus one extruder until Newbilt states figures (Toolex Alpha leaflet as a cross-check). Site: DEMOS entry (/demos/fleet-calculator/) and landing-page entry. README bullet and layout line; backlinks from scale.md (capacity) and pressing-line.md (current plan). |