Commit Graph
102 Commits
Author SHA1 Message Date
grabowski 5090609df3 Calculators: options from Record Industry's calculator; its prices as a benchmark
Deploy test site / deploy (push) Successful in 45s
Reviewed Record Industry's (Haarlem, NL) public vinyl calculator: a
seven-step wizard with a live itemised cost list priced on its server.
Read its prices for a reference 12" LP at 200 / 300 / 500 / 1,000 copies
and for each option worth copying (checked October 2026).

Both artist demos (make-a-record and artist-order):
- audio arrives as digital files, analog tape (+ tape transfer) or a cut
  lacquer (no blanks, cutting or mastering; mastering choice disabled with
  the reason; cutting and mastering stages skipped in the timeline; the
  passport starts at "Lacquer received")
- labels printed, plain white or plain black (credit line; the label
  artwork drop is disabled for plain labels; the mock-up shows the plain
  label)
- press cleaning before a colour run, on by default, disabled for black
- 7" dinked (large centre hole), 7" only, drawn in the mock-up
- download card and barcode sticker extras
- run-out inscription (A-Z, 0-9, up to 15), scribed along the dead wax in
  the mock-up and named in the passport
- new rates (tape 3,800, cleaning 2,300 per title; plain labels -12 per
  disc; download card 43, barcode 6 per copy) are estimates with Record
  Industry's prices as the basis, each listed in the detailed demo
- make-a-record investor notes: Record Industry's 9 to 11 week quote after
  test-pressing approval against the 7 to 9 week CNX quote, and its 2 %
  reject allowance against 100 % optical inspection

Defaults unchanged (37,836 THB per title, 232 per copy at 100, break-even
41, goal 100, 548 kept).

Docs: artist-platform.md (choices table, benchmark section: what was
taken, what was left out, commercial terms worth deciding);
revenue-model.md (second Western data point: 219 THB a copy at 300
ex-works, per-title and per-copy reading against the assumptions, not a
re-base); production-timeline.md (its published lead times).
2026-10-16 09:42:57 +07:00
grabowski 83f1aa94dc Make a record: launching a campaign no longer starts the simulation
Deploy test site / deploy (push) Successful in 52s
After Launch the campaign page opens at day 0 with Play ready; the
artist (or presenter) starts it. The quick "Run the demo campaign" path
behaves the same; only the guided tour presses play itself.
2026-10-16 09:36:53 +07:00
grabowski e36d7b00a0 Fan funding: the price sets the fans needed; limited edition as a switch
Deploy test site / deploy (push) Successful in 1m4s
The artist sets only the fan price; the number of fans needed follows from
it: the plant's 100-copy minimum, or the break-even if that is higher. The
goal selector of 6a62505 is removed from both demos.

make-a-record.html:
- step 4 leads with "Your price to fans" (input, slider from 300 THB,
  presets 800 to 2,000) and a live "You need N fans to press it, X THB in
  pre-orders", plus the price below which the minimum no longer covers
  the costs (about 640 THB at the defaults)
- limited edition is now a switch, off by default; the edition size stays
  visible but disabled until it is on, and switching it on adds the
  numbered edition to the record
- "per title" renamed for end users: "One-off, for this release", "once +
  per copy", "One-off setup", with a note that one-off costs count sides,
  not songs (a double LP has four)
- the tour lowers the price to 500 THB and back to show the fans needed
  rising from 100 to 152
artist-order.html: goal field removed, "Fans needed" label and hint.
artist-platform.md: the price-sets-the-goal decision (October 2026).
2026-10-16 08:54:15 +07:00
grabowski 6a62505aa6 Fan funding: the artist chooses the campaign goal in fans
Deploy test site / deploy (push) Successful in 1m9s
The goal is no longer fixed at the larger of the plant minimum and the
break-even; that is now the floor, and the artist sets any goal above it.

- make-a-record.html: "Goal: how many fans you need" with number input,
  slider and chips (Lowest, 150, 200, 300, 500, 1,000); chips below the
  floor or above the edition cap stay visible but disabled with the
  reason; the goal also shows as the pre-order amount (fans x fan price);
  typing below the floor snaps back with a note; the campaign, the
  outcome and the stage run against the chosen goal; the tour shows the
  goal being raised to 150
- artist-order.html: goal field in the campaign card, same floor rule
- artist-platform.md: the floor rule and that a higher goal is all or
  nothing as well

Defaults unchanged (goal 100 = the plant minimum at 1,200 THB, break-even
41, 548 THB kept a copy).
2026-10-15 16:40:49 +07:00
grabowski 4b20ca4f48 Side length per format: team table with songs a side; palette control
Deploy test site / deploy (push) Successful in 47s
Side length "at most" per format is now the table the team supplied
(October 2026, from recordplayerexpert.com, songs counted at an average
4:32): 12" 22 / 15 min, 10" 15 / 12 min, 7" 7 / 5 min at 33 1/3 / 45 rpm.
Changes against the earlier microcut.studio figures: 10" 33 1/3 16 -> 15,
10" 45 11 -> 12, 7" 45 6 -> 5. The comfortable column stays the lower end
of microcut.studio's ranges.

- artist-platform.md: table with a songs column, both sources, and the
  three formats where cutting rooms disagree (10" 45 is now more generous
  than microcut.studio and Diggers Factory) as re-check points for the
  cutting engineer
- artist-order.html: LIM and the side-length table (songs column, sources)
- make-a-record.html: LIM; format cards show the at-most time and about
  how many songs a side; step 2 hint adds the songs; the last control in
  each colour row is now a labelled "Palette" pill with a colour wheel,
  showing the chosen colour and "Your colour" when a custom colour is set
2026-10-15 16:36:11 +07:00
grabowski 607f6631a7 Make a record: investor demo of the artist platform, end-user flow
Deploy test site / deploy (push) Successful in 53s
New static page docs/make-a-record.html (test site /demos/make-a-record/):
the artist platform as a customer would see it, polished for presenting.

- five steps (design, music and art, price, fan funding, track) with a
  sticky stage: to-scale mock-up (record spins at 33 1/3 or 45 rpm on
  hover), spec chips, price per copy, ship month and the next action
- design as option cards and swatches; options that do not apply stay
  visible and disabled (weight and gatefold off 12", colour pickers for
  black vinyl)
- masters and artwork read in the browser as in the detailed demo, side
  bars per side, checks in plain words, approval 1 of 3
- price with the curve, itemised lines folded under one summary, lead time
  as two bars (approvals, then the 7 to 9 week quote)
- fan funding: goal, break-even and what the artist keeps, money rules;
  the campaign on a phone with a pre-order ticker, funded or missed ends,
  production timeline with the artist's approvals, updates feed
- record passport for one delivered copy (stamper, press, cycle time and
  side; stage dates; optical inspection and sampled audio), per
  traceability.md and quality-automation.md, IDs simulated; repress card
- "Investor notes" switch with the business case per step (market
  research, vault, short-run economics and the Thai price gap, plant-owned
  vs broker and the Qrates lesson, traceability and represses); guided
  tour of about a minute (#tour, #notes in the URL)
- light/dark theme shared with the other pages; phone layout with a
  bottom bar

Same price list (demo-0.1) and stage table as artist-order.html, so the
defaults reproduce the artist platform example: 37,836 THB per title,
232 THB per copy at 100, break-even 41, goal 100, 548 THB kept a copy.

artist-platform.md: investor demo paragraph. traceability.md: the record
passport as the per-copy customer view. README bullet and layout line,
site DEMOS line and landing-page entry.
2026-10-15 16:13:29 +07:00
grabowski 5daf54a90b Payap parts model: saved view (camera on the utility yard)
Model content unchanged; only the save timestamp and camera differ.
2026-10-14 21:14:25 +07:00
grabowski e49abf89d3 Utilities: build the backbone once, add modules with the presses; four-module boiler hall and chiller compound
Deploy test site / deploy (push) Successful in 57s
Phased build list for steam, cooling and hydraulics (launch, Duplex 1,
Duplex 2, Classic, options): everything cheap to oversize and costly to
retrofit (rooms, pads, headers and ring mains with a valved branch per
press position, tanks, HX frame, feeders, one sequencer) is built for the
five-press fleet at launch; boilers, chillers and hydraulic pump sets come
in identical modules as presses arrive. The Single 2.1 aggregate is
proposed as the first central pump set; per-branch isolation and filters.

Rooms sized for four modules each (user decision, estimates until vendor
footprints): boiler hall ~18 x 9 m for four 500 kg/h positions (fired case,
AIX DZL0.5 body), open screened chiller compound ~12.5 x 10.8 m with four
pads (250 kW at 40 C ~ Carrier 30RB 080-090), ~40 m2 pump and HX room; the
cooling tower pad of the water-cooled concept is dropped. Yard 178 -> ~379
m2. Four boilers carry ~8 presses with N+1; four 250 kW chillers carry the
five presses with CH-4 as reserve and no growth position unless the pads
take the ~350 kW frame (RFQ option).

- scale.md: yard table and basis, utility phasing section
- pressing-line.md: hydraulics phasing and re-quote questions
- steam-cooling.html: B-4 position, phasing and rooms card, details, RFQ
  questions (pw_sc_check clean)
- construction RFQ: yard table, sealed area 6,549 m2 (68 %)
- total-investment: added-scope row +73k to +122k USD (building rate on
  the ~200 m2 the yard grows by)
- Payap parts model: yard rebuilt from Params (blr_n, blr_inst, ch_*,
  bh_*, cy_*, pr_*), renders updated
2026-10-14 21:02:30 +07:00
grabowski 7688d03be6 Payap scenario: Part/Draft model with roof, rooftop PV and PV parking canopies
New FreeCAD model docs/cnx_vinyl_parametric_payap_parts.FCStd: the Payap
scenario rebuilt from plain Part solids and Draft (arrays, labels,
dimensions) on the same Params sheet, no BIM objects, plus:

- monopitch roof 10 deg, low eave 7.0 m south, high side 11.4 m north
  (phase 1 RFQ geometry); gables and the fire wall follow the roof
- rooftop PV: 901 x 580 W placeholder modules, ~523 kWp, 17 rows in
  blocks of four with walkways, 1 m edge strip, 2.5 m clear over the
  fire wall (estimate)
- car canopy (10 bays, 72 modules) and scooter canopy (30 spaces,
  22 modules), ~54 kWp, RFQ footprints and heights
- module counts and kWp as sheet expressions; ~577 kWp in all

FreeCAD 26.3 RC1 does not propagate spreadsheet edits: CNX_apply_Params
macro touches the dependents and recomputes; parametric test (factory
length, pitch, car bays, walkway) matches the sheet counts.

site-candidates.md: roof/PV/canopy section with the export, battery and
BOI questions a 577 kWp array raises; mirrors in sustainability.md and
scale.md; README layout lines.
2026-10-14 20:32:43 +07:00
grabowski 1946553dd1 Artist ordering demo: colour pickers disabled for black vinyl
Deploy test site / deploy (push) Successful in 43s
With black vinyl the colour pickers are greyed out and cannot be used;
with solid colour only the first is active, marbled and splatter use
both. The weight buttons are disabled for 10" and 7" (140 or 180 g is a
12" option). Both rows were meant to hide, but .row display:flex
overrode the hidden attribute; a [hidden] rule now guards that too.
2026-10-14 19:41:45 +07:00
grabowski 2a3da0778f Artist ordering demo: mock-up drawn to scale for 12", 10" and 7"
Deploy test site / deploy (push) Successful in 46s
The record and jacket in the mock-up (sidebar and fan campaign page) now
scale with the chosen format: record diameters 302 / 250 / 175 mm
(IEC 60098), jackets 314 / 260 / 184 mm, labels 100 / 100 / 90 mm, so a
7" label is relatively larger as on the real disc. Smaller formats show
a dashed 12" jacket outline for scale and a caption with the sizes.
2026-10-14 19:33:36 +07:00
grabowski a07faf6ef0 Artist ordering demo: configure, check, offer, fan-funded campaign
Deploy test site / deploy (push) Successful in 53s
New static page docs/artist-order.html (test site /demos/artist-order/)
walking the artist platform flow end to end:

- record configurator (format, speed, discs, weight, colour, packaging,
  extras, mastering, test pressings) with a live mock-up
- track list or dropped masters read in the browser (WAV/FLAC/AIFF
  headers, sample peak and clipping), side length against the format,
  jacket and label preflight (size, dpi, CMYK), rights and gate 1
- itemised offer (per title / per copy, pass-through jacket), price per
  copy against quantity, lead time from the production timeline
- direct order or fan-funded campaign: goal = max(minimum run,
  break-even), what the artist keeps, the money rules, a simulated
  campaign (sells out / just makes it / falls short) with refund or
  go-ahead-at-minimum, and the production tracker with the three gates
  and the fan update feed

Price list demo-0.1 splits the doc's 38,000 THB per title and 132 THB per
copy into lines (estimates, each listed with its basis); defaults
reproduce the artist platform example (break-even 41, goal 100, ~548 THB
kept per copy at 100).

artist-platform.md: demo paragraph, side length per format table with
sources, VAT note on the campaign example. README bullet and layout line,
site DEMOS line and landing-page entry.
2026-10-14 19:24:49 +07:00
grabowski b650503ea1 Payap zoning record: type 72 condition verbatim
The annex row for type 72 in the very high density residential zone
carries the orange "permitted with conditions" mark; the condition as
printed is "ให้ดำเนินการหรือประกอบกิจการได้เฉพาะดัดแปลงหรือซ่อมแซม"
(may operate only for modification or repair). Added verbatim to the
source record.
2026-10-14 12:05:16 +07:00
grabowski 3984d0c93b Payap: the point given fails zoning (DPT, checked 14 October 2026)
Point 18.797678 N, 99.038272 E, queried on the DPT land-use plan map:
Chiang Mai comprehensive city plan in force from 25 May 2026, zone
ย.7-1, very high density residential. The zone prohibits every factory
under the Factory Act except the types in the plan's annex, and
prohibits warehouse and silo businesses.

Annex for this zone: type 107 (CD production, whose definition names
gramophone records and recorded tapes) is not permitted here, only in
the low density residential, special industrial, agricultural land
reform and rural and agricultural zones; type 72 (sound recording,
record players, gramophone records) only for modification or repair;
plastics products and metal plating are not on the list. A record
pressing plant cannot get a factory licence at that point.

Caveats recorded: point, not parcel; DPT data is preliminary, the
provincial office confirms; the pharmaceutical neighbour may be in
another zone or type. Since type 107 is permitted in the plan's low
density residential and rural zones, other Payap land is worth checking
before the lead is dropped.

- docs/land-listings/payap/: source record (zone rules, annex rows,
  the 51 types permitted in the zone) and the Thai panel text.
- site-candidates.md: plot point, zoning row, status, the result with
  caveats, check 1 marked failed for this point.
- README: project status line, layout line for land-listings/.
2026-10-14 11:58:23 +07:00
grabowski cb5809e73c Feedwater heat recovery: economizer, condensate, then HP-1
Deploy test site / deploy (push) Successful in 48s
The order to investigate for a fired boiler (biomass such as rice
husk, or LPG): first a flue-gas economizer, second as much clean, hot
condensate back to T-1 as possible, third the heat pump HP-1 where the
press return has enough heat and the combined heating and cooling
economics justify it.

- Diagram: new ECON-1 (option, fired boilers only) between the feed
  pumps and the boiler manifold, with a bypass for an electric bank and
  the flue-gas path from the boilers; feed in 90 to 95 C, outlet and
  stack temperature are vendor figures. HP-1 is now drawn as an option
  and labelled the third measure. AT conductivity on the condensate
  return to T-1; off-spec condensate goes to the warm tank.
- Found in Newbilt's offer 240620-04: steam and cooling water share the
  mould channels, with one steam/water outlet valve and steam trap per
  mould, so the condensate is only as clean as the cooling loop. Noted
  in the T-1 detail, sustainability.md and as a Newbilt RFQ question.
- With most condensate returned (about 15 % flashes at atmospheric
  pressure, estimate) the feed tank needs only a fraction of the ~70 kW
  that heating all make-up takes, so HP-1 may not pay.
- RFQ: economizer outlet feed and stack temperature, corrosion limit,
  pressure drop; rice husk ash is high in silica and abrasive, so
  fouling, cleaning, wear protection and a bypass.
- sustainability.md: the order, before the exclusions. biomass.md: new
  "Recovering heat at the boiler".

Checked headless (scripts/pw_sc_check.py): 33 boxes, 20 tags, no
overlap or overflow, no unstyled pipes, no card or page overflow at
1600, 1258 and 390 px in all four cases, every box opens its detail, no
errors.
2026-10-14 11:03:34 +07:00
grabowski b1c18cb040 Steam and cooling: water and steam temperatures on the diagram
Deploy test site / deploy (push) Successful in 47s
Twenty temperature tags on the pipes, each styled by its basis: green
border for a Newbilt figure, amber for a design target or estimate,
dashed for a value the vendor or a measurement still has to set.

- Newbilt: steam main 10 bar ~180 C, header to the presses ~180 C,
  press outlets ~60 C (one per press, dimmed with the press when it is
  not installed in the selected case), supply header 20 to 25 C, oil
  cooler return <= 35 C (supply plus max. 10 K).
- Design target or estimate: raw water ~28 to 30 C (ground
  temperature), feed to the boilers 90 to 95 C, heat pump feed loop
  <= 95 C, condensate after the traps <= 100 C (atmospheric return),
  extruder returns <= 35 C (2 to 3 kW at 4 l/min), heat pump source in
  <= 60 C, return header up to ~60 C mixed, chiller loop to HX-1 ~18
  to 23 C (~2 K approach).
- To be set: heat pump source out, warm tank mixed temperature, chiller
  loop return.

The clicked details say where each figure comes from, including that
Newbilt's 180 C is saturation at 10 bar absolute (~184 C at 10 bar
gauge, to confirm). Legend explains the three tag styles.

Checked headless (scripts/pw_sc_check.py, now also tag overflow and tag
overlap with boxes, labels, symbols and each other): 20 tags, none
overlapping or overflowing; no SVG or HTML overflow at 1600, 1258 and
390 px in all four cases; 32 boxes open their detail; no unstyled pipes;
no errors.
2026-10-14 10:33:38 +07:00
grabowski eb0039179b Steam and cooling: visible heat-recovery loop, tables inside their cards
Deploy test site / deploy (push) Successful in 52s
- The feedwater loop between HP-1 and T-1 was drawn with class "hr",
  which had no stroke rule, so it was invisible. It now has its amber
  stroke, flow arrows both ways and a "feed loop" label.
- Number cells were white-space:nowrap, so the operating-case table ran
  up to 33 px past its card, the design basis table up to 312 px, and a
  phone page was 842 px wide. Numbers may wrap now (only the coverage
  percentages stay on one line), the side column and grid tracks may
  shrink, and units moved into the case table's row labels. Only the
  diagram scrolls sideways on a phone.

Checked headless (scripts/pw_sc_check.py, now also HTML card/table
overflow, document width and unstyled pipes): before, 'p hr' unstyled
and card overflow at 1600, 1258 and 390 px in every case; after, no
unstyled pipes, no card or table overflow and document width equal to
the viewport at all three sizes and four cases, no SVG overlap or
overflow, 32 boxes open their detail, no errors.
2026-10-14 10:14:31 +07:00
grabowski 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.
2026-10-14 09:58:27 +07:00
grabowski 9b03e4de07 Plant overview: header bands follow the rounded box corners
Deploy test site / deploy (push) Successful in 44s
Every machine box has rounded corners (rx 4), but its header band was
a square rect inset by 1, painted over the box. At both top corners the
band's square corner covered the inside of the curved border, so the
border looked thin and squared off there, most visibly on a selected
box. The band is now a path with top corners of radius 3, concentric
with the box.

Measured on zoomed crops in headless Edge (light theme, selected
border): border thickness along the 45-degree diagonal against the
straight edge was 0.26 to 0.42 on the Traceability box, Classic C1 and
the VEX 50; now 0.9 to 1.13. Full UI check unchanged: all press states,
47 stations, demo buttons, no overflow, canvas alignment, no errors.
2026-10-14 09:27:49 +07:00
grabowski f776025b58 Plant overview: motion on canvas, no more lag
Deploy test site / deploy (push) Successful in 53s
The page spent most of each second laying out the SVG, not simulating:
the simulation itself costs ~26 ms per simulated hour. Profiled headless
on Edge (CDP metrics and a timeline trace with invalidation tracking):

- tokens asked the DOM for getPointAtLength right after writing a
  transform, which forced a layout of the whole SVG for every token,
  every frame (540 to 630 ms/s);
- ~55 CSS stroke-dashoffset animations repainted the drawing all the
  time;
- the press platens were SVG rects moved every frame, and any geometry
  write re-lays-out the whole SVG with its 275 text labels.

Now the SVG holds only the machines and labels. Pipes, flow dashes and
the conveyor are drawn on a canvas under it; tokens, records, platens,
cakes, the extruder screw and plating bubbles on a canvas over it, both
with the SVG's own viewBox transform, so pan and zoom need nothing extra.
Routes are measured polylines (ptAt) instead of DOM path queries, and
the 5 Hz tag, lamp and KPI writes only touch the DOM when the value
changes.

Headless Edge, 1600 x 900, before -> after:
  1x     26 -> 60 fps, layout 842 -> 26 ms/s, long tasks 19 -> 0
  60x    19 -> 59 fps, layout 858 -> 29 ms/s
  600x   18 -> 60 fps, layout 855 -> 30 ms/s
  3600x  33 -> 60 fps, layout 726 -> 29 ms/s

Behaviour unchanged: all press states seen at 3600x, 47 stations open
their detail, steam dip holds and recovers, lot and repress log, no text
overflow at 1600 x 900 and 1258 x 800, canvas and SVG agree within
0.2 px at fit, zoomed, 1258 x 800 and phone size, both themes, no
errors.
2026-10-14 09:16:38 +07:00
grabowski 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.
2026-10-10 20:46:27 +07:00
grabowski 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.
2026-10-10 20:29:32 +07:00
grabowski 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.
2026-10-10 20:17:39 +07:00
grabowski 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).
2026-10-10 20:12:26 +07:00
grabowski 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.
2026-10-10 19:41:08 +07:00
grabowski 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.
2026-10-10 19:30:05 +07:00
grabowski 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.
2026-10-10 18:27:58 +07:00
grabowski 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).
2026-10-10 18:21:47 +07:00
grabowski 68539d563c Payap model: main gate, guard house, boom barrier; truck paving cut down
User, October 2026: add the guard house and the gate; the truck apron is
far too big.

Model (changed live in FreeCAD 26.3):
- main gate as in the phase 1 RFQ: piers and two 5 m sliding leaves (shown
  open, parked inside the wall), 10 m clear (gate_width 8 -> 10 m);
- guard house as in the RFQ: 4 x 3 m (guard room 8.4 m2 + WC 3.6 m2),
  window wall to the gate, guard desk, on the gate's north-west side;
- boom barrier just inside the gate (cars and trucks both pass it);
- truck paving: the 42 x 101 m apron (~4,240 m2) replaced by an 8 m gate
  road (550 m2) and a 32 m deep apron and dock face (1,600 m2) that joins
  the east service road; new params apron_depth, road_w.

Docs: site-candidates Access bullet (~2,150 m2 heavy-duty paving against
1,608 m2 in the Mueang Chi RFQ).
2026-10-10 17:58:18 +07:00
grabowski 90697c8cac Payap model: Duplex cells at Newbilt sizes; fire water per facility-security
User, October 2026: the Duplex sketch is not to scale, check it against
the documents; the fire water tank is too small.

Model (changed live in the open FreeCAD 26.3 document):
- both Duplex cells rebuilt in the sketched arrangement at the documented
  sizes: presses 0.95 m square (0.9 m2) turned 45 deg, EX 50 0.5 x 1.0 m
  (0.5 m2), EX 35 0.4 x 0.8 m and trimmer 0.6 x 0.6 m (estimates),
  operator position marked; 0.6 to 0.8 m between machines;
- fire water: the ~25 m3 yard tank replaced by the facility-security
  planning tank, 9 m x 4 m (254 m3 gross, ~200 m3 usable), new params
  fw_dia, fw_h, fw_x, fw_y, at the front by the access road, outside the
  production yard, on a ring foundation, with a pump house (duty electric,
  standby diesel, jockey); the yard process water tank is now the 5 x 3 m
  raw water tank of the phase 1 RFQ.

Docs: site-candidates (cell, raw water, fire water bullet),
facility-security (the Payap model draws the tank; 6 m racking and twice
the floor area make ~200 m3 a floor there).
2026-10-10 17:43:09 +07:00
grabowski 7da64088ce Duplex cell layout: one operator, presses turned towards him
User sketch, October 2026 (filed as docs/equipment/
duplex-cell-layout-sketch.png; arrangement only, the user notes it is not
to scale): operator in the middle, the two presses either side turned 45
degrees towards him, EX 50 and EX 35 side by side behind him, one trimmer
per cell in front on the left.

Sized from the Newbilt site requirements p. 10 (press ~0.9 m2, extruder
~0.5 m2, hydraulic aggregate ~1.0 m2, walk-around space, >= 60 cm to
walls, room height >= 2.5 m): cell ~5 x 3 m, 0.6 to 0.8 m between
machines; EX 35 and trimmer footprints are estimates. The layout drawing
the site requirements refer to on p. 11 is missing from our copy: ask
for it with the re-quote. README layout line for the sketch.
2026-10-10 17:43:00 +07:00
grabowski 83840d45dc Payap model v4: colour store, silos, two-storey finishing and print block
User, October 2026: ground-floor colour store plus outdoor silos; a
two-storey block at the east end with packaging below and printing plus
print and packaging stock above; in-house printing not decided, so the
print room is reserved only.

Model (rebuilt live in FreeCAD 26.3 after checking a copy of the saved
file for user edits; parametric check plot 150->160 m and upper floor
3.8->4.2 m passed):
- factory 128 x 25 m, plot 150 m (14.1 rai), corridor 98 m, fire wall
  at 106 m, new params crane_x (runway end = press hall end, 92 m) and
  mezz_z (+3.8 m);
- galvanics open to stamper prep (wall kept only on the material area
  and electrical side);
- colour store 10 m bay (~180 m2): two racking rows, ~100 pallet
  positions on 4 levels (estimate), weighing and mixing, vacuum
  conveying station; indoor silos replaced by regrind bins;
- 4 outdoor PVC silos (2 black, 2 standard colours, ~50 m3 each,
  estimate), big-bag filling station, buried conveying lines;
- finishing and print block 14 x 25 m: ground floor trim, optical
  inspection, QC, packaging (tables, shrink wrap, pallet wrapper), stair
  (Arch Stairs) and goods lift; upper floor print room (reserved), print
  stock, packaging materials.
New docs/cnx_vinyl_parametric_payap-block.png with both block levels.

Docs: site-candidates Payap section rewritten (areas ~3,800 m2 under
roof, ~4,630 m2 of floor), crane doc (98 m corridor, runway ends at the
press hall), README bullet and layout line.
2026-10-10 17:21:44 +07:00
grabowski d9f3a4b88e Compound storage for tens of colours; stamper prep open to galvanics
User, October 2026: special designs will need tens of colours, so the
compound store needs far more space, with maybe a few silos for black and
the standard colours; and the wall between stamper prep and galvanics is
to go.

- pressing-line: "Compound storage" bullet (colour store with pallet
  racking, ~100 positions in the Payap model, estimate; outdoor silos
  proposed; compound stays on the ground floor, ~160 to 270 t a year at
  the mature fleet; sacks vs big bags decides the silo filling).
- galvanics: stamper prep open to galvanics, one clean zone.
2026-10-10 17:21:33 +07:00
grabowski 0700c14b5c Payap model: two-storey office building with canteen, changing and showers
User, October 2026: the office building also houses several showers, a
changing room, toilets and a canteen; the office area itself about
150 m2; the building can be multi-storey.

Model (office rebuilt live in FreeCAD 26.3; factory and site untouched):
- 32 x 15 m on two storeys (off_storey 3.6 m), ~960 m2 of floor, Arch
  Stairs plus a lift, first floor slab with the stair and lift void;
- ground floor: reception and lobby (entrance and link door), canteen
  ~40 seats with kitchen and servery, changing rooms women and men with
  4 showers each and lockers, toilets, mastering and cutting (acoustic
  lining), listening room, archive;
- first floor: offices 147 m2 (16 desks), training room (Payap
  programmes), meeting room, IT and server, toilets, pantry, flexible
  room;
- factory staff entry relabelled "PPE, WC" (changing is in the office).
New docs/cnx_vinyl_parametric_payap-office.png with both floor plans.

Docs: site-candidates Payap section (office bullet, staff entry, area
~3,400 m2 footprint / ~3,880 m2 floor), README bullet and layout line.
2026-10-10 17:01:40 +07:00
grabowski 4263fbbd9b Payap model v2: bigger factory, shared plant room, separate water treatment
User, October 2026: the factory is too small and needs room to grow
(possibly ten more Classics), one shared hydraulic and air supply, water
treatment perhaps in a separate building connected to the galvanics lab,
and a fully equipped workshop (maintenance tools, 3D printers, maybe a
lathe and a small CNC mill).

Model (rebuilt live in FreeCAD 26.3, BIM objects, Params-driven,
parametric check plot 135->145 m and factory 112->120 m passed):
- plot 135 m (11.4 rai) with a reserve; factory 112 x 25 m, 16 bays,
  82 m visitor corridor, fire wall at 90 m;
- press hall ~870 m2: two Duplex systems (EX 50 + EX 35), the Classic,
  ten future Classic positions in two rows on a service trench;
- central hydraulics and compressed-air plant room (~62 m2);
- water treatment building 12 x 10 m behind galvanics: buried duct
  (gravity from the +1.2 m floor), covered crossing 6 m clear;
- workshop ~200 m2 with benches, tool cabinets, 3D printers, lathe,
  small CNC mill, drill, saw, welding bay, press, washer, measuring table.

Docs: galvanics (water treatment building, proposed), crane doc (workshop
fit-out; lathe and CNC mill not yet priced; corridor now 82 m),
site-candidates Payap section rewritten, README bullet.
2026-10-10 16:47:44 +07:00
grabowski 9e0c5d4045 Fleet: one shared hydraulic and air supply; room for ten more Classics
User, October 2026: the presses run from one shared hydraulic supply
and one compressed-air supply, and the plant may add up to ten more
Newbilt Classics at some point.

- pressing-line: fleet table and intro (shared central supply), new
  bullets on the shared supply and the expansion option, re-quote point
  (central supply for the whole fleet, extendable, can the Classic run
  from it), Hydraulics bullet now the plan.
- scale: "Expansion (option)" capacity row, ~4.7 to 5.8M records/yr on
  the same basis, explicitly outside revenue model and investment;
  utilities note: fifteen presses would need ~2.3 to 2.7 t/h steam and
  up to ~1.9 MW cooling, a utility phase of its own.
2026-10-10 16:47:34 +07:00
grabowski f2bb7f3d85 Payap scenario: parametric BIM model of the whole plant on a square plot
A separate FreeCAD 26.3 model (the Mueang Chi model is untouched) sites
the plant on a 110 m square placeholder plot of Payap land, built from
BIM objects (Arch Site, Buildings and Levels, walls, slabs, columns,
beams, a ramp, Spaces with computed areas, Equipment). Every object sits
on an expression-driven base, so the Params sheet drives plot, setbacks,
floor level, building sizes, fire wall line and office gap (checked:
plot 110 to 120 m and factory 84 to 90 m, everything followed).

- Factory 84 x 25 m, production only, in process order along a 54 m
  glazed corridor; press hall 465 m2 with the October fleet (two Duplex
  systems, each EX 50 + EX 35, and the Classic); crane to the fire wall;
  machine door and 12 m ramp at the north-west corner.
- Office building 24 x 15 m, 12 m away on its own slab with a covered
  link: reception, offices, meeting/training, mastering and cutting,
  listening, IT, archive. Resolves the crane-zone conflict of the old
  sketch.
- Utility yard behind the press hall (boiler and chiller flagged for
  re-sizing), gate, truck apron, car park, service road.
- site-candidates: new section and plot-fit note; crane doc: conflict
  resolved, 54 m corridor; README bullet and layout lines; the old
  sketch is labelled as Mueang Chi with the earlier fleet.
2026-10-10 16:31:46 +07:00
grabowski 3a758fcffb Fleet: each Duplex has an EX 50 main and an EX 35 colour extruder
Correction from the user: the two Duplex systems are not in the
two-extruder configuration. Each runs two HRP 12 presses from an EX 50
main extruder with an EX 35 auxiliary extruder beside it for a second
colour; the Classic stays. Fleet still five presses. Updated in
pressing-line (table, phasing, re-quote: EX 50 vs the VEX 50 of the 2024
quote, and whether one EX 50 keeps both presses at full rate), scale,
total investment (wording; estimates unchanged), roadmap item 4, README.
2026-10-10 16:11:46 +07:00
grabowski c50417668b Press fleet: two Newbilt Duplex systems with an extruder per press, plus a Classic
The current plan (user decision, October 2026) replaces the 50/50 target
(two semi-automatic presses and two Pheenix AD12s) with an all-Newbilt
fleet of five presses: two Duplex systems in Newbilt's two-extruder
configuration (two HRP 12 presses, an extruder each, one hydraulic unit)
and one Classic fully automatic press.

- pressing-line.md: new "Current plan" section (fleet table, what it
  means, phasing from the Single 2.1 as the first half of system 1,
  re-quote questions); site requirements per Duplex system.
- scale.md: capacity table and basis (368 to 448 records/h, ~1.06 to 1.5M
  a year on two shifts, same range as before); pressing electrical row;
  steam and cooling flagged, not re-based: five presses draw ~750 to 900
  kg/h of steam and up to ~625 kW of cooling at Newbilt's per-press
  figures, against the 400 kg/h / 250 kW sized for one Duplex.
- total-investment.md: fleet change as an added-scope row (system 2
  ~230k-300k and the Classic ~290k-460k, estimates; -60k / -160k against
  the two blocks it replaces); headline unchanged until the re-base.
- roadmap items 4, 5 and 24, revenue model mature row, crane doc (the
  Classic's weight now decides 5 t or 3.2 t), vendor landscape (AD12 is
  the comparison for the Classic), README.

The business plan docx is not regenerated.
2026-10-10 16:05:27 +07:00
grabowski f1334f4756 OMS introduction letter and links, Sibert's answer (9 October 2026)
OMS (Lou Wullms) sent its introduction letter, filed in
docs/equipment/oms/: wet-room units with reference prices, two 4-cell
configurations (EUR 224,000 basic with two EFS2-200, EUR 311,000 advanced
with one AEFS4-250 and PLC; installation days extra), capacities of 24
and 32 shells in an 8-hour day, utilities, rooms, staffing, used
equipment, and five contacts for buying a cutting lathe. Recorded in
galvanics.md (tables, our reading: the advanced units add up to EUR
314,000, know-how transfer is left out of both totals although CNX has no
plating know-how, the basic set has no passivation unit), the exhibitor
follow-ups, vendor landscape (new section on used lathes and cutting-room
contacts, plus Lou's three websites), supplier map, roadmap items 6 and
13, total investment (basis note only, block unchanged) and the scale
people estimate. Open: forward the letter to Simona, as Lou asked.

Sibert (Ian Locke, 9 October): footprints and formal quotations when we
are ready; settle the pressing side first, hopefully with Pheenix, and
mention his recommendation if we do; impressed by the green-factory
plans (supplier feedback). Open: pass on the recommendation if Pheenix is
chosen.

CNX-01 in proplan: OMS basic and advanced added as options to D-002 with
their reference prices in THB; budget line 3 notes the OMS range.
2026-10-10 15:52:23 +07:00
grabowski 90d8a3778a Record the replies to Sibert and OMS
- Sibert: back in Thailand, investor meeting in preparation, his OMS/Pheenix
  advice noted; itemised quotation not yet requested.
- OMS: met in Haarlem; role split given to Lou (Simona management and audio,
  Alexander technical); waiting for his calculation material.
- README: team roles, investor meeting in the status list.
2026-10-09 12:14:59 +07:00
grabowski 21419145f8 Replies sent to Sibert (Ian Locke) and OMS (Lou Wullms)
OMS confirmation is done; next is the calculation material from Lou
Wullms. Sibert itemised quotation still open.
2026-10-09 12:08:07 +07:00
grabowski 4fec258f15 After Haarlem: Pheenix CEO follow-up, OMS first contact, SST
- Pheenix Alpha (Robert Gunnarsson, 5 Oct; Simona's reply 9 Oct): offers
  a Teams call, reference clients and a factory visit near Stockholm;
  300+ presses (vendor figure); we call once questions are concrete,
  next Europe trip planned for February 2027. CEO contact and Marsta
  address added.
- OMS (Lou Wullms, 7 Oct): first email contact, company data, contacts
  (Lou Wullms technical, Wilma Peeters accounting/logistics); open: reply
  to confirm, then OMS sends material to calculate from.
- SST Frankfurt (Daniel Krieger, 7 Oct): cut the lacquers for POY003,
  005, 006 and 013; on good terms with ResurRec; offered help. New cutting
  service entry in the supplier map and vendor landscape; corrected the
  briefing, which had SST as DMM (its site lists lacquer and dubplates).
- Roadmap items 5, 6 and 14 and the production timeline launch basis
  updated accordingly.
2026-10-09 06:38:52 +02:00
grabowski 47e5f9e458 Biomass: reported northern fuel prices (October 2026)
No public price index exists; DEDE lists buyers, not prices. Reported
market prices: fresh chips 1,350-1,800 THB/t (LH Bank, Mar 2026),
rubberwood firewood >1 THB/kg farm gate (OIE RIU 2026, doubled since late
2025), corn residue 2 THB/kg (Sunsweet, Mae Chaem), rice husk ~1.5 THB/kg,
pellets 3,000-5,000 THB/t. Planning price 1.35-2 THB/kg delivered, so the
mature fuel bill is ~0.6M-1.2M THB/yr (was 0.35M-0.8M): still a quarter
to a tenth of electric steam. Prices follow diesel; Ratch Pathana's Pa Sak
(Lamphun) buying centre is the local price-setter. Sources filed under
docs/finance/biomass/; sustainability.md and README follow.
2026-10-07 10:08:54 +02:00
grabowski 9640a4f075 Energy: PEA tariff, electric vs biomass steam, PV vs solar thermal
PEA tariff schedule (May 2023 onward, still current) filed under
docs/finance/pea/; Ft 0.1623 THB/kWh for Sep-Dec 2026 from the PEA Ft page.
The plant falls under Schedule 3.2.2 (Medium General Service, TOU, 22 kV).

New section in sustainability.md: blended ~3.81 THB/kWh for two-shift
production plus 132.93 THB/kW demand charge; electric steam ~4.7M-5.5M
THB/yr at maturity against ~0.35M-0.8M of biomass fuel; self-consumed PV
worth ~3.7 THB/kWh (~4.5-7 yr payback); solar thermal not recommended;
the battery earns little from TOU arbitrage or peak shaving. biomass.md,
scale.md, the utilities CSV note and the README follow.
2026-10-07 09:54:31 +02:00
grabowski 79e8cddcff Production hall: rough BIM layout sketch
FreeCAD BIM (Arch) sketch of the 60 x 25 m phase 1 hall:
Building > Ground floor with Spaces for every zone (areas computed),
room-in-room partitions, the fire wall at 48 m, the 5 t crane runway,
and the main equipment as BIM Equipment (Pheenix line, Sibert row,
Newbilt Duplex and two Classic presses, silos, racking). Zones run in
process order along the visitor corridor. Top-view PNG alongside.
Linked from the README and from the crane doc, with the one conflict it
shows: reception and cutting room under the crane travel.
2026-10-07 09:40:13 +02:00
grabowski 856e0a2ccf Add the Poy Records logo
docs/brand/poyrecord-logo-1536x1536.png (1536 px PNG), shown at the top
of the README and listed in the repository layout.
2026-10-07 09:24:35 +02:00
grabowski 6888abe602 Sibert follow-up: USD 250k budget, current VS specs, OMS as galvanics option
Deploy test site / deploy (push) Successful in 41s
Ian Locke's email of 5 October 2026 after Making Vinyl Europe:

- Budget of USD 250k for VSP, VSF and VSC confirmed; his time, spares,
  shipping and travel extra; itemised quotation on request. The
  total-investment block keeps its estimate until the re-base, the
  difference (+190k low case / +80k high case) goes into the
  not-yet-rolled-up table.
- Current specifications filed (VSF and VSC 2022, VSP 2023) plus the
  VSF/VSP/VSC line-up drawing (4958 x 833 mm); the 2021 issues move to
  sibert/specs-2021/. VSC is now 1000 kg with split OD hydraulic / ID
  pneumatic forming; VSF 0-30 psi, 4-station head. Crane table, supplier
  map, vendor landscape and the plant page details updated.
- Fully automatic VSPa exists; Sibert offers to move features to the VSP.
- Electroforming: OMS (Optical Media Services, Lou Wullms) named next to
  Pheenix; added as a third galvanics candidate with open questions.
- Sequencing advice (presses, boilers, operators and live feedback loops
  first) recorded in the exhibitor briefing, roadmap item 23, and as
  digital-factory design decision 9 (operators see the data first).
2026-10-07 09:24:11 +02:00
grabowski b672c58e34 Plant page: mature fleet at real cycle times
Deploy test site / deploy (push) Successful in 34s
Rebuild docs/plant-operation.html from the single P1 press into the mature
plant: Newbilt Duplex (two HRP 12 on a VEX 50, EX 35 for splatter), two
Newbilt Classic automatic presses with edge trimmers, label punch and
Granulator 400; Pheenix Alpha PASU, PPPU, two PDPU and PMPB; Sibert VSF,
VSP and VSC in that order; father and mother archive and the stamper rack.

Time runs at 1x real time with speeds up to 3600x. Press cycles are
Newbilt's (Classic 28 s, Duplex ~30 s), plating follows Faraday's law at
the PDPU current, and the operator steps use the galvanics.md table, with
unpublished times marked as estimates. Titles flow through the three artist
gates in days; test pressings unmount and the presses run approved work
meanwhile; worn stampers and represses come from the archived mothers.
Two shifts, unplanned press stops sized to scale.md's 60 to 70 %
effectiveness, and demos for a steam dip, a new PVC lot and a repress.

The boiler and chiller are shown at 800 kg/h and 500 kW (estimates) and
the detail panels flag that scale.md's 400 kg/h and 250 kW are Duplex
figures; scale.md itself is unchanged.

Also commits the galvanics.md cycle-time table the page runs on (one PDPU
covers demand, the second is redundancy) and updates the README and the
test-site descriptions.
2026-10-03 22:47:57 +02:00
grabowski 9b26cfbf7c PVC lab: instrument list with estimates, and cost it
quality-automation.md: the day-one per-lot tier becomes a table with an
instrument class and a rough price per check (moisture analyzer, strip
oven, density balance, spectrophotometer, gloss, sieves, muffle furnace,
stereo microscope), plus what was missing: a lab plaque press or two-roll
mill so speck, color and DSC tests do not tie up a production press;
sample conditioning as part of the method at 60 to 90 % ambient humidity;
magnets for metal in lots and regrind. Day-one tier ~USD 55k to 150k
(estimate); Karl Fischer and the ISO 182 Thermomat as options. Mature tier
priced (~120k to 240k), handheld XRF as an option, and partner labs (Payap
pharmacy, CMU science) to defer it.

total-investment.md: the day-one tier goes into "Added scope, not yet in
the roll-up" (55k to 150k USD, 1.8M to 5.0M THB); added total now ~290k
to 690k USD, about 7 to 9 % on the subtotal. Headline total unchanged.
2026-10-03 21:51:00 +02:00