trenchfoot 0.4.1__tar.gz → 0.4.2__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 (102) hide show
  1. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/CHANGELOG.md +26 -0
  2. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/PKG-INFO +1 -1
  3. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/trench_scene_generator_v3.py +677 -37
  4. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/pyproject.toml +1 -1
  5. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/tests/test_trenchfoot_generation.py +387 -0
  6. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/uv.lock +1 -1
  7. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/.github/workflows/ci.yml +0 -0
  8. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/.gitignore +0 -0
  9. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/CLAUDE.md +0 -0
  10. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/LICENSE +0 -0
  11. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/Makefile +0 -0
  12. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/README.md +0 -0
  13. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/STATUS.md +0 -0
  14. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/docs/scenario_gallery.md +0 -0
  15. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/__init__.py +0 -0
  16. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/Dockerfile +0 -0
  17. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/README.md +0 -0
  18. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/__init__.py +0 -0
  19. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/generate_scenarios.py +0 -0
  20. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/gmsh_sloped_trench_mesher.py +0 -0
  21. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/plot_mesh.py +0 -0
  22. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/render_colors.py +0 -0
  23. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/ground_truth_isosurface.html +0 -0
  24. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/meshes/trench_scene_culled.obj +0 -0
  25. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/metrics.json +0 -0
  26. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/point_clouds/culled/resolution0p050.pth +0 -0
  27. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/point_clouds/full/resolution0p050.pth +0 -0
  28. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview.png +0 -0
  29. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_oblique.png +0 -0
  30. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_side.png +0 -0
  31. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/preview_top.png +0 -0
  32. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/scene.json +0 -0
  33. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/sdf_metadata.json +0 -0
  34. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/trench_scene.obj +0 -0
  35. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S01_straight_vwalls/volumetric/trench_volume.msh +0 -0
  36. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/ground_truth_isosurface.html +0 -0
  37. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/meshes/trench_scene_culled.obj +0 -0
  38. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/metrics.json +0 -0
  39. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/point_clouds/culled/resolution0p050.pth +0 -0
  40. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/point_clouds/full/resolution0p050.pth +0 -0
  41. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview.png +0 -0
  42. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_oblique.png +0 -0
  43. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_side.png +0 -0
  44. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/preview_top.png +0 -0
  45. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/scene.json +0 -0
  46. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/sdf_metadata.json +0 -0
  47. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/trench_scene.obj +0 -0
  48. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S02_straight_slope_pipe/volumetric/trench_volume.msh +0 -0
  49. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/ground_truth_isosurface.html +0 -0
  50. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/meshes/trench_scene_culled.obj +0 -0
  51. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/metrics.json +0 -0
  52. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/point_clouds/culled/resolution0p050.pth +0 -0
  53. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/point_clouds/full/resolution0p050.pth +0 -0
  54. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview.png +0 -0
  55. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_oblique.png +0 -0
  56. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_side.png +0 -0
  57. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/preview_top.png +0 -0
  58. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/scene.json +0 -0
  59. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/sdf_metadata.json +0 -0
  60. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/trench_scene.obj +0 -0
  61. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S03_L_slope_two_pipes_box/volumetric/trench_volume.msh +0 -0
  62. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/ground_truth_isosurface.html +0 -0
  63. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/meshes/trench_scene_culled.obj +0 -0
  64. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/metrics.json +0 -0
  65. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview.png +0 -0
  66. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_oblique.png +0 -0
  67. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_side.png +0 -0
  68. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/preview_top.png +0 -0
  69. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/scene.json +0 -0
  70. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/sdf_metadata.json +0 -0
  71. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/trench_scene.obj +0 -0
  72. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S04_U_slope_multi_noise/volumetric/trench_volume.msh +0 -0
  73. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/ground_truth_isosurface.html +0 -0
  74. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/metrics.json +0 -0
  75. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_oblique.png +0 -0
  76. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_side.png +0 -0
  77. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/preview_top.png +0 -0
  78. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/scene.json +0 -0
  79. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/sdf_metadata.json +0 -0
  80. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/trench_scene.obj +0 -0
  81. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S05_wide_slope_pair/volumetric/trench_volume.msh +0 -0
  82. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/ground_truth_isosurface.html +0 -0
  83. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/metrics.json +0 -0
  84. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_oblique.png +0 -0
  85. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_side.png +0 -0
  86. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/preview_top.png +0 -0
  87. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/scene.json +0 -0
  88. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/sdf_metadata.json +0 -0
  89. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/trench_scene.obj +0 -0
  90. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S06_bumpy_wide_loop/volumetric/trench_volume.msh +0 -0
  91. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/ground_truth_isosurface.html +0 -0
  92. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/metrics.json +0 -0
  93. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/preview_oblique.png +0 -0
  94. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/preview_side.png +0 -0
  95. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/preview_top.png +0 -0
  96. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/scene.json +0 -0
  97. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/sdf_metadata.json +0 -0
  98. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/trench_scene.obj +0 -0
  99. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/S07_circular_well/volumetric/trench_volume.msh +0 -0
  100. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scenarios/SUMMARY.json +0 -0
  101. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/packages/trenchfoot/scene_spec_example.json +0 -0
  102. {trenchfoot-0.4.1 → trenchfoot-0.4.2}/tests/test_sdf_readiness.py +0 -0
@@ -1,5 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.2] - 2026-01-29
4
+
5
+ ### Added
6
+ - **Embedded object truncation**: Pipes, boxes, and spheres that extend beyond trench boundaries are now automatically truncated or shrunk to fit within the trench void:
7
+ - **Pipes**: Truncated at walls/floor with angled elliptical caps matching the intersection plane
8
+ - **Boxes**: Dimensions shrunk to fit within available space
9
+ - **Spheres**: Radius reduced to fit within available space
10
+ - **New helper functions** for trench boundary computation:
11
+ - `_find_trench_frame_at_xy()`: Find local trench coordinate frame at any XY position
12
+ - `_compute_pipe_truncation()`: Binary search for where pipe exits trench
13
+ - `_compute_cap_plane_at_truncation()`: Determine wall/floor plane at intersection
14
+ - `_compute_box_fit()`: Calculate shrunk box dimensions
15
+ - `_compute_sphere_fit()`: Calculate shrunk sphere radius
16
+ - **Extended `make_cylinder()`**: Now supports asymmetric extents (`neg_extent`, `pos_extent`) and angled cap planes (`cap_plane_neg`, `cap_plane_pos`)
17
+ - **New tests** for truncation functionality:
18
+ - `test_pipe_truncation_at_wall`
19
+ - `test_pipe_truncation_at_floor`
20
+ - `test_pipe_angled_cap_geometry`
21
+ - `test_box_shrink_to_fit`
22
+ - `test_sphere_shrink_to_fit`
23
+ - `test_no_vertices_outside_trench`
24
+
25
+ ### Fixed
26
+ - Long pipes in S07 circular well no longer protrude through trench walls
27
+ - Oversized embedded objects no longer extend outside trench geometry
28
+
3
29
  ## [0.4.1] - 2026-01-28
4
30
 
5
31
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: trenchfoot
3
- Version: 0.4.1
3
+ Version: 0.4.2
4
4
  Summary: Synthetic trench scenario generator bundle (surfaces + volumetrics).
5
5
  Author: Liam Moore
6
6
  License-File: LICENSE