Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
6b3ece5
Fix broken link
matthewlow-dwa Jul 19, 2024
f287dd4
feat: [WTT-631] fix anchor links
ratelChief Jul 19, 2024
0db7ed9
feat: [WTT-631] revert the links
ratelChief Jul 22, 2024
3b5d89d
feat: [WTT-631] update links on the main
ratelChief Jul 23, 2024
4c8d4c7
Remove references to previous release changes
chrizzFTD Jul 23, 2024
6deaf91
Rebrand Animal Logic to Netflix Animation Studios
matthewlow-dwa Jul 10, 2025
c262e2e
Update title image
matthewlow-dwa Aug 4, 2025
04f65a8
Utility script to download and install asset packages
semagnum Sep 25, 2025
c750377
Create gaussianSplat.md
akhil-mitt Nov 29, 2025
c6e0d8d
Update README.md
akhil-mitt Nov 29, 2025
f14b6ff
Add files via upload
akhil-mitt Nov 30, 2025
f41f323
Delete docs/public/ALab_splat_in_usdview.mp4
akhil-mitt Nov 30, 2025
d4a23dd
Add files via upload
akhil-mitt Nov 30, 2025
b607efd
Update README.md
akhil-mitt Nov 30, 2025
6dd1a11
First preview of ALab as Gaussian Splats
chrizzFTD Nov 13, 2025
f8ccab4
Camera used to render the ALab for splats training
chrizzFTD Nov 13, 2025
e131c0e
Temporary transform to adjust the ALab splats for A/B comparison with…
chrizzFTD Nov 13, 2025
c3f3058
Optional entry point for camera + gsplats
chrizzFTD Nov 13, 2025
2129dc6
Add variant for ply and usd gaussian splat file format
chrizzFTD Nov 22, 2025
d0194ec
adding usd version of alab splats
chrizzFTD Nov 27, 2025
75e60d8
adding usd version of alab splats
chrizzFTD Nov 27, 2025
f148882
Update gaussianSplat.md
akhil-mitt Nov 30, 2025
1afa1c3
Add files via upload
akhil-mitt Dec 2, 2025
237e837
Update gaussianSplat.md
akhil-mitt Dec 2, 2025
5ce19b1
Update gaussianSplat.md
akhil-mitt Dec 2, 2025
2e38424
Update gaussianSplat.md
akhil-mitt Dec 3, 2025
1ec6123
Update gaussianSplat.md
akhil-mitt Dec 9, 2025
2e21943
Update gaussianSplat.md
akhil-mitt Dec 9, 2025
d712dcb
commit for the composition files without the new splat and ply files
akhil-mitt Dec 16, 2025
f0c409e
Track large files with Git LFS
akhil-mitt Dec 16, 2025
cb07d62
hdr splat usdc
akhil-mitt Dec 16, 2025
0ef7696
sdr splat ply
akhil-mitt Dec 16, 2025
22170e9
sdr splat usdc
akhil-mitt Dec 16, 2025
40ccf65
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
f391669
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
377caa2
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
687cf0c
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
fa187a0
Update gaussianSplat.md
akhil-mitt Jan 13, 2026
7140835
Add files via upload
akhil-mitt Jan 16, 2026
cde1e2f
Update gaussianSplat.md
akhil-mitt Jan 16, 2026
72346a4
Update gaussianSplat.md
akhil-mitt Jan 16, 2026
32a37f5
Add files via upload
akhil-mitt Jan 16, 2026
4ca78dc
Update aLab_splat.usda
akhil-mitt Jan 16, 2026
958252b
Delete ALab/extras/sdr_variant.usda
akhil-mitt Jan 16, 2026
18c9504
Delete ALab/extras/hdr_variant.usda
akhil-mitt Jan 16, 2026
5360162
Update gaussianSplat.md
akhil-mitt Jan 21, 2026
886e9ec
Update aLab_splat.usda
akhil-mitt Jan 23, 2026
8c4db96
Rename aLab_hdr_splat.ply to alab_hdr_splat.ply
akhil-mitt Jan 26, 2026
5689eca
Rename aLab_hdr_splat.usdc to alab_hdr_splat.usdc
akhil-mitt Jan 26, 2026
f994d27
Rename aLab_sdr_splat.ply to alab_sdr_splat.ply
akhil-mitt Jan 26, 2026
eb59886
Rename aLab_sdr_splat.usdc to alab_sdr_splat.usdc
akhil-mitt Jan 26, 2026
2e3fe19
Update and rename aLab_splat.usda to alab_splat.usda
akhil-mitt Jan 26, 2026
fdc8241
Rename aLab_splat_with_camera.usda to alab_splat_with_camera.usda
akhil-mitt Jan 26, 2026
8dcd100
Update alab_splat_with_camera.usda
akhil-mitt Jan 29, 2026
055bc13
Update gaussianSplat.md
akhil-mitt Feb 8, 2026
f5d0dfe
Updated the usdc files after converting using USD dev branch build wi…
akhil-mitt Feb 9, 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.

4 changes: 2 additions & 2 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
ASWF Digital Assets License v1.1

License for Animal Logic ALab (the "Asset Name").
License for Netflix Animation Studios ALab (the "Asset Name").

Animal Logic ALab Copyright 2024 Animal Logic Pty Limited. All rights reserved.
Netflix Animation Studios ALab Copyright 2025 Netflix, Inc. All rights reserved.

Redistribution and use of these digital assets, with or without modification, solely for education, training, research, software and hardware development, performance benchmarking (including publication of benchmark results and permitting reproducibility of the benchmark results by third parties), or software and hardware product demonstrations, are permitted provided that the following conditions are met:

Expand Down
29 changes: 21 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
![Glimpse](docs/public/doc_header.jpg)
![Glimpse](docs/public/doc_header.png)


# Introduction

Welcome to Animal Logic's USD [ALab](https://animallogic.com/alab/).
Welcome to Netflix Animation Studios' USD [ALab](https://animallogic.com/alab/).

**TL;DR:** [Download ALab](https://dpel.aswf.io/alab/) and open `entry.usda` to get started.

Expand All @@ -12,24 +12,24 @@ Applications with USD support, such as Maya-2022+, Houdini-18.5+ and many more s
For quick preview and inspection, [`USDView`](https://graphics.pixar.com/usd/docs/USD-Toolset.html#USDToolset-usdview) is a great starting point.


| Glimpse (AL proprietary) | Houdini (Karma) | Maya (VP2/render purpose) | UsdView (Storm/render purpose) |
| Glimpse (NAS proprietary) | Houdini (Karma) | Maya (VP2/render purpose) | UsdView (Storm/render purpose) |
| ---------------------------- | --------------- | ------------------ | ------------------------ |
|![Glimpse](docs/public/glimpse_phase2.png)|![Houdini screenshot](docs/public/houdini_phase2.png)|![Maya 2022 screenshot](docs/public/maya_phase2.png)|![UsdView (render purpose)](docs/public/usdview_phase2.png)|


# Documentation

- [Documentation](docs/src/pages/documentation.md) - File structure layout and asset documentation.
- [AL-specific content](docs/src/pages/alSpecific.md) - Animal Logic specific concepts, which we love, but had to remove from ALab to ensure ease of use and compatibility.
- [NAS-specific content](docs/src/pages/nasSpecific.md) - Netflix Animation Studios specific concepts, which we love, but had to remove from ALab to ensure ease of use and compatibility.
- [Changelog](docs/src/pages/changelog.md) - List of all the updates from the latest versions of ALab.


# About ALab
The ALab data set is the Animal Logic interpretation and implementation of real-world production and pipeline concepts in USD.
Originally released in 2021 by Animal Logic, the ALab data set is the Netflix Animation Studios interpretation and implementation of real-world production and pipeline concepts in USD.

It includes over 300 fully surfaced assets derived from an internally produced project, rather than created from scratch as a "USD reference implementation." It consequently exhibits the complexities (and some of the messiness) of real production assets. If one were to build a USD structure for the sole purpose of showcasing USD, it would lead to a different result.

The `entry.usda` `stage` places you in a shot with a structure similar to how we use it at Animal Logic. Since no shot is complete without animation, included are two animated characters, each with some level of proceduralism. Due to this proceduralism requiring some custom `schemas` for our internal Glimpse renderer, we have provided a hint on what these procedurals create in a separate `baked_procedurals` package. This is the "cached" content that would be sent to the renderer per-frame.
The `entry.usda` `stage` places you in a shot with a structure similar to how we use it at Netflix Animation Studios. Since no shot is complete without animation, included are two animated characters, each with some level of proceduralism. Due to this proceduralism requiring some custom `schemas` for our internal Glimpse renderer, we have provided a hint on what these procedurals create in a separate `baked_procedurals` package. This is the "cached" content that would be sent to the renderer per-frame.

For “production style rendering” we also provide an additional package `texture_pack` with multi UDIM, mipmapped 4K OpenEXR textures.

Expand All @@ -38,7 +38,7 @@ Refer below to the `Available Packages` section for more information on these.
We hope that this is the starting point for future contributions to showcase new ideas for discussion, promotion, and hopefully adoption.


## Why did Animal Logic create these assets?
## Why did Netflix Animation Studios create these assets?
We created them to be used *internally*, primarily to provide client-free IP data for:
- Training of Developers, TDs and Artists
- Discussion Reference ("something to point at")
Expand Down Expand Up @@ -100,7 +100,7 @@ After merging, your contents from the `baked_procedurals` folder should look lik

![replace_texture_pack](docs/public/baked_procedurals.jpg)

Refer to the `Render Procedurals` section from [AL-specific content](docs/src/pages/alSpecific.md) for more details on this.
Refer to the `Render Procedurals` section from [NAS-specific content](docs/src/pages/nasSpecific.md) for more details on this.

## Texture Pack
* 4k texture maps, half float mipmapped OpenEXR images in ACEScg colour space.
Expand All @@ -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/upcoming [Lightfields USD schema](https://github.com/PixarAnimationStudios/OpenUSD/pull/3716). It is a WIP, but we wanted to get a test branch out for people to start iterating on and to help push forward collaboration on the schema and refining this DPEL asset.

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 built usd with [this branch](https://github.com/PixarAnimationStudios/OpenUSD/pull/3716) for the schema and usdview renderer.

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 removed docs/public/doc_header.jpg
Binary file not shown.
Binary file added docs/public/doc_header.png
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.
Loading