# FreeCAD Path Workbench Development Wiki > Developer notes, architecture documentation, and planning for FreeCAD's CAM workbench ## Core Architecture Concepts Understanding the design philosophy and structure: - **[Intent vs Strategy](Intent-vs-Strategy.md)** - How user intent maps to operations and path generators - **[Operation Class Hierarchy](Current-State/Operations.md)** - Mermaid diagrams of operation inheritance - **[Shape Taxonomy](Shapes-in-the-Path-Workbench.md)** - Spot, Line-Following, Area, Face Decoration geometry types - **[Postprocessing Pipeline](Postprocessing.md)** - G-code generation architecture - **[[Machines]]** - Representation of physical CNC equipment ## Developer Guides Practical guides for extending Path: - **[Creating Operations](Developing-for-Path.md#creating-operations)** - File checklist, CMakeLists, InitGui registration - **[Creating Dressups](Developing-for-Path.md#creating-dressups)** - When and how to create path modifications - [[Creating Machines]] - What is shipped with FreeCAD and what is left to the user - **[Creating Postprocessors](Developing-for-Path.md#creating-postprocessors)** - Machine-specific G-code generation - **[Task Panel Design](TaskPanel-Design.md)** - UI/UX guidelines ## API Reference Function and class documentation: - **[PathArea API Reference](PathArea-API-Reference.md)** - add(), makeOffset(), makePocket(), makeSections() - **[PathArea Complete Guide](PathArea-notes.md)** - Comprehensive libarea/ClipperLib documentation with examples - **[fromShapes() Function](fromShapes.md)** - Shape-to-Path conversion parameters - **[libarea/Clipper Notes](libarea---clipper-notes.md)** - Boolean operations and ClipperLib integration ## Implementation Status Current state and known refactoring needs: - **[Operations Status](Current-State/Operations.md)** - What exists today, architectural inconsistencies, refactoring notes - **[Dressups Status](Current-State/Dressups.md)** - Feature matrix and consolidation opportunities - **[Generators Status](Current-State/Generators.md)** - Current generators and needed functionality ## Quick Reference | I want to... | Read this... | |-------------|-------------| | Understand Path architecture | [Intent vs Strategy](Intent-vs-Strategy.md) | | Create a new operation | [Creating Operations](Developing-for-Path.md#creating-operations) | | Modify toolpaths | [Creating Dressups](Developing-for-Path.md#creating-dressups) | | Generate G-code for new machine | [Creating Postprocessors](Developing-for-Path.md#creating-postprocessors) | | Work with polygon offsetting | [PathArea API](PathArea-API-Reference.md) | | Understand operation class hierarchy | [Operations Status](Current-State/Operations.md) | ## About This Wiki This is a living development wiki containing: - Architectural documentation - Planning notes and WIP content - Developer guidance and checklists - Implementation status and refactoring plans Separate user-facing documentation will be created later following the Diátaxis framework. **Note:** See [Archive/](Archive/) for historical/project-specific content.