Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
05fdcbe
Add typhon model arch.
coreyjadams Dec 1, 2025
7a473e5
Add typhon example configs.
coreyjadams Dec 1, 2025
c0983f8
Enable typhon to work with multiple streams of data.
coreyjadams Dec 2, 2025
da69cb6
Clean up configs and attempt to remove duplications
coreyjadams Dec 2, 2025
025b843
Enable surface / volume combined training.
coreyjadams Dec 2, 2025
fe60296
deprecate old files
coreyjadams Dec 2, 2025
341343e
typhon bq changes
RishikeshRanade Dec 2, 2025
561ede5
adding bq to combined pipeline (being validated)
Dec 4, 2025
9575c86
updating typhon model, removing combined and new typhon example
Dec 6, 2025
158376d
updating transolver recipe configs
Dec 6, 2025
ae9e5b3
fixing errors in inference_on_zarr and compute_norms
Dec 8, 2025
c7b92a5
Starting to add tests to Typhon with BQ. Not yet fully functional.
coreyjadams Dec 8, 2025
5035fdb
Add tests for typhon model
coreyjadams Dec 8, 2025
3935234
More robust attributes
coreyjadams Dec 8, 2025
22177f8
Add runtime error passing too
coreyjadams Dec 8, 2025
1e41e42
Remove printout
coreyjadams Dec 8, 2025
f420242
combining typhon/transolver to transformer models and cleaning up inf…
Dec 10, 2025
55ab1eb
Refactor typhon to improve readability and maintainability of BW path
coreyjadams Dec 10, 2025
828ed7d
Snapshot before integrating BQ
coreyjadams Dec 8, 2025
fc2e56d
Fix data dir name for transformer model configs
coreyjadams Dec 10, 2025
da6b710
fix minor bugs
Dec 10, 2025
e08f243
minor bug fix
Dec 10, 2025
8308a7a
fixing bug in val_epoch
Dec 10, 2025
6422a66
fixing minor bug in inference_on_zarr
Dec 11, 2025
9e0bcc0
Rename to geotransolver
coreyjadams Dec 19, 2025
5bc5375
Rename and add inference script
coreyjadams Dec 19, 2025
d1780b3
Merge branch 'NVIDIA:main' into geotransolver
coreyjadams Dec 22, 2025
4a09881
Merge branch 'main' into geotransolver
coreyjadams Dec 23, 2025
d2d6172
Fix precommit
coreyjadams Dec 23, 2025
75997a2
Update geotransolver naming
coreyjadams Jan 2, 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

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,6 @@ def compute_mean_std_min_max(

# Update running mean and M2 (Welford's algorithm)
delta = batch_mean - mean
N += batch_n
mean = mean + delta * (batch_n / N)
M2 = M2 + batch_M2 + delta**2 * (batch_n * N) / N
time_end = time.time()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Paths to your data:
train:
data_path: /lustre/fsw/portfolios/coreai/projects/coreai_modulus_cae/datasets/drivaer_aws/domino/train/
val:
data_path: /lustre/fsw/portfolios/coreai/projects/coreai_modulus_cae/datasets/drivaer_aws/domino/val/

# You can set a normalization factor directory:
normalization_dir: "src/"

# How many events in advance should we be preloading?
preload_depth: 1

# Pin memory for GPU transfers?
pin_memory: true

# Sampling resolution of the point clouds:
resolution: 200_000

# Surface / Volume / (combined, if supported)
mode: ???

# For building embeddings: include normal directions for each point?
include_normals: true
# Include SDF? (It's 0 for surface data...)
include_sdf: true
# Apply translation invariance via center-of-mass subtraction?
translational_invariance: true
# Rescale x/y/z inputs to the model for scale invariance?
scale_invariance: true
reference_scale: [12.0, 4.5, 3.25]

# Which parts of the data files to read? No need to read everything, all the time.
data_keys: ???

# Load and return the STL geometry info in the dataloader?
include_geometry: false

# Broadcast global features to the same resolution as points?
broadcast_global_features: true

# Return the mesh areas and normals? You don't usually want this for training.
# We switch it on automatically for inference.
return_mesh_features: false

Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

defaults:
- core

# Overrides for surface data:
mode: surface

# Surface-speficic needs:
data_keys:
- "surface_fields"
- "surface_mesh_centers"
- "surface_normals"
- "surface_areas"
- "stl_faces"
- "stl_centers"
- "stl_coordinates"
- "air_density"
- "stream_velocity"
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# You may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

defaults:
- core

# Overrides for volume data:
mode: volume

# volume-specific needs:
data_keys:
- "volume_fields"
- "volume_mesh_centers"
- "stl_faces"
- "stl_centers"
- "stl_coordinates"

Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

defaults:
- training: base
- model: geotransolver
- data: surface

output_dir: "runs"
checkpoint_dir: null # Optional: set custom checkpoint path, defaults to output_dir
run_id: "geotransolver/surface/bq"

# Performance considerations:
precision: float32 # float32, float16, bfloat16, or float8
compile: true
profile: false

model:
functional_dim: 6
include_local_features: true # use local features
radii: [0.01, 0.05, 0.25, 1.0, 2.5, 5.0] # radius for local features
neighbors_in_radius: [4, 8, 16, 64, 128, 256] # neighbors in radius for local features
n_hidden_local: 32 # hidden dimension for local features

data:
include_sdf: false
include_geometry: true
geometry_sampling: 300_000
broadcast_global_features: true


# Logging configuration
logging:
level: INFO
format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

defaults:
- training: base
- model: geotransolver
- data: volume

output_dir: "runs"
checkpoint_dir: null # Optional: set custom checkpoint path, defaults to output_dir
run_id: "geotransolver/volume/bq"

# Performance considerations:
precision: float32 # float32, float16, bfloat16, or float8
compile: true
profile: false

data:
include_geometry: true
geometry_sampling: 300_000
broadcast_global_features: false
volume_sample_from_disk: true


model:
functional_dim: 7
out_dim: 5
include_local_features: true # use local features
radii: [0.01, 0.05, 0.25, 1.0, 2.5, 5.0] # radius for local features
neighbors_in_radius: [4, 8, 16, 64, 128, 256] # neighbors in radius for local features
n_hidden_local: 32 # hidden dimension for local features

# Logging configuration
logging:
level: INFO
format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

_target_: physicsnemo.experimental.models.geotransolver.GeoTransolver
functional_dim: 6
global_dim: 2
geometry_dim: 3
out_dim: 4
n_layers: 20
n_hidden: 256
dropout: 0.0
n_head: 8
act: "gelu"
mlp_ratio: 2
slice_num: 128
use_te: false
plus: false
include_local_features: true # use local features
radii: [0.05, 0.25, 1.0, 2.5] # radius for local features
neighbors_in_radius: [8, 32, 64, 128] # neighbors in radius for local features
n_hidden_local: 32 # hidden dimension for local features

Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

_target_: physicsnemo.models.transolver.Transolver
functional_dim: 2
out_dim: 4
embedding_dim: 6
n_layers: 8
n_hidden: 256
dropout: 0.0
n_head: 8
act: "gelu"
mlp_ratio: 2
slice_num: 512
unified_pos: false
ref: 8
structured_shape: null
use_te: false
time_input: false
plus: false

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

num_epochs: 501
save_interval: 25

scheduler:
name: "StepLR"
params:
step_size: 100
gamma: 0.5

optimizer:
_target_: torch.optim.AdamW
lr: 1.0e-3
weight_decay: 1.0e-4
betas: [0.9, 0.999]
eps: 1.0e-8

Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# SPDX-FileCopyrightText: Copyright (c) 2023 - 2025 NVIDIA CORPORATION & AFFILIATES.
# SPDX-FileCopyrightText: All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

defaults:
- training: base
- model: transolver
- data: surface

output_dir: "runs"
checkpoint_dir: null # Optional: set custom checkpoint path, defaults to output_dir
run_id: "surface/float32"

# Performance considerations:
precision: float32 # float32, float16, bfloat16, or float8
compile: true
profile: false

data:
include_sdf: false

# Logging configuration
logging:
level: INFO
format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'

Loading
Loading