Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
2a102b8
Create gaussianSplat.md
akhil-mitt Nov 29, 2025
e8c4147
Update README.md
akhil-mitt Nov 29, 2025
db7505b
Add files via upload
akhil-mitt Nov 30, 2025
2a7357e
Delete docs/public/ALab_splat_in_usdview.mp4
akhil-mitt Nov 30, 2025
3e8e3e6
Add files via upload
akhil-mitt Nov 30, 2025
16793be
Update README.md
akhil-mitt Nov 30, 2025
9099e86
First preview of ALab as Gaussian Splats
chrizzFTD Nov 13, 2025
21fea5b
Camera used to render the ALab for splats training
chrizzFTD Nov 13, 2025
922bb09
Temporary transform to adjust the ALab splats for A/B comparison with…
chrizzFTD Nov 13, 2025
b7e31b2
Optional entry point for camera + gsplats
chrizzFTD Nov 13, 2025
9bdd9cd
Add variant for ply and usd gaussian splat file format
chrizzFTD Nov 22, 2025
1354b08
adding usd version of alab splats
chrizzFTD Nov 27, 2025
81185a5
adding usd version of alab splats
chrizzFTD Nov 27, 2025
c048bd2
Update gaussianSplat.md
akhil-mitt Nov 30, 2025
960ec33
Add files via upload
akhil-mitt Dec 2, 2025
58986ca
Update gaussianSplat.md
akhil-mitt Dec 2, 2025
f163bf8
Update gaussianSplat.md
akhil-mitt Dec 2, 2025
fda99c2
Update gaussianSplat.md
akhil-mitt Dec 3, 2025
7a171a1
Update gaussianSplat.md
akhil-mitt Dec 9, 2025
3663e4c
Update gaussianSplat.md
akhil-mitt Dec 9, 2025
8cc1f10
commit for the composition files without the new splat and ply files
akhil-mitt Dec 16, 2025
4b89729
Track large files with Git LFS
akhil-mitt Dec 16, 2025
b8f9c0c
hdr splat usdc
akhil-mitt Dec 16, 2025
f021fc1
sdr splat ply
akhil-mitt Dec 16, 2025
a95a681
sdr splat usdc
akhil-mitt Dec 16, 2025
6064e95
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
3a817a2
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
9edf0d5
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
0072b81
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
138a1e5
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
ddbab3e
Add files via upload
akhil-mitt Jan 16, 2026
da0ed2e
Update gaussianSplat.md
akhil-mitt Jan 16, 2026
784e69f
Update gaussianSplat.md
akhil-mitt Jan 16, 2026
306efb0
Add files via upload
akhil-mitt Jan 16, 2026
1509907
Update aLab_splat.usda
akhil-mitt Jan 16, 2026
5283603
Delete ALab/extras/sdr_variant.usda
akhil-mitt Jan 16, 2026
56d7504
Delete ALab/extras/hdr_variant.usda
akhil-mitt Jan 16, 2026
d8a75d1
Update gaussianSplat.md
akhil-mitt Jan 21, 2026
a9bdcf9
Update aLab_splat.usda
akhil-mitt Jan 23, 2026
97482b4
Rename aLab_hdr_splat.ply to alab_hdr_splat.ply
akhil-mitt Jan 26, 2026
b854ed8
Rename aLab_hdr_splat.usdc to alab_hdr_splat.usdc
akhil-mitt Jan 26, 2026
5fbe653
Rename aLab_sdr_splat.ply to alab_sdr_splat.ply
akhil-mitt Jan 26, 2026
2c399f4
Rename aLab_sdr_splat.usdc to alab_sdr_splat.usdc
akhil-mitt Jan 26, 2026
7049069
Update and rename aLab_splat.usda to alab_splat.usda
akhil-mitt Jan 26, 2026
6992007
Rename aLab_splat_with_camera.usda to alab_splat_with_camera.usda
akhil-mitt Jan 26, 2026
a20d42d
Update alab_splat_with_camera.usda
akhil-mitt Jan 29, 2026
277a98d
Update gaussianSplat.md
akhil-mitt Feb 8, 2026
9f36580
Updated the usdc files after converting using USD dev branch build wi…
akhil-mitt Feb 9, 2026
10b19f3
Revise gaussian splat documentation for clarity
akhil-mitt Feb 20, 2026
a2ead2c
Update gaussianSplat.md
akhil-mitt Feb 20, 2026
207edea
Update README.md
akhil-mitt Feb 25, 2026
7a1cc03
Update gaussianSplat.md
akhil-mitt Feb 25, 2026
2f2a685
Update gaussianSplat.md
akhil-mitt Feb 26, 2026
009b8e4
Update gaussianSplat.md
akhil-mitt Feb 26, 2026
af74f56
Update gaussianSplat.md
akhil-mitt Feb 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
ALab/extras/alab.ply filter=lfs diff=lfs merge=lfs -text
ALab/extras/alab.usdc filter=lfs diff=lfs merge=lfs -text
*.ply filter=lfs diff=lfs merge=lfs -text
*.usdc filter=lfs diff=lfs merge=lfs -text
3 changes: 3 additions & 0 deletions ALab/extras/alab_hdr_splat.ply
Git LFS file not shown
3 changes: 3 additions & 0 deletions ALab/extras/alab_hdr_splat.usdc
Git LFS file not shown
3 changes: 3 additions & 0 deletions ALab/extras/alab_sdr_splat.ply
Git LFS file not shown
3 changes: 3 additions & 0 deletions ALab/extras/alab_sdr_splat.usdc
Git LFS file not shown
71 changes: 71 additions & 0 deletions ALab/extras/alab_splat.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#usda 1.0
(
metersPerUnit = 0.01
defaultPrim = "root"
)


def Xform "root"
{


def Xform "alab_splat_hrc" (
variants = {
string train_img_colorspace = "sdr-8bit-rec709"
}
prepend variantSets = "train_img_colorspace"
)
{
matrix4d xformOp:transform:transform1 = ( (156.62323975946586, -14.504396813283966, 14.925925108068377, 0), (13.835221110785671, -12.091359437091958, -156.92796335828334, 0), (15.548228968745558, 156.86752850748252, -10.715926273058074, 0), (68.63612747192383, 139.93829154968262, 112.14171981811523, 1) )
uniform token[] xformOpOrder = ["xformOp:transform:transform1"]
variantSet "train_img_colorspace" = {
"sdr-8bit-rec709" (
) {
def "alab_splat" (
variants = {
string file_format = "usd"
}
prepend variantSets = "file_format"
)
{
variantSet "file_format" = {
"usd" (
payload = @./alab_sdr_splat.usdc@
) {

}
"ply" (
payload = @./alab_sdr_splat.ply@
) {

}
}
}
}
"hdr-8bit-rec2100" (
) {
def "alab_splat" (
variants = {
string file_format = "usd"
}
prepend variantSets = "file_format"
)
{
variantSet "file_format" = {
"usd" (
payload = @./alab_hdr_splat.usdc@
) {

}
"ply" (
payload = @./alab_hdr_splat.ply@
) {

}
}
}
}
}
}

}
18 changes: 18 additions & 0 deletions ALab/extras/alab_splat_with_camera.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#usda 1.0
(
endTimeCode = 570
framesPerSecond = 24
metersPerUnit = 0.01
startTimeCode = 1
timeCodesPerSecond = 24
upAxis = "Y"
subLayers = [@./alab_splat.usda@]
)

def "camera" (
prepend references = @./camera.usda@</cameras>
)
{
}


602 changes: 602 additions & 0 deletions ALab/extras/camera.usda

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,19 @@ From the **Camera** > **Select Camera** menu, choose the required shot camera.

![select_cameras](docs/public/multiple_camera_prims.png)

## Splat Pack (WIP)
* This contains the ALab as a single gaussian splat in USD, using the new [Lightfields USD schema](https://openusd.org/release/user_guides/schemas/usdVol/ParticleField.html). We want to get an asset out to help with the testing and future development of particle fields in USD, starting with guassian splats!

Files currently in this pack:
- The original .ply file
- A .usdc file of the ALab Splat
- A .usda file of transformations to make the splat match up with ALab (this is temporary)
- The USD camera for the rendered images used to generate the splat

In order to successfully view the usdc file you will need to have buil the USD dev branch or wait for the 26.3 release, this includes the schema and renderer used here.

More details on how to test with this at the moment are [here in the docs](docs/src/pages/gaussianSplat.md)

# Contact & Feedback

We are proud to have been accepted into the [Academy Software Foundation Digital Production Example Library](https://dpel.aswf.io). As such we have moved further conversations to the [#assets-alab](https://academysoftwarefdn.slack.com/channels/C03S4QB8N04) slack channel.
Binary file added docs/public/ALab_splat_in_usdview.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/hou_21_sdr.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/nuke_17_sdr.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/public/splat_substance_viewer_screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
94 changes: 94 additions & 0 deletions docs/src/pages/gaussianSplat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@

# ALab Splat Pack Documentation

This is the initial version of the ALab as gaussian splats, to help support development and adoption of gaussian splats in USD.

The particleField UsdVol schema has now been merged into the dev branch, and will be available with USD 26.3

We wanted to make this available for early testers and hopefully as a tool to help refine the splat schema work.
If you're interested in getting involved with the development of the schema, you should join the [AOUSD Emerging Geometry Interest Group](https://aousd.org/community/interest-groups/#:~:text=VIEW%20CHARTER-,USD%20Emerging%20Geometry,-The%20USD%20Emerging)

#### Note: you will need to install the adobe usd file format plugins to be able to load .ply files
https://github.com/adobe/USD-Fileformat-plugins

## Steps to view the ALab usdc splat in usdview

1. Build the USD from the dev branch or USD 26.3

https://github.com/PixarAnimationStudios/OpenUSD/tree/dev

2. Ensure the PXR_PLUGINPATH_NAME is extended to include

share/usd/examples/plugin/hdParticleField/resources/plugInfo.json

3. Clone the DPEL ALab repo - OR - if you're just interested in the splat, you just need the files in the extras directory

Note that the splat files use git LFS - https://github.com/git-lfs/git-lfs

/ALab/tree/main/ALab/extras

5. The alab_sdr_splat.usdc and alab_hdr_splat.usdc files will have contents *like* this:

def ParticleField_3DGaussianSplat "alab"
{
float3[] extent = [(-4.2353315, -4.928282, -4.960755), (4.912536, 1.9337461, 1.628153)]
float[] opacities = << float[1502196] >>
quatf[] orientations = << GfQuatf[1502196] >>
point3f[] positions = << GfVec3f[1502196] >>
float3[] radiance:sphericalHarmonicsCoefficients = << GfVec3f[24035136] >> (
elementSize = 16
interpolation = "vertex"
)
uniform int radiance:sphericalHarmonicsDegree = 3
float3[] scales = << GfVec3f[1502196] >>
}

6. Launch USDView and set the renderer to hdParticleField

usdview ALab/ALab/extras/gaussian_splats_with_camera.usda

Now you should be able to open it in usdview like this:

![gif](../../public/ALab_splat_in_usdview.gif)

## Here's the SDR Splat in some other DCC

### Nuke 17 beta
![view](../../public/nuke_17_sdr.jpg)

### Houdini 21 beta
![view](../../public/hou_21_sdr.jpg)

## How was the first version of the splat created?

1. Used Houdini to do a quick ray cast setup test to try and define enough cameras to capture the majority of the scene (ending up with 570~ frames)
2. Rendered 1k*1k squares of the ALab using Glimpse (NAS's proprietary renderer) with those cameras- these files were acescg exrs
3. Converted these into .png (SDR and HDR variants)
4. Fed these into COLMAP to quickly get an input data format that would work with existing gsplat implementations
5. Used nerfstudio/gsplat implementation of 3dgs to splat with pretty standard settings for 30000 steps
6. The result of that training produces the original .ply file

## Colour Workflows!
Eventually we would like to train the ALab splat on acescg 16 half float or 32 bit exrs.

For the moment we have included SDR and HDR 8 bit png variants of the splat

- SDR: sRGB - ACES 2.0 - SDR 100 nits (Rec709) (8 bit png)
- HDR: Rec.2100-PQ - ACES-2.0 HDR 1000 nits (P3 D65 Limited) (8 bit png)

## Future plans

1. Train the splat using 16 bit half floating point acescg exrs
- Need a gaussian rasterizer to output 16 bit half float for the training
- colorspaceAPI wasn't part of the schema yet when we published this, but it's been suggested
- Clear documentation on the motivation and healthy acescg workflows

2. The lightrig used for this splat isn't the exact same lighting that is publicly available, so we're considering the best way forward.
3. We will be re-rendering and re-splatting at higher resolution once we decide on the lightrig to use
4. COLMAP was just a shortcut at the time, but we will be taking that out of the workflow eventually, which means you wouldn't need the transform adjustments in the usda
5. Ongoing work to decide the best production workflow colorspace to train splats in.
6. Splatting with different shape kernels, e.g. 2dgs, and triangles
7. Splatting with different falloffs besides gaussian
8. Animated Splats of Remi and the Stoat
9. Improve camera coverage for the hard to reach spots in the scene