Skip to content
libd1Public

About

Open-Sourced Foundation Model for 3D Asset Editing

Topics

Resources

Stars

19 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

Alchemy3D Alchemy3D

Scaling Versatile 3D Assets Editing with a Million-Scale Dataset

Badi Li1,2,4, Tianxin Huang1, Yu Zhou3, Wei-Shi Zheng2,4, Yi Ma1,2, Shenghua Gao1,2†

1 The University of Hong Kong    2 Shenzhen Loop Area Institute
3 Shanghai Innovation Institute    4 Sun Yat-Sen University

† Corresponding author

Project Page arXiv License Hugging Face Model ModelScope Model Dataset Benchmark Evaluation

Alchemy3D model-editing teaser: addition, removal, replacement, local appearance, global appearance, and animation.

Alchemy3D is a strong baseline model for editing existing assets while preserving identity and structure.

We also release Alchemy3D-1M (1.25M unique assets, 1.38M edit pairs, 7 edit types) and GEdit3D-Bench. For evaluation, including several baselines, would be released at a separate repo: edit3dstudio.

✨ Features

Versatile 3D editing

One model family covers six editing types on assets: Addition, Removal, Replacement, Local/Global Appearance, Animations.

Model Variants also support 3D Part Segmentation, given 1-8 number of 2D segmentation maps.

🗺️ Roadmap

  • Pretrained Checkpoints & Inference Code
  • Datasets and Benchmarks
  • Pipelines for automatically produce 2D segmentation maps for Alchemy3D-Segment
  • Training code
  • Evaluation codes would be released at (edit3dstudio)

🛠️ Installation

The environmental setup is largely adopted from TRELLIS.2. For users who already have environment ready for TRELLIS.2, you may directly test the models. Otherwise you may follow the instruction to prepare the environment.

Prerequisites

  • System: tested on Linux
  • Hardware: NVIDIA GPU. 24GB is a practical minimum; H200 are the verified class

Installation steps

git clone https://github.com/libd1/Alchemy3D.git
cd Alchemy3D

--new-env creates conda env alchemy3d with PyTorch 2.6.0 + CUDA 12.4. To reuse an existing env, drop --new-env. If several CUDA toolkits are installed, set CUDA_HOME first, e.g. export CUDA_HOME=/usr/local/cuda-12.4.

. ./setup.sh --new-env --basic --flash-attn --nvdiffrast --nvdiffrec --cumesh --o-voxel --flexgemm --blender
Usage: setup.sh [OPTIONS]
    --new-env       Create conda environment `alchemy3d`
    --basic         Core Python dependencies
    --flash-attn    flash-attention
    --cumesh        CuMesh 
    --o-voxel       O-Voxel
    --flexgemm      FlexGEMM 
    --nvdiffrast    nvdiffrast
    --nvdiffrec     nvdiffrec
    --blender       download blender 

GPUs without flash-attn (e.g. V100): install xformers and set ATTN_BACKEND=xformers. If Hugging Face is unreachable, use the ModelScope IDs below; loading falls back automatically.

The setup.sh download blender binary if --blender set, in this case, you are to set the blender path with export BLENDER_PATH="$PWD/blender-4.3.2-linux-x64/blender" everytime running.

📦 Model Zoo

We release model weights on both Huggingface and ModelScope

Model Description Hugging Face ModelScope
Alchemy3D Primary Model libadi/Alchemy3D libd55/Alchemy3D
Alchemy3D-Turbo Step-distilled Version libadi/Alchemy3D-Turbo libd55/Alchemy3D-Turbo
Alchemy3D-Flux Flux2 Encoder in place of DINOv3 for PBR Editing libadi/Alchemy3D-Flux libd55/Alchemy3D-Flux
Alchemy3D-Instruct Instruction-driven Variant libadi/Alchemy3D-Instruct libd55/Alchemy3D-Instruct
Alchemy3D-Segment Downstream Part Segmentation Model libadi/Alchemy3D-Segment libd55/Alchemy3D-Segment

🚀 Usage

Examples live under assets/examples/edits/ and assets/examples/segment/.

1. Image-conditioned 3D editing

See example.py. Alternatives: libadi/Alchemy3D-Turbo, libadi/Alchemy3D-Flux (or the ModelScope IDs above).

from alchemy3d.pipelines import Pipeline
import o_voxel

pipe = Pipeline.from_pretrained(model_name_or_path="libadi/Alchemy3D")
pipe.cuda()

output = pipe.run(
    source="./assets/examples/edits/01/source.glb",
    image="./assets/examples/edits/01/target_image.png",
    comparison_video="example.mp4",
)[0]

glb = o_voxel.postprocess.to_glb(
    vertices=output.vertices,
    faces=output.faces,
    attr_volume=output.attrs,
    coords=output.coords,
    attr_layout=output.layout,
    voxel_size=output.voxel_size,
    aabb=[[-0.5, -0.5, -0.5], [0.5, 0.5, 0.5]],
    decimation_target=1_000_000,
    texture_size=4096,
    remesh=True,
    remesh_band=1,
    remesh_project=0,
    verbose=False,
)
glb.export("example.glb")

2. Instruction-conditioned 3D editing

See example-instruct.py.

from alchemy3d.pipelines import Alchemy3DInstructPipeline

pipe = Alchemy3DInstructPipeline.from_pretrained("libadi/Alchemy3D-Instruct")
pipe.cuda()

instruction = open("./assets/examples/edits/01/instruction.txt").read()
output = pipe.run(
    source="./assets/examples/edits/01/source.glb",
    instruction=instruction,
    comparison_video="example-instruct.mp4",
)[0]

3. 3D part segmentation

See example-segment.py.

from alchemy3d.pipelines import Alchemy3DSegmentPipeline

pipe = Alchemy3DSegmentPipeline.from_pretrained("libadi/Alchemy3D-Segment")
pipe.cuda()

images = [
    "./assets/examples/segment/01/instance/002.png",
    "./assets/examples/segment/01/instance/003.png",
]
meshes, preds = pipe.run(
    source="./assets/examples/segment/01/source.glb",
    image=[images],
    return_label=True,
    comparison_video="example-segment.mp4",
)

📂 Dataset, Benchmark, and Evaluation

Resource What it is Links
Alchemy3D-1M 1.25M assets, 1.38M pairs, 7 edit types HF · ModelScope
GEdit3D-Bench Open-world edit benchmark HF · ModelScope
edit3dstudio Evaluation code and baselines GitHub

🙏 Acknowledgements

Alchemy3D stands on TRELLIS.2 (Native and Compact Structured Latents for 3D Generation, Xiang et al., Microsoft).

We also thanks the contribution of several baselines methods/models: VoxHammer, Nano3D, AnchorFlow, 3DEditFormer, PartFlow etc.

⚖️ License

Alchemy3D code is released under the Apache License 2.0.

O-Voxel is installed from TRELLIS.2 and remains under the MIT License © Microsoft Corporation. Other dependencies have their own terms:

📚 Citation

@misc{li2026scalingversatile3dassets,
      title={Scaling Versatile 3D Assets Editing with a Million-Scale Dataset}, 
      author={Badi Li and Tianxin Huang and Yu Zhou and Wei-Shi Zheng and Yi Ma and Shenghua Gao},
      year={2026},
      eprint={2609.34271},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2609.34271}, 
}

You may also consider citing TRELLIS.2 if you used Alchemy3D Model.

About

Open-Sourced Foundation Model for 3D Asset Editing

Topics

Resources

Stars

19 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages