I’ve just released version 2.0 of the Function Playground, a tool for designing 3D-printable vases by exploring and visualizing mathematical functions.
This update focuses on making the workflow clearer and more flexible, while giving you more direct control over the final shape.
What’s New
A New Grid Layout
There are now three independent grids for r, Δr, and Δφ. Each 4×4 grid is its own page, building a function for one specific output.

Separating the outputs makes each function easier to understand and gives you more space to experiment without everything being tangled together.
To switch between grids, click the grid name below the editor. The currently active grid is highlighted in blue, and the bottom-right corner shows which output you’re editing.
Direct Radius Control
The new third page lets you directly control the base radius by interpolating between an inner and outer diameter.
This makes it much easier to define a clean, stable base shape first, and then layer smaller variations on top using Δr and Δφ.
In practice, the output of the r function maps smoothly between the inner and outer diameter from the main settings. It’s a simple but powerful way to sketch the overall silhouette of your vase before adding details.
Copy Cells
You can now copy cells within a grid or across grids.
Click the Copy Cell button, select a source cell, and then choose a target cell. All parameters and settings are duplicated, making it much faster to reuse patterns or experiment with variations.
Clean-Up Action
The clean-up action removes all cells that are not connected to the output and compacts the grid.
It analyzes the flow of operations and identifies which cells actually contribute to the result. Cells that have no influence are replaced with simple pass-throughs, and empty rows are removed by shifting everything upward—without changing the final output.
This is especially useful after experimenting or importing older projects.
Three New Spline Functions
Three new spline functions—with 5, 7, and 11 control points—are now available.
These are a very intuitive way to design precise vase profiles. Instead of stacking multiple operations, you can directly shape curves using control points.

They’re great for controlled designs, but still flexible enough to combine with other functions for more organic results.
Backward Compatibility
All projects created with version 1 remain compatible with version 2.
When loading an older project, it is automatically converted:
- Existing cells are duplicated onto the first two pages (Δr and Δφ)
- The r page defaults to passing through the z input, matching the previous behavior
After conversion, you can run the clean-up action to remove any unused (“dead”) cells.
As a small note: the example projects haven’t been manually updated. They are converted automatically when loaded, followed by a clean-up pass.
What’s Coming Next?
At this point, the function generator itself feels feature-complete. Future improvements on the web version will likely focus on usability and small refinements.
The main limitation now is browser performance. Complex designs can push JavaScript and memory usage quite far.
Because of that, I’ve started working on a native version for macOS and iOS, written in Swift and using Metal for rendering. This should allow much smoother previews and handle more complex models.
For now, it’s a personal project—I’ll decide later whether to release it publicly.
If you haven’t tried Function Playground yet, now is a great time to jump in and experiment.
And if you’ve already built something—I’d love to see it. Feel free to share your designs or thoughts!
