Train 3D Gaussian splats on Chalk GPUs
This demo shows how to run gsplat on a Chalk GPU to reconstruct a scene from images with known camera poses. Train from scratch to watch the scene take shape, then explore the code to see how it works.
Compare a learned 3D scene with a held-out image
The trainer learns from rendered views of a treasure chest. Inspect reconstruction quality from another view.
Try this experiment · expected results
1Inspect the current result
If a trained scene is available, drag to orbit it and compare the held-out photo with the same-camera rendering.
Expected: The paired images show how well the learned scene reproduces a view outside the training set.
2Watch training progress
Select Train from scratch. If the shared GPU is busy, watch its current run.
Expected: The rendering develops as steps advance; compare the image and PSNR rather than the Gaussian count alone.
Explore the finished 3D scene, then compare a held-out photograph with its rendered view. Chalk’s GPU runs the training that creates the scene.
The training set contains 100 rendered views of a CC0 treasure chest with known camera poses, plus 12 held-out views. The trainer adjusts each Gaussian's position, shape, color and opacity, splitting and pruning them as it optimizes the scene.
Built on Chalk
The PyTorch trainer uses gsplat to render, compare and refine the Gaussians. Chalk provides the GPU, packages the runtime and serves the training application.
Train on an L4
Chalk schedules the trainer on an NVIDIA L4 and exposes the application through an HTTPS endpoint.
Package the CUDA runtime
The Python image definition pins PyTorch, CUDA and gsplat to compatible prebuilt wheels. Chalk builds the image used by the serving replicas.
Mount the training views
Chalk mounts the scene data alongside the trainer. A new set of posed images can be shipped with a redeploy.
Follow training progress
The example emits previews, loss and Gaussian counts over Server-Sent Events. Chalk serves that streaming endpoint while the GPU trains.
Run it on your own
You need uv, Chalk credentials, and an environment that can schedule an L4. Clone the example, log in, and deploy. Chalk builds the CUDA image; the application trains a scene at startup before serving the viewer.
Bring images with known camera poses in the example's data layout, or render another asset with render_views.py. Update the scene path and redeploy to train a different reconstruction.
git clone https://github.com/chalk-ai/gaussian-splatting
cd gaussian-splatting
# Or export CHALK_CLIENT_ID and CHALK_CLIENT_SECRET.
chalk login
# Builds a CUDA image with gsplat, provisions an L4, trains a scene, prints the URL.
./deploy.py --gpu nvidia-l4Train on GPUs in your cloud
3D reconstruction, scene optimization, or other GPU training workloads. Talk to an engineer about running it on Chalk.