feat: elastic cell membrane hulls with interactive drag stretching - #106
hassanafridi wants to merge 1 commit into
Conversation
|
@hassanafridi is attempting to deploy a commit to the braedonsaunders' projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Thanks for the focused follow-up. This hits what I asked for on #105: membrane helpers, I'll dig into the stretch math and the shift/alt change on sibling moves next. Holding for CI and Codex before anything merges. |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Multiple moderate correctness and performance issues remain unresolved.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (3)
What changed in this PR
Adds elastic Catmull–Rom membrane hulls and real-time hull updates during interactive node dragging.
Changes:
- Adds single-, paired-, and multi-node membrane geometry.
- Renders smooth membrane hull paths.
- Refreshes hulls throughout the drag lifecycle.
| File | Summary | Review findings |
|---|---|---|
index.html |
Implements membrane geometry, rendering, and drag-time updates. | Remove redundant drag-frame and pre-settlement rebuilds; fix double padding and inverted bridge points; add focused geometry tests. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| scheduleCodeViewDragFrame(codeNodeDragFrame,requestAnimationFrame,paintCodeNodeDragFrame); | ||
| } | ||
| if(codeViewDragShouldDrawMinimap('move')&&drawMinimapRef.current)drawMinimapRef.current(); | ||
| if(updateHullsRef.current)updateHullsRef.current(); |
| if(d<=Math.abs(r1-r2)){ | ||
| var bigger=r1>=r2?p1:p2; | ||
| return buildHumanCellMembrane([bigger]); |
| if(pts.length===2){ | ||
| return buildTwoCellBridge(pts[0],pts[1]); |


Summary
Follow-up to address feedback on the elastic membrane / stretch hull feature:
CodeFlow.package.json(removed duplicate bin key) andcli/codeflow.mjs.buildTwoCellBridge,buildStretchedClusterPath,buildHumanCellMembrane).updateHullswith the default canvas hull styling.node.call(d3.drag())(drag,paintCodeNodeDragFrame,end).Verification
node --test tests/code-canvas.test.mjs- 109/109 passed).