How protogulix/pantin works
Pantin is a browser-based editor for mechanical assemblies, with a core service and CLI supporting the same project data. The main workflow is to open or import a Pantin, organize bodies into assemblies, edit joints and tags, and inspect or manipulate the resulting 3D pose. The graph also includes STEP conversion, simulation, and persistent project storage. Some relationships are supported only by the SOURCE INDEX or documented capability names; uncertain integration links are omitted rather than inferred.
Main entry points: pantin-service.ts Pantin service · routes.ts HTTP route dispatch · main.ts Viewer application · controller.ts Editor controller
Components 31
Browser editor
- Viewer application
packages/viewer/src/main.ts - Editor controller
packages/viewer/src/controller/controller.ts - Editor state
packages/viewer/src/viewer-state.ts - Tree state and IDs
packages/viewer/src/tree/tree-state.ts - Assembly display
packages/viewer/src/assembly-display.ts - Joint editor
packages/viewer/src/joints/joint-form.ts - 3D viewport
packages/viewer/src/scene/viewport.ts - View model
packages/viewer/src/view-model.ts - Translations
packages/viewer/src/i18n/translate.ts - Editor messages
packages/viewer/src/messages.ts
API and contract
- API client
packages/viewer/src/api-client.ts - API transport
packages/viewer/src/api-transport.ts - Shared API contract
packages/protocol/src/api.ts - HTTP server
packages/core/src/http/server.ts - HTTP route dispatch
packages/core/src/http/routes.ts - Assembly routes
packages/core/src/http/assembly-routes.ts - Joint and pose routes
packages/core/src/http/joint-routes.ts - Request decoding
packages/core/src/http/request-reading.ts - API responses
packages/core/src/http/responses.ts - Route context
packages/core/src/http/route-context.ts
Core domain
- Input validation
packages/core/src/domain/validation.ts - Pantin service
packages/core/src/service/pantin-service.ts - Assembly and joint model
packages/core/src/domain - Pose simulation
packages/core/src/service/simulation.ts - Pose stream
packages/core/src/http/pose-stream-routes.ts
Import conversion
- STEP converter
packages/core/src/converter/step-converter.ts - STEP conversion engine
packages/step-converter/src/pantin_step_converter/conversion.py
Persistence and runtime
- Folder validation CLI
packages/cli/src/validate-folder.ts - Pantin file store
packages/core/src/store/pantin-store.ts
Other components
- Editor user
- CLI user
Connections 34
- Editor user → Viewer application: uses
packages/viewer/src/main.ts - Viewer application → Editor controller: wires intents
packages/viewer/src/main.ts - Editor controller → Editor state: updates
packages/viewer/src/controller/controller.ts - Editor controller → Tree state and IDs: selects nodes
packages/viewer/src/controller/controller.ts - Editor controller → API client: requests actions
- Viewer application → 3D viewport: creates view
packages/viewer/src/main.ts - Viewer application → View model: renders model
packages/viewer/src/main.ts - Editor state → Tree state and IDs: checks nodes
packages/viewer/src/viewer-state.ts - Editor state → Assembly display: tracks display
packages/viewer/src/viewer-state.ts - Editor state → Joint editor: stores form
packages/viewer/src/viewer-state.ts - Viewer application → Translations: loads language
packages/viewer/src/main.ts - Viewer application → Editor messages: shows messages
packages/viewer/src/main.ts - API client → API transport: sends requests
packages/viewer/src/api-client.ts - API transport → Shared API contract: validates payloads
packages/viewer/src/api-transport.ts - HTTP server → HTTP route dispatch: dispatches requests
- HTTP route dispatch → Assembly routes: registers routes
packages/core/src/http/routes.ts - HTTP route dispatch → Joint and pose routes: registers routes
packages/core/src/http/routes.ts - HTTP route dispatch → Request decoding: decodes requests
packages/core/src/http/routes.ts - HTTP route dispatch → API responses: sends responses
packages/core/src/http/routes.ts - HTTP route dispatch → Route context: builds context
packages/core/src/http/routes.ts - Assembly routes → Pantin service: calls operations
packages/core/src/http/assembly-routes.ts - Joint and pose routes → Pantin service: calls operations
packages/core/src/http/joint-routes.ts - Assembly routes → Input validation: validates input
packages/core/src/http/assembly-routes.ts - Joint and pose routes → Input validation: validates input
packages/core/src/http/joint-routes.ts - Route context → Pantin service: types service
packages/core/src/http/route-context.ts - Pantin service → Pantin file store: reads and writes
packages/core/src/service/pantin-service.ts - Pantin service → Assembly and joint model: delegates operations
packages/core/src/service/pantin-service.ts - Pantin service → STEP converter: imports bodies
packages/core/src/service/pantin-service.ts - Pantin service → Pose simulation: runs steps
packages/core/src/service/pantin-service.ts - HTTP route dispatch → Pose stream: registers stream
packages/core/src/http/routes.ts - Pose stream → Route context: uses context
packages/core/src/http/pose-stream-routes.ts - STEP converter → STEP conversion engine: invokes converter
- CLI user → Folder validation CLI: runs validation
- Folder validation CLI → Pantin service: checks projects
packages/cli/src/validate-folder.ts