PenguinCAM Roadmap

Development priorities and future enhancements for PenguinCAM.

Current Status: PenguinCAM is deployed and production-ready at penguincam.popcornpenguins.com

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.

1

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.

2

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.

3

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.

4

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.

5

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.

6

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.

7

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.

8

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.

9

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:

Contributing

PenguinCAM was built for FRC Team 6238 but is open for other teams to use and improve!

If you're interested in contributing:

  1. Open an issue on GitHub to discuss your idea
  2. Fork the repository and make your changes
  3. 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