Free software for model aviation

Software for CNC hot-wire cutting and model aircraft design

AI Foam Cut covers the whole chain: design wing and fuselage, derive a core, negative shell, ribs or moulds, compensate for kerf and sheeting, generate G-code, simulate it in 3D and send it to the machine straight from the program. The machine control is compatible with grblHAL and GRBL HotWire Mega 5X – matching information and firmware for the boards are available from RC Keith.

The program is open source and free of charge – released under the GNU General Public License 3.0. No licence keys, no trial periods, no features behind a paywall, no telemetry. Take the ready-made build for Windows, Linux or macOS, or the source code if you would rather look inside and build it yourself.

All modules

This is what the free edition contains: 25 tabs, from design through hot-wire cutting to moulds for 3D printing.

Modules marked “experimental” have not really been verified and are not being developed further by the author. The priority was that everything around foam cutting works. Anyone who wants to is welcome to carry on with them. Detailed reports and experiences are in the forum thread on RC-Network (in German). The screenshots show the German interface; the program can be switched to English in the settings.

Project and data

Every project starts here: create wings, assign materials, collect airfoils.

Project overview and materials: Project overview
Project overview
Project overview and materials: Material database
Material database

Project overview and materials

This is where you set the project name and number of wings and assign materials. Every wing and every complex shape can have its own material, and so can the design levels such as core and negative design.

  • Overview of the segments per wing, with calculated weight if a density is stored
  • Material database: free naming, kerf values typed in or taken from the calibration
  • “Assign material freely” switch: material per G-code source, block height per segment if you wish
  • Settings: colours, file paths, your own checklist before each cut, group the tabs freely into drop-down menus
Airfoil database: Airfoil database with comparison and key figures
Airfoil database with comparison and key figures

Airfoil database

Every airfoil you load anywhere in the program lands here automatically, whether from .dat, DXF/SVG or an XFLR5 project. Identical airfoils are stored only once. The database lives on your computer rather than in the project, so it is available in every project.

  • Compare: overlay any number of airfoils, with thickness, camber, their positions, nose radius and trailing-edge thickness
  • Edit: change thickness, camber, trailing-edge thickness and point count, create NACA 4-digit airfoils directly
  • Free grouping, selection directly in the wing designer
  • Polars over several Reynolds numbers with NeuralFoil or XFOIL, also against each other; values as CSV (XFOIL in the Windows builds only)

Wings

Once you have created a wing, you can derive cores, negative shells, ribs and moulds from it.

Wing designer: Segments and sheeting
Segments and sheeting
Wing designer: Global sweep with groups
Global sweep with groups
Wing designer: Spars
Spars

Wing designer

The heart of wing cores and negative shells. For multi-taper wings you simply add segments; the tip airfoil of one segment automatically becomes the root airfoil of the next.

  • Sheeting global, separate for top and bottom, or per segment; optionally as a D-box only, up to a share of the chord
  • Align airfoils on chord, highest or lowest point, or hinge line; groups for wings with several kinks
  • Global sweep on leading edge, trailing edge or hinge line, also with groups
  • Round, oval and trapezoidal spars, cap pockets, I-beam spars, airfoil-following lightening cut-outs and hinge cut-outs (including X-shaped hinge gap and a through slot for a false trailing edge)
  • Blended airfoils: a segment automatically mixes between inner and outer airfoil
  • Click spars and segments directly in the views, and the side menu follows
Core design: Rotate workpiece: alignment on the machine
Rotate workpiece: alignment on the machine
Core design: Edit points
Edit points

Core design

Derives the cores and the press shells from a wing.

  • Block margin constant or proportional to airfoil length, type of leading- and trailing-edge extension
  • Kerf from the ratio of airfoil lengths or from the local path speed (still experimental)
  • Shell cuts: plane the top and bottom shells horizontally during the cut
  • Split cores: everything kerf-compensated, the pieces add up to the full core again; allowance for glass sleeve and caps
  • Mirror, stack, spar cut-outs with selectable order and a pause to lift off the upper shell
  • Leading-edge cut: square pocket or straight cut-off for a glued-on leading edge, in the same pass as the core cut
  • Edit points: move, delete or add airfoil points or cutting-path points
  • Rotate workpiece: put the wing on the machine's zero line by trailing edge, leading edge or quarter-chord line
Negative shell design: Negative shell with margin and parting surface
Negative shell with margin and parting surface
Negative shell design: Cutting a negative shell in the simulation
Cutting a negative shell in the simulation

Negative shell design

Instead of a core, you cut the two mould halves here, into which you later laminate. Besides worries about an ageing GMFC card, this was one of the main reasons for writing this software: geometries for CFRP shell wings in Styrodur negatives used to be drawn in CAD and later came from an elaborate Excel sheet.

  • Cutting path with cut extension (same kerf at the parting surface as in the airfoil cut) or in one pass without pre-cuts
  • Mould block height below the material thickness: inaccuracies of the cutting table are evened out and the segments fit
  • Kerf goes outward into the material, also displayed at true thickness to avoid collisions
  • Cut core and support material in the same pass; this saves a lot of time and material
  • Split the core into webs while the shells stay usable; spar cut-outs in the core
  • Edit points as in core design
Mould making: Split plug for moulding
Split plug for moulding
Mould making: Winglet with blended transition
Winglet with blended transition
Mould making: Section through the mould
Section through the mould

Mould making

Turns the wing into a plug, a split plug for moulding, or directly the negative mould. The module is aimed more at 3D printing; whether it is accurate enough for milling remains to be seen. Export is STL, or STEP for CAD programs.

  • Airfoil smoothing with comparison window; loft as ruled surface or spline across all ribs
  • Wing tip with presets based on real gliders, winglet with blended transition or from a three-view drawing
  • Parting surface, bead, mould edge, resin groove, bump, alignment holes and recesses for the joiner
  • Joiner holes and screw fastening at the joint (DIN 7991, DIN 912)
  • Segmentation into printable pieces with dowel pins
  • Section view, curvature combs, zebra stripes and measuring on the 3D model
  • STEP delivers a true, smooth solid rather than a triangle mesh
Rib designer: Ribs from the wing
Ribs from the wing

Rib designer

Derives ribs from the wings, such as root ribs, support ribs or torsion ribs for shell wings. You can also create sanding templates for the leading edge and export them as STL.

  • Take the sheeting from the wing or set it separately
  • Half ribs; spar cut-outs are carried over
  • Root rib can also be skewed to match the fuselage waist
  • Export as 3MF with separate parts or STL; hand-over to CAD for DXF
Web heights: Height list per web
Height list per web

Web heights experimental

Define spar and control-surface webs and read off the height list for each web, every x mm and at every segment joint. Plus top view, front view and sections, with hand-over to CAD editing.

Wing servos: Servos, linkage and sections
Servos, linkage and sections

Wing servos experimental

Place servos from a type list, define horn and linkage, view deflection and ratio. The module checks the space in the airfoil and collisions with webs, caps and joiner, and generates the sections through servo and linkage.

Fuselage, cockpit and aircraft

From outline to formers, moulds and seat pan. These modules are experimental and are not being developed further by the author.

Fuselage: Fuselage with wing fairing and fin
Fuselage with wing fairing and fin

Fuselage experimental

Fuselage from outlines in side and top view and freely placed formers, with background images, wing fairing and fin. Export as STL and DXF.

Fuselage formers: Formers for building
Formers for building

Fuselage formers experimental

Derives the formers for building: sheeting allowance, stringer notches, lightening holes, splitting and building jig. Output as nested DXF, parts list, or to CAD editing.

Fuselage section parts: Parts from free cutting planes
Parts from free cutting planes

Fuselage section parts experimental

Parts from freely placed cutting planes, lengthwise, horizontal or oblique, with wall allowance and cross-halving where they intersect.

Fuselage mould making experimental

Moulds for fuselage and canopy as STL: half-shell negative mould, plug or vacuum-forming buck, with mould edge, alignment holes and splitting into printable pieces.

Cockpit: Cockpit in the fuselage
Cockpit in the fuselage

Cockpit experimental

Instrument hood, panel with instruments and seat pan as STL, instrument faces as SVG and the panel as DXF. It adapts to the fuselage or to your own STL.

Complete aircraft experimental

Fuselage, all wings and tail surfaces with tips, colours and decals in one 3D view. One click turns it into a closed, structured STL mesh for flow5 (wings trimmed at the fuselage wall, open edges checked), optionally one file per part.

Flight simulator gimmick

Fly the model you designed in AI Foam Cut: pilot view or chase camera, airfield or slope with slope lift, wind, gusts and thermals. Hand launch, winch launch and ground take-off, control by keyboard or a USB transmitter/gamepad. Flight behaviour follows area, aspect ratio, wing loading, centre of gravity and neutral point. An F3F slope racer is built in to try it out.

Complex shapes

Everything that is not a wing: fuselage segments, formers, figures, lettering and cut-outs.

DXF shapes: Sync points between INNER and OUTER
Sync points between INNER and OUTER
DXF shapes: Segments and 3D view
Segments and 3D view

DXF shapes

Cuts any contour you like. Each segment has two cross-sections of its own: INNER (left tower) and OUTER (right tower). If both are the same you get a straight body, if they differ a tapered one.

  • Load DXF or SVG; each layer is offered as a cross-section, helper layers are only displayed
  • Sync points automatically or by hand, the crosshair snaps as in CAD
  • Several segments with width, block dimensions and rotation
  • Freely selectable entry point and cutting direction
  • Take over GMFC projects (.cnc) directly, including segments and sync points
3D model: Slicing a model
Slicing a model
3D model: Cross-sections overlaid in position
Cross-sections overlaid in position
3D model: Plate: several segments in one cut
Plate: several segments in one cut

3D model

Slices any model. The slices are cut individually with the wire and then glued back together, for example for fuselages, canopies, fairings or figures.

  • Load STL, OBJ, STEP and IGES; flight-simulator models from X-Plane, FlightGear and glTF/GLB are experimental
  • Freely choose cutting axis and planes; take outer or inner contours
  • Segment-pair view with cutting path and automatically synchronised profiles, sync points also by hand
  • Entry point at a fixed angle: the entry slit later serves as an alignment mark when gluing
  • Plate: several segments of equal thickness in a single cut, connecting paths run through free space

3D editing experimental

Load, assemble and edit STL, OBJ, STEP and IGES: face to face, union, stretch, extrude faces, close holes. STEP files can be edited as true solids and saved as STEP again. Sections go out as DXF, SVG or tiled print.

Cut-outs: Airfoil as a cut-out in the block
Airfoil as a cut-out in the block
Cut-outs: 3D preview with segments and cut-out
3D preview with segments and cut-out

Cut-outs

Cuts a shape out of a block, for example the wing saddle in a fuselage block. Alternatively, the airfoil remains standing as a piece. The cut-out is a separate source in the G-code tab.

  • Airfoil, canopy or rectangle; several cut-outs per project
  • Airfoil from the wing, as .dat or from the airfoil database, with scale and incidence
  • Segments from DXF shapes or 3D model as reference, one behind the other in position
  • Kerf from the calibration, clearance for a good fit, entry from four sides

Lettering

Cut letters and signs with the hot wire, using built-in stroke fonts or your own TTF and OTF files. Characters are connected, inner shapes reached and the cutting path calculated. The result is a separate source in the G-code tab.

Drawing and marking

Keep working, print, decorate.

CAD editing: 2D CAD with command line
2D CAD with command line

CAD editing

A slimmed-down yet extensive 2D CAD program. Like the well-known programs, it is operated through a command line. If you have worked with AutoCAD, BricsCAD or NanoCAD, you should get along with it well.

  • Import drawings and paths from most other menus
  • DXF export, or send internally to DXF shapes
  • True-to-scale vector PDF from A4 to A0 with print preview
  • Large drawings on several sheets with registration marks, 100 mm check dimension and gluing plan
Decals: Lettering and stripes on the wing
Lettering and stripes on the wing

Decals experimental

Place lettering and motifs such as national markings, stripes or warning signs true to scale. Output as SVG, DXF and DXF for Silhouette Studio, optionally with a cutting contour for print & cut.

To the machine

Ctrl+G jumps from any tab to the G-code, Ctrl+C on to cutting. That takes you from design to finished cut in two keystrokes.

G-code: 3D simulation next to the program text
3D simulation next to the program text

G-code

This is where the machine program is created: settings on the left, in the middle the 3D simulation with both gantries, wire, block and cutting paths, and the program text on the right. The simulation runs on the real G-code and real feed rates, so the displayed run time matches the machine.

  • Sources: core design, negative shells, DXF shapes, 3D model, lettering and cut-outs
  • Cutting direction from the rear or the front, right or left wing
  • Block cut before, after or during the airfoil cut
  • Block position, axis names, your own header and footer
  • Feed jumps above 10% are marked in red
  • Edit G-code by hand or load and simulate files from other programs
Cutting: Cutting tab
Cutting tab
Cutting: Kerf calibration
Kerf calibration

Cutting

This is where the actual work on the machine happens. The simulation serves as a last check before cutting, with position and manual jog below it. Before starting, the program checks that all travel and feed rates are within the machine's limits.

  • Block preparation: guillotine, trim to length, horizontal block cut
  • Kerf calibration: two test cuts for kerf against feed rate, optionally a third to adapt the wire heating
  • Pause or abort at any time, then return to zero
  • The E-STOP button does not replace a real emergency stop on the machine
Machine: Machine data, GRBL parameters and manual control
Machine data, GRBL parameters and manual control

Machine

This is where you connect to the board. All GRBL parameters can be set in the side menu and are transferred directly to the board. Machine data such as tower spacing and maximum travel go here too; the correct tower spacing (distance between the wire mounts) is important. Manual control and zeroing the axes are also here.

Milling experimental

2D CAM for a GRBL milling machine: contours from DXF or CAD editing become outside, inside, on-line, pocket or drilling operations, with holding tabs, preview and machine control of its own.

Requirements

A Windows PC for the ready-made .exe files, plus ready-made builds for Linux (x64) and macOS (Apple Silicon/Intel) that are not yet sufficiently tested; from source it runs anywhere with Python 3.11 or newer. The interface runs in a browser (Chrome or Edge) – or in its own window if you pick the windowed build, which ships its own display engine. The machine connection uses Web Serial.

Controllers

grblHAL with four axes (e.g. BTT SKR Pico) or Mega 5X (GRBL HotWire Mega 5X). Axis names freely configurable. Matching information and firmware for the boards are available from RC Keith.

File formats

Airfoils .dat, DXF, SVG · Models STL, OBJ, STEP, IGES · Export G-code, DXF, SVG, PDF, STL, 3MF, STEP, GMFC .cnc · Projects as JSON.

Operation

Starts as a single .exe – in your browser or in its own window – or straight from source with python launcher.py. No installation, no internet connection, no registration. Data stays on your own computer.

Open source

AI Foam Cut is released in full under the GNU General Public License, version 3 or later. The source code is open, the program stays free, and nobody has to rely on a one-person project being maintained forever.

What this means for you

  • Use, copy and pass it on – privately and commercially, at no cost
  • No licence key, no activation, no trial period, no registration
  • All modules of this edition can be used without restriction – G-code generation and machine control too
  • Nothing is reported back: no telemetry, no usage statistics, no update check
  • The generated G-code carries no personal watermark

Build and modify it

  • A plain web application with a small Python server, no build step required
  • Ready to run with python launcher.py (Python 3.11 or newer)
  • Build your own .exe with build_tool.py (browser build) or build_tool_electron.py (windowed build)
  • features.json lets you tailor which features your own build contains
  • You may pass on your changes – openly, under the GPL again

Contributing

  • Bug reports and suggestions on GitHub or by e-mail
  • For a bug, the project file that triggers it helps enormously
  • Feedback from the workshop is as valuable as code
  • Translations, manual, airfoil data: contributions need not be code
  • Contributed code is licensed under GPL-3.0-or-later as well

The licences of the bundled third-party components are listed in THIRD_PARTY_LICENSES.md in the source tree.

Download

Ready-made files for Windows, Linux and macOS, or the source code – the feature set is the same in all of them. The two ready-made Windows builds differ only in where the program is displayed.

Windows build for your browser

A single .exe, no installation, no internet connection needed. It starts a local server and opens the program in your browser (Chrome or Edge). A small download, because it uses the browser already on your machine.

Version 2.14 · about 25 MB · Windows PC

Download the .exe

Windows build with its own window

The same program as a standalone application: its own window, its own taskbar entry, no browser needed. It ships its own display engine, so it is independent of your browser settings and updates. In exchange the download is considerably larger.

Version 2.14 · about 87 MB · Windows PC

Download the .exe

Which one? If in doubt, take the browser build: it is much smaller and has been the usual edition from the start. The windowed build is worth it if you would rather use the program like a normal Windows application, or do not want Chrome or Edge on your machine. Both produce the same G-code and read the same project files – you can switch at any time.

Windows 7 / 32-bit not yet sufficiently tested

The windowed build for older computers: runs on Windows 7 SP1 and later and on 32-bit Windows. Same features, just with an older display engine (Electron 22), because newer versions no longer support Windows 7. On Windows 10/11, take one of the two builds above instead.

This build has only briefly run on a real Windows 7 machine so far. Please check everything in the simulation before the first cut and report problems on GitHub.

Version 2.14 · about 71 MB · Windows 7 SP1 or later, 32 and 64-bit

Download the .exe

Linux version not yet sufficiently tested

For Linux (x64) as its own window (AppImage) or as the browser variant. After downloading, make it executable with chmod +x. The AppImage needs libfuse2 (Ubuntu 24.04 and later: libfuse2t64), the browser variant a current distribution (glibc 2.43, e.g. Ubuntu 26.04). For the machine: sudo usermod -aG dialout $USER.

So far this build has only run briefly on a test system. Please check everything in the simulation before the first cut and report problems on GitHub.

Version 2.14 · AppImage about 121 MB · browser variant about 27 MB

macOS version not yet sufficiently tested

Its own program window as an .app in a zip, for Apple Silicon (M1 and later) or Intel Macs. The app is not signed: before the first start, run xattr -cr "/path/to/AI Foam Cut v2.14.app" once in the Terminal (instructions are in the zip).

This build has not yet been sufficiently tested on a real Mac. Please check everything in the simulation before the first cut and report problems on GitHub.

Version 2.14 · about 110 MB

Source code (GPL-3.0)

The whole project on GitHub: read it, clone it, change it, build your own .exe. With Python 3.11 or newer it also runs on Linux and macOS.

git clone https://github.com/aifoamcut/ai-foam-cut.git

Go to the repository

All buttons lead to GitHub; the files are not hosted on this website. No GitHub account is required. In doing so, GitHub (GitHub B.V. / GitHub, Inc.) receives the usual connection data such as your IP address – see the privacy policy.

Windows may warn about a new, unsigned .exe (“SmartScreen”). This free project does not buy a paid code-signing certificate. If you would rather not trust the files, build them yourself from source with python build_tool.py or python build_tool_electron.py.

Note: AI Foam Cut is a one-person project, developed with AI assistance. The software is not certified and carries no declaration of conformity for machine operation. It is under active development and comes with absolutely no warranty – downloading and running it is at your own risk; no liability is accepted, as far as legally permissible, for damage to your computer, operating system, data or machine (sections 15–17 of the GPL-3.0). A reachable emergency stop is a prerequisite, and every program belongs in the simulation before cutting. The disclaimer applies.

Contact

Questions, bug reports or feedback from the workshop: just send me an e-mail. Bugs and wishes are equally welcome as an issue on GitHub.

ai.foam.cut@gmail.com

For a bug please mention briefly which machine/controller you are using – and attach the project file if you can.