Skip to content

Render matching capsule surfaces and release replaced instance buffers - #36

Merged
marpaia merged 13 commits into
masterfrom
marpaia/21
Sep 25, 2026
Merged

marpaia merged 13 commits into
masterfrom
marpaia/21

Conversation

@marpaia

@marpaia marpaia commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Replace overlapping closed-cylinder/full-sphere cells with co-oriented open cylinders and hemispheres whose tangent vertices and normals match. Rod length moves cap centers without stretching the spherical ends, and the selected-cell overlay uses the same geometry, including zero-length spheres. Frame replacement now disposes instance buffers that previously accumulated despite flat geometry counts.

Validation: 35 viewer tests; strict TypeScript/build/format; actual Chromium before/after isolated, moving-colony, near/far and selected-sphere fixtures. Tests cover exact join positions/normals, radius/endpoints for five length/radius pairs and arbitrary orientations, real ray picking, instance colors, stable-ID selection, aligned highlights and zero-length transforms.

Three instanced draws remain for 512 cells. Tracked WebGL buffers remain 18 across repeated frame replacement and return to zero on clear/dispose, versus 390→744 before. Same-fixture median replacement/render timing was 2.2 ms before and 2.1 ms after, with 2.4 ms p95 for both, on Chromium 153 SwiftShader. These are local software-WebGL measurements, not physical GPU performance claims. Higher shared tessellation increases triangles from 258,048 to 294,912.

Committed before/after screenshots and reproducible validation report document the reproduced join artifact, correction, metrics and remaining ordinary silhouette/pixel aliasing. No simulation smoothing or model-state change.

Closes #21.

Independent review is complete against the original acceptance criteria and intended review base. The review report records per-criterion evidence, both corrected campaign findings, exact tested heads, landing order and platform limits.

Merged into master in the approved campaign order: #26, #27, #28, #31, #34, #36, #29, #30, #33, #35, #37, #32. The final tree preserves the reviewed implementation and integration regressions. Prerequisites were integrated with merge commits, and the frozen review bases were retained.

Landing validation: 534 Python tests passed (57 environment-dependent skips), 115 viewer tests passed, Ruff lint, strict type checks, viewer build/format checks, and actual Chromium feature/integration checks passed. Pyright retains the existing native-extension source warning. A Windows-only documentation link-test encoding failure was reproduced and fixed with an explicit UTF-8 read; the corrected final PR heads passed Windows CLI/shutdown checks and CUDA compilation. NVIDIA runtime execution remains unverified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Render cell capsules without cylinder–cap seams

1 participant