lab_v2
/ihub/homedirs/svs_ald/sudhir/real2sim/captures/session_20260901_180746work
/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2Video




Stages
10_pose — Pose
Camera poses from unposed images (VGGT / COLMAP / GLOMAP).
| backend | colmap |
|---|---|
| views | 8 |
| baseline_recon_units | 8.449 |
| points | 867 |
| has_depth | False |
| seconds | 9.400 |
| matcher | exhaustive |
| registered | 8 |
| requested | 8 |
| n_models | 1 |
| split_warning | False |
| sparse_points | 867 |
raw json
{
"backend": "colmap",
"views": 8,
"baseline_recon_units": 8.4488,
"points": 867,
"has_depth": false,
"seconds": 9.4,
"matcher": "exhaustive",
"registered": 8,
"requested": 8,
"n_models": 1,
"split_warning": false,
"sparse_points": 867
}20_scale — Metric scale
Converts the scale-free reconstruction to metres using the D455 depth map. This is what replaces Re3Sim's ArUco marker.
| backend | colmap |
|---|---|
| method | sparse_points |
| scale_m_per_unit | 0.211 |
| spread | 0.023 |
| verdict | consistent |
| frames_used | 1 |
| frames_total | 1 |
| baseline_m | 1.783 |
raw json
{
"backend": "colmap",
"method": "sparse_points",
"scale_m_per_unit": 0.21108233672992835,
"spread": 0.022845669051798717,
"verdict": "consistent",
"frames_used": 1,
"frames_total": 1,
"baseline_m": 1.783401260853507,
"per_frame": [
{
"scale": 0.21108233672992835,
"median_scale": 0.21134794175103508,
"n": 3452,
"rel_mad": 0.022845669051798717,
"trusted": true,
"method": "sparse_points"
}
]
}30_ground — Ground plane / world frame
Fits the table plane and builds a world frame with +Z up and the surface at z=0, so MuJoCo gravity and object placement mean something.
not run
40_mask — Robot mask
SAM3 text-prompted segmentation of the robot, which must be kept out of the background splat (MuJoCo renders it from the URDF).
not run
50_splat — Background splat
Gaussian splat trained on the masked images, initialised from the measured depth cloud rather than sparse SfM points.
| backend | gsplat |
|---|---|
| ply | /ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/50_splat/background.ply |
| n_gaussians | 600,000 |
| train_seconds | 448.500 |
| peak_vram_gb | 0.960 |
| iters | 7,000 |
| cap_max | 600,000 |
| sh_degree | 3 |
| init_points | 300,000 |
| train_views | 7 |
| masked | True |
| depth_weight | 0.500 |
| freespace_weight | 0.100 |
| n_views | 1 |
|---|---|
| lpips | 0.385 |
| psnr | 17.814 |
| ssim | 0.607 |
| bias_mm | -17.997 |
|---|---|
| inlier_frac_10mm | 0.106 |
| mean_abs_mm | 112.097 |
| median_abs_mm | 59.025 |
| n | 181,789.000 |
| p95_abs_mm | 355.947 |
| rms_mm | 223.266 |
| valid_frac | 0.710 |
raw json
{
"backend": "gsplat",
"ply": "/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/50_splat/background.ply",
"n_gaussians": 600000,
"train_seconds": 448.5,
"peak_vram_gb": 0.96,
"eval": {
"n_views": 1,
"lpips": 0.3848234713077545,
"psnr": 17.81375632588254,
"ssim": 0.6067019104957581,
"depth": {
"bias_mm": -17.996898340496514,
"inlier_frac_10mm": 0.10593050184554621,
"mean_abs_mm": 112.09723858564217,
"median_abs_mm": 59.024810791015625,
"n": 181789.0,
"p95_abs_mm": 355.94739913940447,
"rms_mm": 223.26620945331206,
"valid_frac": 0.71011328125
}
},
"iters": 7000,
"cap_max": 600000,
"sh_degree": 3,
"init_points": 300000,
"train_views": 7,
"masked": true,
"depth_weight": 0.5,
"freespace_weight": 0.1
}60_mesh — Static geometry
TSDF fusion of the depth maps into a mesh with real measured thickness, plus convex parts for collision.
| visual_mesh | /ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/static.obj |
|---|---|
| views_fused | 8 |
| label | support |
| voxel_m | 0.005 |
| vertices | 55,260 |
| faces | 99,501 |
raw json
{
"visual_mesh": "/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/static.obj",
"views_fused": 8,
"label": "support",
"seat_slab": {
"centre": [
-0.02753481009643549,
0.155,
0.6523519083180233
],
"half_extent": [
0.2199651899035645,
0.2225,
0.02
]
},
"voxel_m": 0.005,
"vertices": 55260,
"faces": 99501,
"extent_m": [
0.528844455927069,
0.5688891211162406,
0.7020732835476742
],
"collision_parts": [
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_000.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_001.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_002.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_003.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_004.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_005.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_006.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_007.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_008.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_009.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_010.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_011.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_012.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_013.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_014.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_015.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_016.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_017.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_018.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_019.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_020.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_021.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_022.obj",
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/60_mesh/collision/part_023.obj"
]
}70_objects — Objects
Per-object mesh and physics. Mass is hand-tuned; inertia follows from the mesh at that mass.
| object | size (cm) | mass | parts | watertight |
|---|---|---|---|---|
| green cup | 20.0 x 16.7 x 25.4 | 0.15 kg | 1 | True |
| small bottle | 11.5 x 9.4 x 16.8 | 0.3 kg | 1 | False |
raw json
{
"objects": [
{
"name": "green cup",
"slug": "green_cup",
"mesh": "/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/70_objects/green_cup/mesh.obj",
"collision_parts": [
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/70_objects/green_cup/collision/hull.obj"
],
"position": [
-0.016382989997952,
0.07750294579513561,
0.7707729848436063
],
"mass_kg": 0.15,
"friction": 1.0,
"com": [
-0.015660912607581505,
-0.006785399262649235,
-0.0201965142355957
],
"inertia": [
[
0.0007908505742181527,
-6.070527154578289e-05,
-0.00015651043702924827
],
[
-6.070527154578289e-05,
0.0008493387267219038,
-4.365015817495558e-05
],
[
-0.00015651043702924827,
-4.365015817495558e-05,
0.00042615898458198294
]
],
"extents_m": [
0.1996621,
0.16714489999999999,
0.254438
],
"watertight": true,
"single_view_extents_m": [
0.08776857976012052,
0.08745041733004033,
0.1928439028584596
],
"merge_inflation": 1.9113104900253413,
"n_points": 39523,
"mode": "in_scene"
},
{
"name": "small bottle",
"slug": "small_bottle",
"mesh": "/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/70_objects/small_bottle/mesh.obj",
"collision_parts": [
"/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/70_objects/small_bottle/collision/hull.obj"
],
"position": [
-0.06686909916851103,
0.2763267989502063,
0.7142762481554252
],
"mass_kg": 0.3,
"friction": 1.0,
"com": [
0.01918599437086801,
-0.02354451712883716,
0.06034538072290146
],
"inertia": [
[
-0.0007544934420253513,
-0.00017985388234106165,
0.00042241465973592656
],
[
-0.00017985388234106165,
-0.0004997210064117483,
-0.00038089516238770123
],
[
0.00042241465973592656,
-0.00038089516238770123,
-0.0001857729819577093
]
],
"extents_m": [
0.1154804,
0.094484,
0.1679716
],
"watertight": false,
"single_view_extents_m": [
0.03664423932767006,
0.03784992066145032,
0.09917739052503571
],
"merge_inflation": 2.49628000135363,
"n_points": 8711,
"mode": "in_scene"
}
]
}80_scene — MuJoCo scene
Assembles the MJCF: static geometry, objects, cameras at the real capture poses, robot.
| xml | /ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/80_scene/scene.xml |
|---|---|
| bodies | 4 |
| geoms | 31 |
| nq | 14 |
| cameras | 8 |
| objects | 2 |
| collision_parts | 24 |
| compiles | True |
raw json
{
"xml": "/ihub/homedirs/svs_ald/sudhir/real2sim/work/lab_v2/80_scene/scene.xml",
"bodies": 4,
"geoms": 31,
"nq": 14,
"cameras": 8,
"objects": 2,
"collision_parts": 24,
"compiles": true
}90_verify — Verification vs real photographs
Renders the sim, composites the splat behind it, and diffs against the actual photograph from that pose. The end-to-end check.
| views | 3 |
|---|---|
| splat | True |
| frame | 3.000 |
|---|---|
| lpips | 0.237 |
| psnr | 19.234 |
| sim_pixel_frac | 0.085 |
| ssim | 0.775 |
raw json
{
"summary": {
"frame": 3.0,
"lpips": 0.2368802030881246,
"psnr": 19.2338222454058,
"sim_pixel_frac": 0.08511718750000001,
"ssim": 0.7750827074050903
},
"per_view": [
{
"psnr": 16.275255065798802,
"ssim": 0.5468048453330994,
"lpips": 0.43973368406295776,
"frame": 0,
"sim_pixel_frac": 0.0768828125
},
{
"psnr": 21.91877127581748,
"ssim": 0.9004730582237244,
"lpips": 0.10499389469623566,
"frame": 3,
"sim_pixel_frac": 0.08189453125
},
{
"psnr": 19.507440394601115,
"ssim": 0.8779702186584473,
"lpips": 0.16591303050518036,
"frame": 6,
"sim_pixel_frac": 0.09657421875
}
],
"views": 3,
"splat": true
}

