尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
Demo repository which renders a FITS file in Threejs
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Skacube is a demonstration project utilising Next.Js and a Flask backend to render a FITS file cube in 3d. I want to demonstrate my experience and skills with UI/UX, simple containerisation, design systems and my Agentic workflow process.
Live: https://skacube-blond.vercel.app
I am very interested in working at SKA-Low as I like the UX challenge of communicating complicated technical instructions to a wide audience. I am not from a STEM background, so even in dissecting the SKA-Low docs and api, I was finding it very difficult to parse. I feel there is a good meeting point where design and UI can meet the extrodinarily exciting and technical disoveries the SKA-Low radioscope provides and demonstrate it to a wide audience.
Everything, one command:
docker compose up --build
Then open http://localhost:3000. Details in docs/docker.md.
For day-to-day development (ADR 0025):
cd api && uv run flask run # http://localhost:3001/health
cd web && pnpm dev # http://localhost:3000
Checks, the same ones CI runs:
cd api && uv run ruff check && uv run ruff format --check && uv run mypy && uv run pytest
cd web && pnpm lint && pnpm format:check && pnpm typecheck && pnpm test && pnpm build
docker compose -f compose.yaml -f compose.e2e.yaml run --rm --build e2e # Playwright + axe, see e2e/README.md
| Path | What |
|---|---|
web/ | Next.js (App Router, TypeScript) front end |
api/ | Flask API: GraphQL for metadata, REST for the binary volume |
e2e/ | Playwright and axe tests, run in Docker against the whole stack |
data/ | Processed volume and its README (the raw FITS file is not committed - taken from SKA-Low website) |
docs/ | Overview, architecture, design, background, ADRs |
backlog/ | Epics, stories and tasks |
The dataset is SKAO's simulated 21 cm Epoch of Reionisation cube (Bonaldi et al. 2025, arXiv:2503.11740), downloaded from the SKA-Low page. The 981 MB raw file is not committed. uv run data/ingest.py <fits> reduces it to a 256³ volume of about 10 MB, which is. See data/README.md.
| React / Next.js | web/, architecture |
| Flask and GraphQL | api/, ADR 0005 |
| Version control, CI/CD, testing, docs | SDLC, .github/workflows/ |
| UX and reusable components | design system |
| Linux and containers | Dockerfiles, compose.yaml, ADR 0025 |
Start at docs/README.md. Every significant choice has an ADR.
MIT.