feat(simulation): auto-build source mesh collision
This commit is contained in:
@@ -26,6 +26,7 @@ from k1link.simulation.gaussian_pipeline_gateway import (
|
||||
GaussianPipelineUnavailableError,
|
||||
configured_gaussian_pipeline_gateway,
|
||||
discover_gaussian_source_bundle,
|
||||
is_xgrids_source_mesh_path,
|
||||
)
|
||||
|
||||
PROJECT_SCHEMA: Final = "missioncore.simulation-project/v1"
|
||||
@@ -610,6 +611,22 @@ class SimulationProjectService:
|
||||
entrypoint=entrypoint,
|
||||
source_format=source_format,
|
||||
)
|
||||
source_mesh_available = any(
|
||||
is_xgrids_source_mesh_path(member.logical_path)
|
||||
for member in source.members
|
||||
)
|
||||
collision_profile = (
|
||||
{
|
||||
"scene_type": project["scene_type"],
|
||||
"seed_position": [0.0, 0.0, 0.0],
|
||||
"capsule_height": 0.4,
|
||||
"capsule_radius": 0.4,
|
||||
"voxel_size": 0.05,
|
||||
"mesh_shape": "source",
|
||||
}
|
||||
if source_mesh_available
|
||||
else None
|
||||
)
|
||||
request = {
|
||||
"schema_version": BUILD_REQUEST_SCHEMA,
|
||||
"idempotency_key": f"missioncore-{project_id}",
|
||||
@@ -617,10 +634,10 @@ class SimulationProjectService:
|
||||
"outputs": {
|
||||
"preview_sog": True,
|
||||
"streamed_sog": True,
|
||||
"collision": False,
|
||||
"collision": source_mesh_available,
|
||||
},
|
||||
"preview_lod": "coarsest",
|
||||
"collision_profile": None,
|
||||
"collision_profile": collision_profile,
|
||||
}
|
||||
submitted = provider.submit_build(request)
|
||||
job_id = submitted.get("job_id")
|
||||
|
||||
Reference in New Issue
Block a user