Skip to content

Repository files navigation

Geometry-Aware Style Transfer in 3D Gaussian Splatting

Min Hyeok Bang*1, Jun Hyeong Kim*1, Seung-Wook Kim†2, Se-Ho Lee†1

1Department of Computer Science and Artificial Intelligence/Center for Advanced Image Information Technology, Jeonbuk National University, Jeonju-si, South Korea, 2Division of Electronic and Communication Engineering, Pukyong National University, Busan, South Korea

*These authors contributed equally, Corresponding authors

ECCV 2026

Tech Report Page

This repo contains the official code of our paper: Geometry-Aware Style Transfer in 3D Gaussian Splatting.

In this paper, we present a novel geometry-aware style transfer framework for 3D Gaussian splatting (3DGS) that simultaneously transfers appearance attributes and geometric structures. Unlike prior works that primarily focus on color-based stylization and often overlook structural adaptation, our method explicitly incorporates geometry adaptation through a decoupled optimization scheme that alternately updates color and geometry parameters.

Setup

Installation

Clone the repository and install necessary dependencies:

git clone https://github.com/oweixx/gast.git
conda env create --file environment.yml
conda activate gast

git clone https://github.com/DepthAnything/Depth-Anything-V2
mv Depth-Anything-V2 Depth_Anything_V2
wget -O depth_anything_v2_vitl.pth "https://huggingface.co/depth-anything/Depth-Anything-V2-Large/resolve/main/depth_anything_v2_vitl.pth?download=true"
mkdir -p checkpoints
mv depth_anything_v2_vitl.pth checkpoints/

Data Preparation

We evaluate the dataset on LLFF, Tanks and Temples and MipNeRF-360 datasets. For convenience, a small subset of preprocessed scene data and reference style images is provided ./style folder.

To use custom data, please follow the instructions in 3DGS to process your own scenes.

The datasets folder is organized as follows:

datasets
|---llff
|   |---flower
|   |---horns
|   |---...
|---tandt
|---mipnerf360

3DGS Reconstruction (Generating Point Clouds)

Our stylization pipeline assumes that each scene has already been reconstructed as a 3D Gaussian Splatting (3DGS) model and contains a pre-trained point cloud. In this repository, we provide an original 3DGS reconstruction script:

  • original_train.py: reconstructs a 3DGS scene and saves the Gaussian point cloud.
    For details on the training procedure, please refer to the original 3DGS repo:
    3DGS – Running

1. Prepare COLMAP-processed input

First, preprocess your scenes following the official 3DGS pipeline:

  • Camera poses and images should be prepared as in the original 3DGS repository.
  • Please refer to the official instructions for processing your own scenes:
    3DGS – Processing your own scenes

Quick Start

This repository provides a batch pipeline for stylizing multiple 3D Gaussian Splatting (3DGS) scenes with various reference styles.
The included shell script automatically performs:

  1. 3DGS geometry-aware stylization
  2. Depth video rendering
  3. Final RGB video rendering

To run the full stylization pipeline across all predefined scenes and styles, simply execute:

bash scripts/run.sh

The script iterates through:

  • Scenes: trex, flower, horns, fern
  • Styles: images located in style/
  • Output directory:
    output/[date]/[purpose]/[scene]/[style]/
    

What the Script Does

For each (scene, style) pair, the following steps are executed:

1. Train & Stylize (train.py)

  • Loads the scene from ${scene_dir}/${scene}
  • Loads the point cloud from:
    iteration_30000/point_cloud.ply
    
  • Applies the style image:
    ${style_dir}/${style}.jpg
    
  • Saves the stylized 3DGS result under:
    output/[date]/[purpose]/[scene]/[style]/
    

2. Render Depth Video (depth_render_video.py)

Generates a spiral-view depth visualization video of the stylized scene.

3. Render RGB Video (render_video.py)

Produces the final stylized spiral-view RGB animation.

Customizing the Pipeline

You can modify the following variables inside scripts/run.sh:

Variable Description
cuda GPU index used during execution
date Experiment group identifier
purpose Project name or experiment tag
scene_list Scenes to be processed
style_list Style images to apply
scene_dir Directory containing original 3DGS scenes
style_dir Directory containing style images

Example Modification

scene_list=("trex")
style_list=("starry" "mosaic")

This will process:

  • trex with starry
  • trex with mosaic

Citation

If you find this project useful, please cite:

@inproceedings{bang2026gast,
  title = {Geometry-aware style transfer in 3D gaussian splatting},
  author = {Bang, Min Hyeok and Kim, Jun Hyeong and Kim, Seung-Wook and Lee, Se-Ho},  
  booktitle = {Proc. European Conference on Computer Vision (ECCV)},
  address = {Malmö, Sweden},
  year = {2026}
}

About

[ECCV 2026] Geometry-Aware Style Transfer in 3D Gaussian Splatting

Resources

Stars

25 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages