Buckets:

rydlrKE's picture
download
raw
1.39 kB
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
"""Factory helpers for building predefined skeleton variants."""
from pathlib import Path
from kimodo.assets import SKELETONS_ROOT
from .definitions import (
G1Skeleton34,
SMPLXSkeleton22,
SOMASkeleton30,
SOMASkeleton77,
)
def build_skeleton(nbjoints: int, assets_folder: str | Path = SKELETONS_ROOT):
"""Instantiate a known skeleton class from its joint count.
Supported joint counts: 30 (SOMA compact), 34 (G1), 77 (SOMA full), 22 (SMPLX).
Args:
nbjoints: Number of joints expected in the skeleton representation.
assets_folder: Base skeleton-assets directory containing per-skeleton subfolders.
Returns:
A configured `SkeletonBase` subclass instance.
Raises:
ValueError: If `nbjoints` does not match a registered skeleton.
"""
assets_folder = Path(assets_folder)
if nbjoints == 34:
return G1Skeleton34(assets_folder / "g1skel34")
elif nbjoints == 22:
return SMPLXSkeleton22(assets_folder / "smplx22")
elif nbjoints == 30:
return SOMASkeleton30(assets_folder / "somaskel30")
elif nbjoints == 77:
return SOMASkeleton77(assets_folder / "somaskel77")
else:
raise ValueError("This skeleton is not recognized.")

Xet Storage Details

Size:
1.39 kB
·
Xet hash:
fff26f610c443850897f92b8226ee254464bc3a59c1cff4ec289c504b29e5c00

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.