assembly-solver

Debug brepjs assembly constraint solver failures and extend joint and kinematics subsystems.

77|7|Updated Feb 1, 2026
One-click install
npx skills add https://github.com/andymai/brepjs --skill assembly-solver
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: assembly-solver
Source: https://github.com/andymai/brepjs/tree/main/.claude/skills/assembly-solver
Command: npx skills add https://github.com/andymai/brepjs --skill assembly-solver

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill eliminates the frustration of debugging failed brepjs assembly constraint solves, extending the assembly and kinematics subsystems, and working with mechanism interchange formats, removing guesswork from parametric CAD assembly workflows.

Core Features & Use Cases

  • Constraint Solve Debugging: Diagnose and fix common solver errors including ASSEMBLY_NOT_CONVERGED, ASSEMBLY_MATE_INVALID, and ASSEMBLY_SOLVE_FAILED by identifying root causes like unanchored nodes, unsupported entity pairs, or invalid mate geometry.
  • Solver Extension: Add new mate types, translational entity pairs, or kinematic joint types (revolute, prismatic, spherical, etc.) to the brepjs codebase with correct guardrails to avoid invariant drift.
  • Kinematics & Interchange: Implement forward/inverse kinematics, DH table-based serial joint chains, and URDF import/export for robotics and mechanism design use cases.
  • Use Case: If you are designing a gridfinity bin with a hinged lid, use this Skill to debug a failing constraint solve between the lid and base, add a custom revolute joint for the hinge, and export the mechanism to URDF for motion simulation.

Quick Start

Use the assembly-solver skill to debug a brepjs assembly solve that returns ASSEMBLY_NOT_CONVERGED by first checking for unanchored dependent nodes and unsupported entity pair combinations in your mate definitions.

Frequently Asked Questions about assembly-solver

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why does my brepjs assembly constraint solve fail with ASSEMBLY_NOT_CONVERGED?

An assembly constraint solve fails with ASSEMBLY_NOT_CONVERGED when your mate definitions contain unanchored dependent nodes or unsupported entity pair combinations. You can fix this by checking your mate definitions for invalid geometry and ensuring all dependent nodes are properly anchored.

How do I add a custom revolute joint to a brepjs assembly?

To add a custom revolute joint to a brepjs assembly, you extend the kinematics subsystem with the new joint type while maintaining correct guardrails to avoid invariant drift. This enables forward and inverse kinematic joint driving for mechanism design.

Can I export a parametric CAD assembly to URDF for motion simulation?

You can export a parametric CAD assembly to URDF by applying DH parameter processing to serial joint chains. This workflow enables mechanism interchange, allowing you to import and export robotic assemblies for motion simulation.

What causes ASSEMBLY_MATE_INVALID errors when defining mate geometry?

ASSEMBLY_MATE_INVALID errors occur when your mate definitions reference invalid geometry or unsupported entity pairs. Identifying the root cause requires diagnosing the specific mate definitions to verify that all entity pairs are supported by the brepjs solver.

How do I compute forward and inverse kinematics for a serial joint chain?

You compute forward and inverse kinematics for a serial joint chain by processing DH parameters to define the joint transforms. This approach provides analytical closed-form constraint solving for driving kinematic joints in parametric CAD workflows.

Does brepjs support exporting positioned assemblies to STEP for manufacturing?

brepjs supports exporting positioned assemblies to STEP files for manufacturable geometry use cases. This requires a successfully converged assembly constraint solve to ensure the exported geometry maintains the correct positioned assembly state.