{"page":{"title":"sci-core — Night lab","description":"Scientific charts on the SlickFast engine. Real log axes. Raw values in. Same spec, same bytes. Twin at .json.","theme":"teal-dark","sections":[{"type":"hero","badge":"sci-core","heading":"The bench after midnight.","sub":"Log axes with 10ⁿ ticks. Stats computed in the engine. Neon on black. Same JSON, same picture, forever."},{"type":"stats","items":[{"label":"Furniture","value":"10ⁿ"},{"label":"Input","value":"raw"},{"label":"Palette","value":"Glow"},{"label":"Bytes","value":"forever"}]},{"type":"text","body":"sci-core is the scientific module on the same engine as the rest of SlickFast. You write a spec. You get SVG. Scientists check the **decade grid** first — labels in power notation, minor lines bunching toward the top of each decade. That furniture is the product.\nThis Page is the showcase. Add `.json` to the URL for the twin."},{"type":"text","body":"## Same culture. Two axes.\nE. coli, 120 → 71,000 CFU/mL. Linear hides the first hour. Log-y makes every decade a floor."},{"type":"grid","charts":[{"type":"lineplot","scale":"linear","palette":"Cyberpunk Glow","background":"#0a0f14","title":"Linear — the first hour disappears","xLabel":"Time (min)","yLabel":"CFU/mL","data":{"series":[{"name":"Culture","x":[0,20,40,60,80,100,120,140,160,180],"y":[120,240,510,980,2100,4300,8600,17000,35000,71000]}]}},{"type":"lineplot","scale":"semilog-y","palette":"Cyberpunk Glow","background":"#0a0f14","title":"Log-y — every decade readable","xLabel":"Time (min)","yLabel":"CFU/mL","data":{"series":[{"name":"Culture","x":[0,20,40,60,80,100,120,140,160,180],"y":[120,240,510,980,2100,4300,8600,17000,35000,71000]}]}}]},{"type":"text","body":"## Dose–response on a real log–log\nTwo compounds. Error bars in the spec. The engine draws whiskers on the same 10ⁿ furniture."},{"type":"chart","spec":{"type":"errorbar","scale":"loglog","palette":"Cyberpunk Glow","background":"#0a0f14","title":"Dose–response · log–log + error bars","xLabel":"Dose (µg)","yLabel":"Response","data":{"series":[{"name":"Compound A","x":[0.1,0.3,1,3,10,30,100],"y":[2.1,4.4,9.8,22,48,105,230],"yerr":[0.4,0.8,1.5,3,7,15,35]},{"name":"Compound B","x":[0.1,0.3,1,3,10,30,100],"y":[1.2,2,3.8,7.5,14,29,55],"yerr":[0.3,0.4,0.7,1.2,2.5,5,9]}]}}},{"type":"text","body":"## Kaplan–Meier in the engine\nRaw times and events go in. The estimator, censor ticks, and median are computed at render."},{"type":"chart","spec":{"type":"survival","palette":"Cyberpunk Glow","background":"#0a0f14","title":"Two-arm survival","xLabel":"Days","data":{"series":[{"name":"Control","times":[3,5,7,9,11,14,15,18,21,24],"events":[1,1,1,0,1,1,1,1,0,1]},{"name":"Treated","times":[6,10,14,17,20,24,24,24,24,24],"events":[1,1,0,1,1,0,0,0,0,0]}]}}},{"type":"text","body":"## Volcano — classify in-engine\nFold-changes and raw p-values in. The engine computes −log₁₀(p), draws thresholds, colors up / down / not significant."},{"type":"chart","spec":{"type":"volcano","palette":"Cyberpunk Glow","background":"#0a0f14","title":"Differential expression","fc":[-3.1,-2.5,-1.8,-1.2,-0.7,-0.4,-0.1,0.2,0.6,0.9,1.4,2,2.8,3.4],"p":[2e-8,0.001,0.004,0.03,0.08,0.4,0.7,0.9,0.12,0.06,0.008,0.0004,3e-7,1e-9]}},{"type":"text","body":"## Trace with peaks\nA chromatogram-shaped lineplot. `peaks: true` — the engine finds them."},{"type":"chart","spec":{"type":"lineplot","palette":"Cyberpunk Glow","background":"#0a0f14","showPoints":false,"peaks":true,"title":"HPLC trace · auto peaks","xLabel":"min","yLabel":"mAU","data":{"series":[{"name":"Trace","x":[0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8],"y":[1.2,1.4,2.1,8.8,2,1.3,1.5,3.2,14.1,3,1.4,1.6,2.8,9.4,2.2,1.3,1.1]}]}}},{"type":"text","body":"## Q-Q and Bland–Altman\nNormality and method agreement from raw series. Stats stay in the engine."},{"type":"grid","charts":[{"type":"qq","palette":"Cyberpunk Glow","background":"#0a0f14","title":"Q-Q · assay replicates","data":{"series":[{"name":"Assay","values":[4.9,5.3,5.1,4.7,5,5.2,4.8,5.4,5,4.6,5.1,4.9,5.5,4.8,5.2]}]}},{"type":"blandaltman","palette":"Cyberpunk Glow","background":"#0a0f14","title":"Bland–Altman · two methods","data":{"series":[{"name":"Method A","values":[10.1,12,11.2,13.4,12.1,9.8,14,11.5,12.8,10.6]},{"name":"Method B","values":[10.3,11.7,11,12.9,12.4,10.1,13.6,11.3,12.5,10.8]}]}}]},{"type":"text","body":"## On this Page\n**lineplot** (linear + log-y) · **errorbar** (log–log) · **survival** · **volcano** · **peaks** · **qq** · **blandaltman**.\nAlso in sci-core: **scatter**, **barplot**, trend fits, error bands, residual panels, reference lines, base-2 axes.\nSame spec, same bytes. Twin at `.json`. The hash is on the page.\n\n[slickfast.com](https://slickfast.com) · [Get started](https://slickfast.com/start) · [News](https://slickfast.com/news)"},{"type":"footer","note":"SlickFast · sci-core · add .json for the twin","link":"https://slickfast.com"}]},"specHash":"sha256:67327be7083eb63aa9235b72430fd3e885b1e5228a230b81864d401ba28f05ad","frozen":true,"expiresAt":null}