An interactive 3D visualization of Scope/Scale, Time, and Concern/Viewpoint using Three.js and OrbitControls.
- Build + serve:
make serve(servespublic/at http://localhost:8000)
- Manual build:
make build(copies fromsrc/topublic/)- Serve:
python3 -m http.server 8000 --directory public
Project structure:
src/— app source (JS/CSS)public/— served root (index.html, built assets).github/— CI and repo configs
- PRs must pass CI before merge (required status check:
build). Thebuildjob runs:- ESLint (
npx eslint src/js --max-warnings=0) - Prettier check (
npx prettier --check .) - Build/verify static assets
- ESLint (
- Squash-only merges are enabled; branches are deleted on merge.
- Code owner review is required per
.github/CODEOWNERS.
- Lint:
make lint(ESLint, zero warnings) - Format:
make format(Prettier write) - Format check:
make format-check - Configs:
.eslintrc.json,.eslintignore,.prettierrc.json,.prettierignore,.editorconfig
- GitHub Pages (simple): Settings → Pages → Deploy from Branch → select
mainand/ (root)ordocs/pattern. For this repo, serve thepublic/directory by either:- Using Actions to deploy
public/togh-pagesbranch, or - Moving built files into
docs/and selectingmain/docs.
- Using Actions to deploy
- Netlify: drag‑and‑drop
public/or connect repo (build commandmake build, publish directorypublic) - Vercel: import repo, set output directory to
public, framework preset None - Any static host: serve
public/as the web root
- Pin library versions (Three.js, OrbitControls) and prefer local
public/vendor/for deterministic builds. - Use cache headers for static assets; fingerprint filenames if you later add bundling.
- Avoid
eval/dynamic code injection; sanitize any future user inputs.
This app provides:
- Three Core Axes
- Scope/Scale (vertical): Nano → Micro → Meso → Macro → Supra → Meta
- Time (horizontal): µs → ms → s → min → h → d → wk → mo → q → yr
- Concern/Viewpoint (depth): Function → Data → Control → Security → Cost → UX
- Interactive 3D Space
- Rotate, pan, zoom; click for details; hover tooltip
- Visual Connections
- Lines between nearby points within the same scope; color‑coded by scope
- Filtering
- Toggle point visibility by concern type
- Details Panel
- Shows description, example, and considerations for selected point
- Comprehensive Representation across multiple dimensions
- Intuitive Navigation with natural 3D interactions
- Visual Clarity via color and spatial grouping
- Focused Analysis with concern filters
- Holistic Understanding of interactions across scales and time
- Navigate: left‑drag rotate, right‑drag pan, scroll to zoom
- Explore: click spheres to update the details panel
- Filter: toggle concern checkboxes
- Resize: window resize maintains aspect and layout