Transforming 2D MNIST into rich 3D geometries (watertight meshes, sparse SDFs, and 6D normal-oriented point clouds) with continuous flow matching generative pipelines.
Digit3D elevates the classic MNIST dataset into lightweight, GPU-optimized 3D geometric representations for rapid prototyping and differentiable learning.
70,000 smooth 3D OBJ meshes constructed with distance transforms, parabolic thickness, Taubin smoothing, and ~500 face decimation.
Offline precomputed Signed Distance Fields accelerated by GPU BVH trees, compressed into narrow-band coordinate and feature archives.
Lightweight $[512, 6]$ tensors containing 3D coordinates (X, Y, Z) paired with oriented surface normal vectors $(n_x, n_y, n_z)$.
Native PyTorch dataset classes streaming point clouds, meshes, and sparse SDFs directly from zip archives without disk extraction.
Select any experiment below to inspect interactive 3D models, normal-mapped point clouds, sparse voxel grids, and quantitative benchmark metrics.
Spontaneous 3D digit generation from Gaussian noise $\mathbf{x}_0 \sim \mathcal{N}(\mathbf{0}, \mathbf{I})$ via Mean Flow continuous velocity matching.
Targeted 3D synthesis across all 10 digit classes (0–9) using class token embeddings and Classifier-Free Guidance (CFG).
Single-view 3D shape synthesis mapping 28 × 28 grayscale images through GroupNorm vision encoders to 6D normal-oriented point clouds.
Continuous point cloud synthesis from 2D images across flexible point counts (N = 256, 512, 1024, 4096, 16384) with multi-scale surface fidelity.
Hierarchical 3D sparse convolutional autoencoder compressing sparse SDF grids into 16-channel latents and decoding watertight meshes.
Cascaded 3D pipeline combining Stage 1 Structure DiT MeanFlow (active voxels) and Stage 2 Sparse Vertex SDF Rectified Flow (watertight meshes) from 2D images.
Direct 3D shape reconstruction and surface completion conditioned on sparse 6D point clouds ($N = 512$) to generate high-fidelity watertight meshes.
Analysis of topological genus constraints, small model regimes, resolution bounds, and multi-resolution roadmap.
Stream 3D meshes and point clouds with surface normals directly in PyTorch:
# Install conquer3d
from conquer3d.data.dataset.digit3d import Digit3D, PointDigit3D
# 1. Stream 3D Meshes (Vertices, Faces, Class Label, Optional 2D Image)
mesh_dataset = Digit3D(root="~/.conquer3d/", train=True, download=True, return_img=True)
vertices, faces, label, img = mesh_dataset[0]
# 2. Stream [512, 6] Point Clouds with Surface Normals (X, Y, Z, Nx, Ny, Nz)
pc_dataset = PointDigit3D(root="~/.conquer3d/", train=True, num_points=512, download=True)
points, features, label = pc_dataset[0]
@article{do2026digit3d,
title = {Digit3D: 3D Multimodal MNIST Benchmark},
author = {Khoi DO},
journal = {arXiv preprint},
year = {2026},
url = {https://github.com/KhoiDOO/digit3d}
}