/* global React, MachineRender */ const { useState: useS2, useEffect: useE2 } = React; // ============ 3D PRODUCT EXPLORER with tabs ============ function ProductExplorer() { const [tab, setTab] = useS2("overview"); const [rot, setRot] = useS2(-8); const [exploded, setExploded] = useS2(false); const [showHot, setShowHot] = useS2(true); const tabs = [ { id: "overview", label: "Overview" }, { id: "process", label: "Process Flow" }, { id: "systems", label: "Key Systems" }, { id: "specs", label: "Specifications" }, { id: "layout", label: "Layout" }, { id: "media", label: "Media" }, ]; const tabContent = { overview: { title: "EFF-PACK 100", body: "High-speed automatic tube filling system for effervescent tablets. Continuous-motion design, laser monitoring, and nitrogen flushing in a single integrated platform.", chips: ["Continuous", "Automatic", "cGMP", "100–120 tubes/min"] }, process: { title: "Eight-step continuous flow", body: "Tablet feed → tube load → count → fill → N₂ flush → seal → inspect → output. Each zone instrumented with laser sensors and feedback loops.", chips: ["8 zones", "Laser monitored", "Closed loop"] }, systems: { title: "Eight engineering systems", body: "Hopper, tube elevator, indexing carrier, multi-track filler, N₂ flushing manifold, sealing head, vision inspection, and HMI/PLC control.", chips: ["HMI", "Sensors", "Sealing", "Vision"] }, specs: { title: "Technical specifications", body: "11 kW connecting load. 1,000 kg approximate weight. Tablet diameter 18–30 mm, tube length 80–180 mm. Compressed air, N₂ gas, single-phase 230V utility services.", chips: ["11 kW", "1,000 kg", "18–30mm tablets"] }, layout: { title: "Compact footprint", body: "3.6 × 1.4 m main machine envelope. Operator zones on three sides with maintenance access from the rear. Integrates into existing OSD floor layouts.", chips: ["3.6 × 1.4 m", "3-side access", "Cleanroom-ready"] }, media: { title: "Brochures, videos, drawings", body: "Download the full product brochure, GA drawings, and watch the line walkthrough video. Custom layouts and capacity studies on request.", chips: ["PDF", "Video", "Drawings"] }, }; const c = tabContent[tab]; return ( Interactive 3D product explorer Explore every machine from every angle. Download brochure Request quote {/* Tabs */} {tabs.map(t => ( setTab(t.id)}> {t.label} ))} {/* Viewport */} {/* Viewport controls */} EFF-PACK 100 · {tab.toUpperCase()} setRot(rot - 30)}>↺ setRot(0)}>⌂ setRot(rot + 30)}>↻ setExploded(!exploded)}>Exploded setShowHot(!showHot)}>Hotspots ROT: {rot.toFixed(0)}° {/* Spec drawer */} {tabs.find(x => x.id === tab).label} {c.title} {c.body} {c.chips.map(ch => {ch})} {/* Mini specs */} Quick specifications {[["Capacity", "1M tablets / shift"], ["Filling speed", "100–120 tubes/min"], ["Tablet Ø", "18–30 mm"], ["Tube length", "80–180 mm"], ["Connect load", "11 kW"]].map(([k, v]) => ( {k} {v} ))} View product page Compare ); } function ViewBtn({ children, active, onClick }) { return ( {children} ); } // ============ INDUSTRIES ============ function Industries() { const ind = [ { name: "Pharmaceuticals", desc: "Processing, drying, coating, blending, and packaging for regulated pharma manufacturing.", cases: ["Effervescent OSD", "Tablet coating", "Wet granulation"] }, { name: "Nutraceuticals", desc: "Tube filling and packaging for vitamin & supplement effervescent products.", cases: ["Multivitamin tubes", "Sports nutrition", "Functional formats"] }, { name: "Cosmetics", desc: "Effervescent bath products and personal care tablet packaging systems.", cases: ["Bath bombs", "Tablet skincare", "Premium packs"] }, { name: "Chemicals", desc: "Powder blending, granulation, and packaging for chemical formulations.", cases: ["Cleaning tablets", "Pool chemistry", "Industrial formats"] }, { name: "Food", desc: "Hygienic, food-grade processing and tablet packaging for consumer brands.", cases: ["Effervescent drinks", "Vitamin candies", "Dietary blends"] }, ]; return ( Industries served Engineered for five industries. One platform, validated across regulated and consumer markets. {ind.map((i, idx) => ( e.currentTarget.style.background = "var(--metal-3)"} onMouseLeave={(e) => e.currentTarget.style.background = "transparent"} > 0{idx + 1} {i.name} {i.desc} {i.cases.map(c => ( · {c} ))} ))} ); } Object.assign(window, { ProductExplorer, Industries });
{c.body}
One platform, validated across regulated and consumer markets.
{i.desc}