tacsim op• Data kinds: text × scalar → table
• Call: import fullseye as fs; fs.ledger.membrane_indent_shape(shape: 'str', depth: 'float', n: 'int' = 128, fov: 'float' = 0.006, R: 'float' = 0.003, edge_deg: 'float' = 30.0, tip_radius: 'float' = 0.0003, size: 'float' = 0.002) -> 'dict' (to call the implementation directly, import tacsim; tacsim.membrane_indent_shape(shape: 'str', depth: 'float', n: 'int' = 128, fov: 'float' = 0.006, R: 'float' = 0.003, edge_deg: 'float' = 30.0, tip_radius: 'float' = 0.0003, size: 'float' = 0.002) -> 'dict'; from the registry, opsdrive.get("membrane_indent_shape"))
Builds the height field of a gel membrane into which a rigid body of known shape is pressed by depth, by geometric conformance: h = −max(0, depth − z_ind(x, y)).
The elastic skirt (Hertz's outer solution) is not included —— for spheres, membrane_indent_sphere builds it exactly with Hertz, so this is a tool for lining up, in the same style, shapes that have no closed-form skirt, such as cylinders, straight edges and stamps. shape:
"sphere" (spherical cap of radius R, z = R − √(R² − r²)), "cylinder" (axis along y, z = R − √(R² − x²)), "edge" (straight edge:
a wedge of angle edge_deg rounded with tip radius tip_radius, z = (√(x² + ρ²) − ρ) tan α), "stamp" (a flat "F"-shaped stamp of side size, rising outside at distance × tan 60°). Normals are taken with photometric.surface_normals (h/pitch) (second implementation).
Returns: h, normals, pitch, X, Y, contact (z_ind < depth), z_ind. Raises ValueError: unknown shape, depth ≤ 0, depth ≥ R for a sphere or cylinder.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_tacsim_elastic_membrane — py -3.11 examples/poc_tacsim_elastic_membrane.py
table as input)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
tacsim)combined_modulus · hertz_sphere · hertz_force · hertz_cylinder · hertz_surface_uz · hertz_pressure · membrane_indent_sphere · membrane_lights
*Provenance: tacsim.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.