Skip to content

Commit 5cb35db

Browse files
Add interactive GP concrete strength explorer (BOxCrete website)
GitHub Pages site at docs/ providing an interactive web UI for exploring concrete mix compressive-strength predictions from the Gaussian process model. The page runs the GP entirely in the browser via a WASM build of the BLAS routines and a small JS port (gp.mjs). Highlights - Composition sliders with SI/imperial unit toggle - Performance-tradeoff scatter (GWP, cost, strength) with axis switches, filters, and Pareto-optimal labelling - Predicted strength curve with \u00b12\u03c3 uncertainty band and far-from-data warning - Per-mix and per-ingredient insight panels (mix_analyses.json) - About modal, citation copy buttons (BibTeX/APA), references panel - Light/dark themes with frosted-glass header and animated gradient - Mobile-first responsive layout: unified scatter/sliders panel with tab-style toggle, viewport-fit panels, evenly-spaced header items, iOS background fixes via fixed bg-layer - Header restructured into h1 + .header-links (centered nav) + .header-actions wrapper so right-anchored controls survive when individual children are hidden on mobile Supporting infrastructure - scripts/export_model.py: serializes the trained GP to JSON for the web UI - docs/model/*.json: exported GP parameters, training data, mix analyses - docs/blas_f64.{wasm,js}: WASM glue for matrix ops in the browser - test/test_js_gp.mjs: parity test for the JS GP against the Python model - .github/workflows/js-sync.yml: CI to keep JS GP in sync
1 parent 25c31fd commit 5cb35db

19 files changed

Lines changed: 4778 additions & 0 deletions

.github/workflows/js-sync.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Verifies that the JavaScript GP implementation matches Python reference predictions.
2+
# Catches drift if model parameters or JS code are changed without re-syncing.
3+
4+
name: JS Model Sync
5+
6+
# Restrict GITHUB_TOKEN to the minimum needed: read-only access to repo
7+
# contents (required by actions/checkout). The workflow never writes to the
8+
# repo, comments on PRs, deploys, or interacts with any other GitHub APIs.
9+
permissions:
10+
contents: read
11+
12+
on:
13+
push:
14+
branches: [main, master]
15+
paths:
16+
- 'docs/gp.mjs'
17+
- 'docs/model/**'
18+
- 'test/test_js_gp.mjs'
19+
pull_request:
20+
branches: [main, master]
21+
paths:
22+
- 'docs/gp.mjs'
23+
- 'docs/model/**'
24+
- 'test/test_js_gp.mjs'
25+
26+
env:
27+
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
28+
29+
jobs:
30+
js-model-sync:
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@v4
34+
35+
- uses: actions/setup-node@v4
36+
with:
37+
node-version: '20'
38+
39+
- name: Run JS GP sync test
40+
run: node test/test_js_gp.mjs

docs/.nojekyll

Whitespace-only changes.

docs/Q1000572_opt.jpg

856 KB
Loading

docs/blas_f64.js

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/blas_f64.wasm

7.82 KB
Binary file not shown.

docs/concrete_poster.jpg

1.33 MB
Loading

docs/favicon.svg

Lines changed: 14 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)