We will:

  1. Export the camera poses from COLMAP.
  2. Set up ML_TRAIN_GSPLAT inside TOPs.
  3. Process and render the result using GSPLAT QUICKSTART 🟒

<aside> ❗

At the time of writing, Houdini can’t extract camera positions directly. You’ll need third-party software for this. In this case, I’ll be using COLMAP because it’s quick, easy, and free.

</aside>

<aside> πŸ’‘

GET SAMPLE DATASET TO FOLLOW THE ARTICLE

https://www.realityscan.com/download

image.png

</aside>

COLMAP

INSIDE HOUDINI - SETTING UP TOP_ML_TRAIN_GSPLATS

<aside> ❗

CRUCIAL β€” FILE ORGANIZATION

For this process to work, you need to follow this exact folder structure:

  1. Note the name of your .hip file.
  2. Inside $HIP, create a folder named ml.
  3. Inside ml, create a folder with the same name as your .hip file, without the extension.
  4. Inside it, create dataset.gsplats.
  5. Inside dataset.gsplats, create:
  6. Put your images inside images.
  7. Inside sparse, create a folder named 0.
  8. Put the files exported from COLMAP inside 0.

Alternative: You can edit the ML Train GSplat TOP to use a different file structure. For now, we'll keep it simple and use the default structure.

</aside>

$HIP/
└── my_gsplat_project.hip
└── ml/
    └── my_gsplat_project/
        └── dataset.gsplats/
            β”œβ”€β”€ images/
            β”‚   β”œβ”€β”€ image_001.jpg
            β”‚   β”œβ”€β”€ image_002.jpg
            β”‚   └── ...
            └── sparse/
                └── 0/
                    β”œβ”€β”€ cameras.bin
                    β”œβ”€β”€ images.bin
                    └── points3D.bin

Create a TOP Network and go inside

Inside, create an ML Train GSplat TOP.

Data

In Data, change Data Set Type to SIM (COLMAP).

Adjust Downscale Factor as needed. Higher values result in lower quality.

image.png

Training

Disable Enable Testing.

Adjust Match Base Size as needed. Higher values can improve quality, but require more GPU memory.

!image.png

image.png

Checkpoints

In Checkpoints, enable checkpoint export if needed and set the desired interval.

The default settings are fine if you don't need intermediate checkpoints.

image.png

Execution

Enable Cache Images with VRAM. If you have a decent GPU, the difference in processing speed can be significant.

Number of Workers controls how many CPU workers are assigned to the task. You can leave this at the default or set it to Equal to CPU Count Less One.

image.png

Start the Cooking Process

Right-click the ML Train GSplat node and select Cook Node.

The process can take a while, especially during the initial stages. This is normal.

You can click the icon in the top-right to monitor the progress.

image.png

image.png

image.png