Skip to content

T-A1 — Extract mesh_ops/ from the existing workflow nodes #295

Description

@lightningpixel

Epic: Epic A — Unified mesh-ops registry (foundation)
Priority: P0

Context

Mesh-editing logic (repair, decimate, smooth) already exists and works, but it's scattered across individual workflow-node processors (mesh-repair/processor.py, mesh-optimizer/processor.ts, mesh-smoother/). Neither the chat agent nor a future edit panel can call it directly. This ticket extracts that logic into one shared registry that workflow nodes, the agent, and the UI can all consume — the foundation everything else in Epic A/B/C depends on.

Scope

  • Create api/services/mesh_ops/: a registry of { id, label, params_schema, fn, destructive?, undoable?, category } entries, modeled on generator_registry.py.
  • Migrate the logic from mesh-repair/processor.py (dedupe, non-manifold, degenerate, fill holes) into registry op(s).
  • Migrate smooth (already in optimize.py) and the mesh-optimizer/mesh-smoother logic into the registry — decide which decimate implementation to keep (pymeshlab vs meshopt) instead of keeping both.
  • Workflow nodes become thin wrappers that call the registry (no regression: identical results to before the migration).
  • Generic endpoint POST /optimize/op/{op_name} + GET /optimize/ops (list + schemas + categories).

Acceptance criteria

A regression test confirms mesh-repair/mesh-optimizer/mesh-smoother produce identical output before/after the migration; the same ops are callable via /optimize/op/.


From ROADMAP_0.5.md.

Activity

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

Metadata

Metadata

Assignees

Labels

Projects

  • Status
    Ready to review

Relationships

None yet

Development

No branches or pull requests

Issue actions