vycdev / vycdev/Kromacut

Preserve shared boundaries when smooth-meshing multi-colour layers

Open
#40 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
TypeScript
Stars
278
Forks
31
Avg merge
13h 32m
Merged PRs (30d)
4

Description

Problem

When a multi-head layer contains multiple colour groups, Kromacut smooth-meshes each group independently. Each group treats a shared colour boundary as its outside edge and moves its boundary vertices inward, leaving visible gaps between adjacent colours. The gap is part of the generated mesh, so it affects exports as well as the 3D preview.

Reported during PR #38: https://github.com/vycdev/Kromacut/pull/38#issuecomment-4757223435

Expected behaviour

Adjacent colour regions in the same physical layer must meet exactly, with no gaps, overlap, duplicate boundary faces, or non-manifold edges. The outer silhouette should still benefit from smooth meshing.

Intended solution

Implement colour-aware smooth topology for a whole layer:

  1. Build one shared boundary and vertex field from the full labelled colour grid.
  2. Reuse the same boundary vertices at interfaces between colour groups.
  3. Assign faces/materials to their colour group without moving each side of an interface independently.
  4. Add topology and regression tests for side-by-side and corner-contacting multi-colour regions.

Scope

This should be a proper shared-topology solution. Do not solve it by silently falling back to greedy meshing for multi-colour layers.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the smooth-meshing implementation and the discussion in PR #38, then reproduce a layer with side-by-side and corner-contacting colour regions. Trace how shared boundaries and material faces are generated. Done means adjacent regions share boundaries without gaps, overlaps, duplicate boundary faces, or non-manifold edges, while the outer silhouette remains smooth and topology tests cover both cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
computer-graphics
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.