Skip to content
ATC
All projects

Cloud platform

NukeLab

A multi-user scientific computing platform that runs nuclear simulations in the browser — shareable projects, real quotas, and GPU-backed jobs without a local cluster.

Role
Founder & maintainer
Period
2023 — present
NukeLab screenshot

The problem

Neutronics and depletion workflows are expensive to run and painful to reproduce. A student or a small research group typically needs a Linux workstation, a queueing system, a license for at least one transport code, and enough patience to rebuild the environment for every collaborator. The result is that most promising nuclear coursework and side projects never get past a single laptop.

The approach

NukeLab turns that workstation into a hosted service. A project holds its inputs, geometry, decks and result state, so a collaborator opens a link and works with the exact same case the author saw — no environment to rebuild, no file to email around.

The backend is a Python service (FastAPI) over PostgreSQL and Redis, with Celery workers draining simulation queues. Work is modelled as credit-metered jobs: each run costs according to the resources it claims, which keeps the shared pool honest without turning the platform into a billing system.

Everything runs in containers (Docker/Podman behind Traefik), so the runtime that executes a deck is versioned alongside the deck. GPU-backed jobs are scheduled through CDI and the NVIDIA container runtime, which means the same job definition runs on a laptop CPU or a datacenter GPU without the user touching a scheduler.

Telemetry is first-class: Prometheus and Grafana sit next to the worker fleet, so a slow run is diagnosed from the service's own metrics instead of by guessing.

Engineering highlights

  • Collaborative projects, not shared folders

    Every case is a first-class object with revision history, so a parameter sweep and the deck that produced it stay together. That single decision is what turns the platform from a runner into a collaboration tool.

  • Reproducible by construction

    The container image that executed a job is recorded with the job. Re-running a result months later picks up the same toolchain instead of whatever the host happens to have installed.

  • Quota accounting that survives failure

    Credits are reserved before a job starts and reconciled when it finishes or is cancelled, so a crashed worker cannot leak capacity.

At a glance

Languages
Python · TypeScript
Deployment
Cloud-native, GPU-optional
Status
Live at lab.nukehub.org

Stack

  • FastAPI
  • PostgreSQL
  • Redis
  • Celery
  • Docker
  • Podman
  • Traefik
  • Kubernetes
  • Prometheus
  • Grafana
  • NVIDIA CDI