How vulpfin/vulpfin-circuitsmith works
VFCS is a visual logic-to-hardware workbench. The main workflow is to compose a circuit in the web editor, simulate its behavior, then package it as a reusable chip or pursue physical-part mapping and HDL/format export. The graph includes the editor’s chip and truth-table capabilities, the simulation engine and its logic/library layers, and the physical mapping and integration branches. Some UI composition and downstream package interactions are documented but not visible in sampled calls; those links are marked dashed where needed.
Main entry points: App.tsx Workbench · engine.ts Simulation Engine · index.ts Circuit Exporters · truthTableImport.ts Truth Table Import
Components 26
Circuit Editor
- Workbench
apps/web/src/App.tsx - Component Palette
apps/web/src/components/ComponentPalette.tsx - Workspace Canvas
apps/web/src/components/WorkspaceCanvas.tsx - Circuit Inspector
apps/web/src/components/InspectorPanel.tsx - Simulation Status
apps/web/src/components/StatusPanel.tsx - Truth Table Import
apps/web/src/lib/truthTableImport.ts - Import Panel
apps/web/src/components/TruthTableImportPanel.tsx - Chip Designer
apps/web/src/lib/chipDesigner.ts - Chip Library
apps/web/src/components/ChipLibraryPanel.tsx - Chip Visual Layer
apps/web/src/components/ChipVisualLayer.tsx - Pin Resolution
apps/web/src/lib/nodePins.ts - Chip Visuals
apps/web/src/lib/chipVisuals.ts - Node Sizing
apps/web/src/lib/nodeSizing.ts
Logic Simulation
- Simulation Engine
packages/sim-core/src/engine.ts - Logic Operations
packages/sim-core/src/logic.ts - Node Definitions
packages/sim-core/src/library.ts
Hardware Outputs
- Circuit Exporters
packages/exporters/src/index.ts - Verilog Export
packages/exporters/src/verilog.ts - Ligic JSON Export
packages/exporters/src/ligic-json.ts - KiCad Export Stub
packages/exporters/src/kicad.ts - Part Mappings
packages/part-mapper/src/mappings.ts - Part Database
packages/part-mapper/src/database.ts - Integration Adapters
packages/integrations/src/index.ts
Shared Model
- Circuit Data Model
packages/circuit-model/src/index.ts
Other components
- Circuit Designer
- DigiKey Search
Connections 27
- Circuit Designer → Workbench: edits circuit
README.md - Workbench → Simulation Engine: runs simulation
apps/web/src/App.tsx - Workbench → Integration Adapters: searches parts
apps/web/src/App.tsx - Workbench → Truth Table Import: imports truth table
apps/web/src/App.tsx - Workbench → Chip Designer: builds chip pins
apps/web/src/App.tsx - Workbench → Pin Resolution: resolves pins
apps/web/src/App.tsx - Workbench → Node Sizing: sizes nodes
apps/web/src/App.tsx - Import Panel → Truth Table Import: accepts imports
README.md - Chip Library → Chip Designer: uses chip design
apps/web/src/components/ChipLibraryPanel.tsx - Chip Visual Layer → Chip Visuals: renders visuals
apps/web/src/components/ChipVisualLayer.tsx - Pin Resolution → Chip Visuals: normalizes visuals
apps/web/src/lib/nodePins.ts - Chip Visuals → Node Sizing: uses node size
apps/web/src/lib/chipVisuals.ts - Truth Table Import → Node Sizing: clamps layout
apps/web/src/lib/truthTableImport.ts - Simulation Engine → Logic Operations: resolves drivers
packages/sim-core/src/engine.ts - Simulation Engine → Node Definitions: uses definitions
packages/sim-core/src/engine.ts - Workbench → Circuit Exporters: exports circuits
README.md - Workbench → Part Mappings: maps components
README.md - Part Mappings → Part Database: looks up parts
packages/part-mapper/src/mappings.ts - Workbench → DigiKey Search: requests search
apps/web/src/App.tsx - Integration Adapters → Part Database: uses part data
packages/integrations/src/index.ts - Circuit Exporters → Verilog Export: exports HDL
packages/exporters/src/index.ts - Circuit Exporters → Ligic JSON Export: exports JSON
packages/exporters/src/index.ts - Circuit Exporters → KiCad Export Stub: offers placeholder
packages/exporters/src/index.ts - Simulation Engine → Circuit Data Model: evaluates circuit
README.md - Verilog Export → Circuit Data Model: reads circuit data
packages/exporters/src/verilog.ts - Truth Table Import → Circuit Data Model: builds circuit data
apps/web/src/lib/truthTableImport.ts - Part Mappings → Circuit Data Model: defines mappings
README.md