PenguinCAM Roadmap
Development priorities and future enhancements for PenguinCAM.
Current Features
PenguinCAM is ready for real-world FRC use with these features:
Onshape Integration
One-click export from Onshape with OAuth authentication
Automatic Detection
Top face detection, hole identification, and smart feature recognition
Part Orientation
Rotate in 90° increments with fixed bottom-left origin
3D Visualization
Interactive preview with toolpath scrubber and tool animation
Multi-Layer (2.5D) Support
Automatic depth detection for parts with partial-depth pockets, grooves, and countersinks
Tube Machining
Square ends and mirror-image patterns for aluminum tube
Tool Compensation
Automatic offset for perimeters, pockets, and holes
Smart Tabs
Automatic tab placement and removal for secure parts
Google Drive
Direct upload to team shared drives
Multi-Team
Team-specific configurations via YAML files
Intelligent Pocket Contouring
Area-based strategy to contour large through-cut features instead of full clearing
Future Enhancements
Planned features in no particular order. Priority and effort are approximate.
Chipload-Based Feeds & Speeds Calculation
Priority: High | Effort: High
Current Problem: Feeds and speeds are specified directly in the config, which doesn't scale when changing tool sizes or flute counts. A 3mm end mill needs different feeds than a 6mm end mill, even in the same material.
Proposed Solution: Specify ground-truth cutting parameters (chipload in inches/tooth, preferred RPM, stepdown as ratio of diameter) and calculate all derived values at runtime. The system would compute XY feed, ramp feed, and plunge feed based on tool diameter, flute count, material chipload, machine rigidity class, and engagement type (slotting vs clearing).
Benefits: Settings automatically work for any tool size. More predictable results. Easier to understand and tune (chipload is the fundamental parameter machinists think about). Enables proper support for multi-flute tools.
Impact: New config file format (version 3), refactored feed/speed calculations throughout postprocessor, updated UI to show calculated vs specified values, migration tooling for existing configs. Foundation for the tool library feature.
Multiple Parts Per Job
Priority: Medium | Effort: Medium-High
Layout multiple instances of the same part on a single piece of stock, or combine different parts in one cutting job. Would optimize material usage and reduce setup time. See "Interactive Part Layout Interface" for visual positioning controls.
Team-Specific Tool Library
Priority: Medium | Effort: High
Define named tools in the team config (e.g., "2-flute 1/8in end mill", "1-flute 1/8in end mill") instead of just tool diameters. Different tools of the same diameter could have different performance characteristics - a 2-flute tool can typically run faster feeds than a 1-flute. Tool-specific settings could use multipliers on the base material feeds/speeds, or define complete overrides. Would affect UI (tool selection dropdown), config format, and postprocessor. Works best with chipload-based calculation system.
Per-Team Branding
Priority: Low | Effort: Medium
Customize the UI with team colors, logos, and names from the config file. Would make PenguinCAM feel more like "your" tool.
Additional Cloud Storage
Priority: Low | Effort: Medium
Support for Dropbox, OneDrive, or other cloud storage services beyond Google Drive. Would benefit teams not using Google Workspace.
G41/G42 Tool Compensation
Priority: Low | Effort: Medium
Use controller-based tool compensation instead of pre-compensated paths. Would allow more precise finished products, especially for bearing holes where 1.125" often ends up too small.
Asymmetric Tube Patterns
Priority: Medium | Effort: High
Support tubing where opposite faces aren't the same. Many teams do tube designs with larger holes on one side to support access to bolt heads.
Interactive Part Layout Interface
Priority: Medium | Effort: High
Slicer-style interface for positioning parts on the machine bed. Show the full bed size in the preview, allow drag-and-drop positioning, arbitrary rotation and mirroring, and define exclusion zones for hold-downs. Would extend the multiple parts feature with intuitive visual controls familiar to students from 3D printing.
Show More Gcode Text During Toolpath Preview
Priority: Low | Effort: Low
Many gcode preview tools allow you to step through the gcode text line by line while showing several lines of context. It would be good to replicate that. Useful for debugging, maybe less important for students.
Ideas for Consideration
Not committed to the roadmap yet, but worth exploring:
- Batch processing multiple DXFs in one job
- G-code optimization for shorter tool paths
- Export simulation as video or animated GIF
- Integration with other CAD platforms (Fusion 360, Inventor)
- Library of CNC machines with pre-configured settings
- Custom tab placement (manual positioning)
- Estimated cycle time improvements
- Adaptive toolpath strategies
Contributing
PenguinCAM was built for FRC Team 6238 but is open for other teams to use and improve!
If you're interested in contributing:
- Open an issue on GitHub to discuss your idea
- Fork the repository and make your changes
- Submit a pull request with tests and documentation
Repository: github.com/6238/PenguinCAM
Support
Questions about features or interested in contributing?
Contact: penguincam@popcornpenguins.com