trenchfoot 0.4.1__tar.gz → 0.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/CHANGELOG.md +31 -0
  2. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/PKG-INFO +1 -1
  3. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/metrics.json +2 -2
  4. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/trench_scene.obj +2 -2
  5. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/metrics.json +2 -2
  6. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/trench_scene.obj +2 -2
  7. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/metrics.json +8 -8
  8. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/scene.json +3 -3
  9. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/trench_scene.obj +9718 -9718
  10. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/metrics.json +12 -12
  11. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/scene.json +1 -1
  12. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/trench_scene.obj +14662 -14662
  13. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S05_wide_slope_pair/metrics.json +6 -6
  14. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S05_wide_slope_pair/scene.json +3 -3
  15. trenchfoot-0.4.3/packages/trenchfoot/scenarios/S05_wide_slope_pair/trench_scene.obj +28818 -0
  16. trenchfoot-0.4.3/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/metrics.json +45 -0
  17. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/scene.json +6 -1
  18. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/trench_scene.obj +12825 -12841
  19. trenchfoot-0.4.3/packages/trenchfoot/scenarios/S07_circular_well/metrics.json +49 -0
  20. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S07_circular_well/scene.json +14 -14
  21. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S07_circular_well/trench_scene.obj +21450 -21470
  22. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/SUMMARY.json +26 -54
  23. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/trench_scene_generator_v3.py +677 -37
  24. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/pyproject.toml +1 -1
  25. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/tests/test_trenchfoot_generation.py +387 -0
  26. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/uv.lock +1 -1
  27. trenchfoot-0.4.1/packages/trenchfoot/scenarios/S05_wide_slope_pair/trench_scene.obj +0 -28818
  28. trenchfoot-0.4.1/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/metrics.json +0 -43
  29. trenchfoot-0.4.1/packages/trenchfoot/scenarios/S07_circular_well/metrics.json +0 -48
  30. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/.github/workflows/ci.yml +0 -0
  31. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/.gitignore +0 -0
  32. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/CLAUDE.md +0 -0
  33. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/LICENSE +0 -0
  34. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/Makefile +0 -0
  35. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/README.md +0 -0
  36. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/STATUS.md +0 -0
  37. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/docs/scenario_gallery.md +0 -0
  38. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/__init__.py +0 -0
  39. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/Dockerfile +0 -0
  40. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/README.md +0 -0
  41. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/__init__.py +0 -0
  42. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/generate_scenarios.py +0 -0
  43. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/gmsh_sloped_trench_mesher.py +0 -0
  44. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/plot_mesh.py +0 -0
  45. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/render_colors.py +0 -0
  46. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/ground_truth_isosurface.html +0 -0
  47. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/meshes/trench_scene_culled.obj +0 -0
  48. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/point_clouds/culled/resolution0p050.pth +0 -0
  49. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/point_clouds/full/resolution0p050.pth +0 -0
  50. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview.png +0 -0
  51. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_oblique.png +0 -0
  52. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_side.png +0 -0
  53. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_top.png +0 -0
  54. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/scene.json +0 -0
  55. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/sdf_metadata.json +0 -0
  56. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S01_straight_vwalls/volumetric/trench_volume.msh +0 -0
  57. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/ground_truth_isosurface.html +0 -0
  58. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/meshes/trench_scene_culled.obj +0 -0
  59. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/point_clouds/culled/resolution0p050.pth +0 -0
  60. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/point_clouds/full/resolution0p050.pth +0 -0
  61. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview.png +0 -0
  62. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_oblique.png +0 -0
  63. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_side.png +0 -0
  64. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_top.png +0 -0
  65. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/scene.json +0 -0
  66. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/sdf_metadata.json +0 -0
  67. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/volumetric/trench_volume.msh +0 -0
  68. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/ground_truth_isosurface.html +0 -0
  69. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/meshes/trench_scene_culled.obj +0 -0
  70. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/point_clouds/culled/resolution0p050.pth +0 -0
  71. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/point_clouds/full/resolution0p050.pth +0 -0
  72. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview.png +0 -0
  73. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_oblique.png +0 -0
  74. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_side.png +0 -0
  75. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_top.png +0 -0
  76. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/sdf_metadata.json +0 -0
  77. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/volumetric/trench_volume.msh +0 -0
  78. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/ground_truth_isosurface.html +0 -0
  79. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/meshes/trench_scene_culled.obj +0 -0
  80. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview.png +0 -0
  81. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_oblique.png +0 -0
  82. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_side.png +0 -0
  83. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_top.png +0 -0
  84. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/sdf_metadata.json +0 -0
  85. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/volumetric/trench_volume.msh +0 -0
  86. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S05_wide_slope_pair/ground_truth_isosurface.html +0 -0
  87. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_oblique.png +0 -0
  88. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_side.png +0 -0
  89. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_top.png +0 -0
  90. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S05_wide_slope_pair/sdf_metadata.json +0 -0
  91. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S05_wide_slope_pair/volumetric/trench_volume.msh +0 -0
  92. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/ground_truth_isosurface.html +0 -0
  93. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_oblique.png +0 -0
  94. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_side.png +0 -0
  95. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_top.png +0 -0
  96. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/sdf_metadata.json +0 -0
  97. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/volumetric/trench_volume.msh +0 -0
  98. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S07_circular_well/ground_truth_isosurface.html +0 -0
  99. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S07_circular_well/preview_oblique.png +0 -0
  100. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S07_circular_well/preview_side.png +0 -0
  101. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S07_circular_well/preview_top.png +0 -0
  102. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S07_circular_well/sdf_metadata.json +0 -0
  103. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scenarios/S07_circular_well/volumetric/trench_volume.msh +0 -0
  104. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/packages/trenchfoot/scene_spec_example.json +0 -0
  105. {trenchfoot-0.4.1 → trenchfoot-0.4.3}/tests/test_sdf_readiness.py +0 -0
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.3] - 2026-01-30
4
+
5
+ ### Fixed
6
+ - Regenerated bundled scenario meshes with truncation fix (0.4.2 shipped stale OBJ files)
7
+
8
+ ## [0.4.2] - 2026-01-29
9
+
10
+ ### Added
11
+ - **Embedded object truncation**: Pipes, boxes, and spheres that extend beyond trench boundaries are now automatically truncated or shrunk to fit within the trench void:
12
+ - **Pipes**: Truncated at walls/floor with angled elliptical caps matching the intersection plane
13
+ - **Boxes**: Dimensions shrunk to fit within available space
14
+ - **Spheres**: Radius reduced to fit within available space
15
+ - **New helper functions** for trench boundary computation:
16
+ - `_find_trench_frame_at_xy()`: Find local trench coordinate frame at any XY position
17
+ - `_compute_pipe_truncation()`: Binary search for where pipe exits trench
18
+ - `_compute_cap_plane_at_truncation()`: Determine wall/floor plane at intersection
19
+ - `_compute_box_fit()`: Calculate shrunk box dimensions
20
+ - `_compute_sphere_fit()`: Calculate shrunk sphere radius
21
+ - **Extended `make_cylinder()`**: Now supports asymmetric extents (`neg_extent`, `pos_extent`) and angled cap planes (`cap_plane_neg`, `cap_plane_pos`)
22
+ - **New tests** for truncation functionality:
23
+ - `test_pipe_truncation_at_wall`
24
+ - `test_pipe_truncation_at_floor`
25
+ - `test_pipe_angled_cap_geometry`
26
+ - `test_box_shrink_to_fit`
27
+ - `test_sphere_shrink_to_fit`
28
+ - `test_no_vertices_outside_trench`
29
+
30
+ ### Fixed
31
+ - Long pipes in S07 circular well no longer protrude through trench walls
32
+ - Oversized embedded objects no longer extend outside trench geometry
33
+
3
34
  ## [0.4.1] - 2026-01-28
4
35
 
5
36
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trenchfoot
3
- Version: 0.4.1
3
+ Version: 0.4.3
4
4
  Summary: Synthetic trench scenario generator bundle (surfaces + volumetrics).
5
5
  Author: Liam Moore
6
6
  License-File: LICENSE
@@ -13,8 +13,8 @@
13
13
  ]
14
14
  },
15
15
  "volumes": {
16
- "trench_from_surface": -1.0,
17
- "trench_flux_integral_div1": -1.0
16
+ "trench_from_surface": -3.0,
17
+ "trench_flux_integral_div1": -3.0
18
18
  },
19
19
  "footprint_area_top": 5.0,
20
20
  "footprint_area_bottom": 5.0,
@@ -3,8 +3,8 @@ v 0 -0.5 -0.6
3
3
  v 5 -0.5 -0.6
4
4
  v 5 0.5 -0.6
5
5
  v 0 0.5 -0.6
6
- f 2 1 4
7
- f 4 3 2
6
+ f 4 1 2
7
+ f 2 3 4
8
8
  g trench_walls
9
9
  v 0 -0.5 0
10
10
  v 5 -0.5 0
@@ -16,8 +16,8 @@
16
16
  ]
17
17
  },
18
18
  "volumes": {
19
- "trench_from_surface": -2.484000000000001,
20
- "trench_flux_integral_div1": -2.484000000000001
19
+ "trench_from_surface": -5.508,
20
+ "trench_flux_integral_div1": -5.508000000000001
21
21
  },
22
22
  "footprint_area_top": 7.199999999999999,
23
23
  "footprint_area_bottom": 5.039999999999999,
@@ -3,8 +3,8 @@ v 0 -0.42 -0.9
3
3
  v 6 -0.42 -0.9
4
4
  v 6 0.42 -0.9
5
5
  v 0 0.42 -0.9
6
- f 2 1 4
7
- f 4 3 2
6
+ f 4 1 2
7
+ f 2 3 4
8
8
  g trench_walls
9
9
  v 0 -0.6 0
10
10
  v 6 -0.6 0
@@ -4,13 +4,13 @@
4
4
  "trench_cap_for_volume": 11.999999999999995,
5
5
  "trench_walls": 24.52316671923435,
6
6
  "ground_surface": 32.64,
7
- "pipe0_pipe_side": 7.538476682137222,
7
+ "pipe0_pipe_side": 6.407116236325851,
8
8
  "pipe0_pipe_cap_neg": 0.07063537956855451,
9
- "pipe0_pipe_cap_pos": 0.07063537956855451,
10
- "pipe1_pipe_side": 3.1410319508905107,
11
- "pipe1_pipe_cap_neg": 0.03139350203046867,
12
- "pipe1_pipe_cap_pos": 0.03139350203046867,
13
- "box0": 1.8400000000000012
9
+ "pipe0_pipe_cap_pos": 0.071425607283709,
10
+ "pipe1_pipe_side": 0.47390319559060545,
11
+ "pipe1_pipe_cap_neg": 0.03174471434831514,
12
+ "pipe1_pipe_cap_pos": 0.031744714348315134,
13
+ "box0": 0.5900000000000003
14
14
  },
15
15
  "closed_surface_sets": {
16
16
  "trench_closed_groups": [
@@ -20,8 +20,8 @@
20
20
  ]
21
21
  },
22
22
  "volumes": {
23
- "trench_from_surface": -5.0179228990454625,
24
- "trench_flux_integral_div1": -5.017922899045459
23
+ "trench_from_surface": -11.39792289904546,
24
+ "trench_flux_integral_div1": -11.397922899045458
25
25
  },
26
26
  "footprint_area_top": 11.999999999999995,
27
27
  "footprint_area_bottom": 8.700070386125077,
@@ -45,9 +45,9 @@
45
45
  ],
46
46
  "boxes": [
47
47
  {
48
- "along": 0.8,
49
- "across": 0.5,
50
- "height": 0.4,
48
+ "along": 0.4,
49
+ "across": 0.3,
50
+ "height": 0.25,
51
51
  "s": 0.55,
52
52
  "offset_u": 0.0
53
53
  }