SymTRELLIS: Symmetry-Enforced Voxel Latents for 3D Generation

arXiv
1Simon Fraser University, Burnaby, BC, Canada

Abstract

Single-view 3D generative models have achieved impressive visual quality, yet they are not designed to satisfy structural or functional requirements, and in practice, often fall short. Symmetry is one such requirement: violations, even subtle ones, on symmetry can render a model physically unusable. We present SymTRELLIS, a method that enforces arbitrary finite point group symmetries (rotational, reflectional, and polyhedral) during the flow-based 3D generation of TRELLIS.2, without retraining the underlying VAE or flow model. Our key idea is to approximate the latent-space action of spatial transformations as a learned linear operator on voxel latents, implemented as a lightweight spatial-transform latent mapper trained on generic, non-symmetric 3D data. At generation time, we enforce symmetry by averaging predicted flow velocities across all symmetry-equivalent transformations at each ODE step, a process we call velocity symmetrization. The symmetry specification can be estimated automatically from an initial TRELLIS.2 generation or supplied by the user, enabling deliberate fold manipulation beyond what the input image suggests. On a curated benchmark of 266 strictly symmetric objects spanning 2- to 20-fold rotations and polyhedral symmetry groups, SymTRELLIS substantially reduces all symmetry error metrics compared to TRELLIS.2, Hunyuan3D-2.1, and TripoSG, while maintaining reconstruction accuracy comparable to the base model.

Deploy the demo locally

ENV_TAG=torch2.9.0-cu130-py312
# Options:
# torch2.9.0-cu130-py312
# torch2.8.0-cu128-py312
# torch2.7.0-cu128-py311
# torch2.6.0-cu124-py310

mkdir -p \
  "$HOME/.cache/huggingface" \
  "$HOME/.config/huggingface" \
  "$HOME/.cache/triton"

docker run --rm --gpus all                                          \
  --user "$(id -u):$(id -g)"                                        \
  -p 7860:7860                                                      \
  -e HOME=/tmp                                                      \
  -e USER="$(id -un)"                                               \
  -e LOGNAME="$(id -un)"                                            \
  -e XDG_CONFIG_HOME=/config                                        \
  -e SYMTRELLIS_WEBUI_SESSION_TIMEOUT_SECONDS=315360000             \
  -e SYMTRELLIS_WEBUI_CLEANUP_INTERVAL_SECONDS=300                  \
  -e HF_HOME=/cache/huggingface                                     \
  -e HF_HUB_CACHE=/cache/huggingface/hub                            \
  -e TRITON_CACHE_DIR=/cache/triton                                 \
  -v "$HOME/.cache/huggingface:/cache/huggingface"                  \
  -v "$HOME/.config/huggingface:/config/huggingface:ro"             \
  -v "$HOME/.cache/triton:/cache/triton"                            \
  ghcr.io/symtrellis/symtrellis:inference-"$ENV_TAG"

Visuals

Uniform materials are used for clarity; texture-flow generation is supported but not shown in these visuals.

Input
TripoSG
Hunyuan3D 2.1
TRELLIS.2
SymTRELLIS
Gear input image
Gear result from TripoSG
Gear result from Hunyuan3D 2.1
Gear result from TRELLIS.2
Gear result from SymTRELLIS
Icosahedral input image
Icosahedral result from TripoSG
Icosahedral result from Hunyuan3D 2.1
Icosahedral result from TRELLIS.2
Icosahedral result from SymTRELLIS
Turbo blade input image
Turbo blade result from TripoSG
Turbo blade result from Hunyuan3D 2.1
Turbo blade result from TRELLIS.2
Turbo blade result from SymTRELLIS
Table fountain input image
Table fountain result from TripoSG
Table fountain result from Hunyuan3D 2.1
Table fountain result from TRELLIS.2
Table fountain result from SymTRELLIS
Silver cup input image
Silver cup result from TripoSG
Silver cup result from Hunyuan3D 2.1
Silver cup result from TRELLIS.2
Silver cup result from SymTRELLIS
Great disdyakis triacontahedron input image
Great disdyakis triacontahedron result from TripoSG
Great disdyakis triacontahedron result from Hunyuan3D 2.1
Great disdyakis triacontahedron result from TRELLIS.2
Great disdyakis triacontahedron result from SymTRELLIS
Lotus input image
Lotus result from TripoSG
Lotus result from Hunyuan3D 2.1
Lotus result from TRELLIS.2
Lotus result from SymTRELLIS
15-fold gear input image
15-fold gear result from TripoSG
15-fold gear result from Hunyuan3D 2.1
15-fold gear result from TRELLIS.2
15-fold gear result from SymTRELLIS
Omniwheel input image
Omniwheel result from TripoSG
Omniwheel result from Hunyuan3D 2.1
Omniwheel result from TRELLIS.2
Omniwheel result from SymTRELLIS

Fold Manipulation

Gear input image
Input Image
Gear result from TRELLIS.2
TRELLIS.2
Gear result with 9-fold symmetry
9 Fold
Gear result with 10-fold symmetry
10 Fold
Gear result with 11-fold symmetry
11 Fold
Gear result with 12-fold symmetry
12 Fold
Gear result with 13-fold symmetry
13 Fold
Gear result with 14-fold symmetry
14 Fold
Gear result with 15-fold symmetry
15 Fold
Gear result with 16-fold symmetry
16 Fold
Gear result with 17-fold symmetry
17 Fold
Gear result with 18-fold symmetry
18 Fold
Spinning top input image
Input Image
Spinning top result from TRELLIS.2
TRELLIS.2
Spinning top result with 5-fold symmetry
5 Fold
Spinning top result with 6-fold symmetry
6 Fold
Spinning top result with 7-fold symmetry
7 Fold
Spinning top result with 8-fold symmetry
8 Fold
Spinning top result with 9-fold symmetry
9 Fold
Spinning top result with 10-fold symmetry
10 Fold

BibTeX

@misc{ji2026symtrellis,
  title         = {SymTRELLIS: Symmetry-Enforced Voxel Latents for 3D Generation},
  author        = {Guangda Ji and Qimin Chen and Qinchan Li and Mingrui Zhao and Kai Wang and Hao Zhang},
  year          = {2026},
  eprint        = {2606.04108},
  archivePrefix = {arXiv},
  primaryClass  = {cs.GR},
  url           = {https://arxiv.org/abs/2606.04108},
}