Implement voxelId counter for face group stamping #6

Open
opened 2026-03-09 15:41:16 +00:00 by valis · 0 comments
Owner

Problem

Furrowed daughters currently inherit parent face groups. If the parent was a linked compound (multi-group), daughters also have multi-group faces and are falsely scroll-locked.

Solution

Global nextVoxelId counter. Every voxel born gets voxelId = nextVoxelId++. Operations stamp faces accordingly:

  • createVoxel / createVoxelFromGeometry: all faces get voxelId
  • furrowVoxel: each daughter gets fresh voxelId, ALL faces stamped with it (inherited + scar)
  • linkFaces: faces keep their original voxelId from source voxels
  • budVoxel: new voxel, new ID, all faces uniform

Scroll guard unchanged: new Set(faceGroups).size > 1 blocks regeneration.

Research

See operations/research/voxel-face-identity-tagging.md — pattern validated across ECS, biology (CellTag), Blender/Houdini.

Acceptance Criteria

  • Fresh voxels scroll normally
  • Linked compounds block scroll
  • Furrowed daughters (from any parent) scroll normally
  • Chain-linked compounds (A+B+C) block scroll
  • Budded voxels scroll normally
## Problem Furrowed daughters currently inherit parent face groups. If the parent was a linked compound (multi-group), daughters also have multi-group faces and are falsely scroll-locked. ## Solution Global `nextVoxelId` counter. Every voxel born gets `voxelId = nextVoxelId++`. Operations stamp faces accordingly: - **createVoxel / createVoxelFromGeometry**: all faces get `voxelId` - **furrowVoxel**: each daughter gets fresh `voxelId`, ALL faces stamped with it (inherited + scar) - **linkFaces**: faces keep their original `voxelId` from source voxels - **budVoxel**: new voxel, new ID, all faces uniform Scroll guard unchanged: `new Set(faceGroups).size > 1` blocks regeneration. ## Research See `operations/research/voxel-face-identity-tagging.md` — pattern validated across ECS, biology (CellTag), Blender/Houdini. ## Acceptance Criteria - [ ] Fresh voxels scroll normally - [ ] Linked compounds block scroll - [ ] Furrowed daughters (from any parent) scroll normally - [ ] Chain-linked compounds (A+B+C) block scroll - [ ] Budded voxels scroll normally
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
valis/soma#6
No description provided.