Equation-Driven Pots
Equation-Driven Pots is a generative 3D design project for creating functional, printable pots, plates, and sculptural vessels from mathematical equations.
Instead of sculpting forms manually, the project defines geometry through sampled mathematical fields. In cylindrical mode, forms are driven by equations such as r(theta, z) or r(theta, z, v). In spherical mode, they are driven by equations such as r(theta, phi) or r(theta, phi, v). From those sampled fields, the project builds printable geometry such as outer walls, inner walls, bottoms, drainage openings, plates, and multi-part assemblies.
The result is a design system that can produce anything from simple round pots to highly sculptural objects with petals, ribs, lobes, waves, folds, nonlinear surface behavior, multi-color segmentation, field-based remapping, and world-space deformation.
At its core, Equation-Driven Pots treats mathematics not just as a way to describe geometry, but as a practical design medium for fabrication.
Project evolution
1. Fusion 360 Python experimentation
The project began as experimentation inside Fusion 360 using Python scripting and parametric sweep reconstruction. At this stage, the goal was not yet a dedicated pot generator, but a way to define complex 3D forms mathematically and reconstruct them as editable geometry inside CAD.
That work became:
Python/Fusion360/3d MathSweep Studio.py
This branch is useful when forms go beyond straightforward radial vessels and need additional CAD editing, reconstruction, or refinement after the initial mathematical definition.
Thingiverse page for the Fusion-based sweep branch:
https://www.thingiverse.com/thing:7327723
2. Pure Python cylindrical pot generation
After the CAD experimentation, the project moved toward a more direct procedural workflow: generating pots in pure Python from cylindrical radial equations.
This stage focused on forms described by:
r(theta, z)
This made it possible to generate printable meshes directly without depending on a CAD environment. It established the core logic of the project:
- sample the equation over a coordinate grid
- generate the outer wall
- generate the inner wall
- add the base and drainage hole
- export a closed printable mesh
That work became the basis for the early Python tools:
- Python/Equation Driven Pottery.py
- Python/Equation Driven PotteryGui.py
- Python/GuipyVista.py
- Python/GuiDash.py
This stage made the project much more portable and practical for procedural pot generation.
3. HTML adaptation for browser-based use
Once the cylindrical Python workflow was stable, the next step was adapting the project into browser-based tools so designs could be explored online without a local Python setup.
That led to the HTML / JavaScript branch, including tools such as:
- JavaScript/PotDesigner.html
- JavaScript/SweepDesigner.html
This was an important transition. The project shifted from being code-first to interaction-first. Users could now explore equations, preview forms, and export geometry directly in the browser.
4. Expansion into spherical coordinates
The next major step was spherical-coordinate vessel generation.
Instead of describing forms only as cylindrical height-based structures, the project expanded into equations of the form:
r(theta, phi)
This opened a broader design space for egg-like, globe-like, shell-like, and polar-symmetric structures that are harder to express through cylindrical coordinates alone.
That stage included tools such as:
- JavaScript/SphericalPotDesigner.html
Thingiverse page for the cylindrical and spherical generated pots:
https://www.thingiverse.com/thing:7327538
5. Unified textured design
The next stage unified cylindrical and spherical workflows into a single browser tool while introducing procedural surface texture as a second design layer.
This stage centered on:
- JavaScript/TexturedPotDesigner.html
The key idea was to separate:
- base scaffold
- surface texture
Conceptually, the system behaves like:
final radius = base radius + texture displacement
This separation is important because one equation controls the overall silhouette while another controls outer surface relief. The same form can be explored with many textures, and the same texture logic can be applied across very different forms.
This dramatically expanded the design space and made the workflow much more modular.
6. Multi-color pattern logic
The project then expanded beyond shape and texture into multi-color design logic.
This introduced tools such as:
- JavaScript/QuadColorPotDesignerMobile.html
The central idea was to use two separate mask equations:
- Pattern A
- Pattern B
These two masks generate four printable states:
- neither
- A only
- B only
- A + B overlap
This made it possible to design pots specifically for multi-color or multi-material 3D printing without requiring the form itself to carry all of the visual complexity.
Thingiverse page for the multi-color branch:
https://www.thingiverse.com/thing:7328545
7. Nonlinear field design
From there, the project moved into more experimental mathematical behavior through nonlinear field operations.
This stage introduced ideas such as:
- atan for saturation and compressed ridges
- asin / acos for arc-like petals and carved lobes
- mod for wrapped angular logic
- floor for stepped phase behavior
- log for ripple compression
- irrational frequency mixes for reduced repetition
That work was explored in tools such as:
- JavaScript/NonlinearFieldPotDesigner.html
This stage extended the project from “equation-defined pots” into a richer field-design workflow where the mathematical behavior itself became a major design layer.
8. Field modifiers
The next experimental step was field modification.
Instead of only changing the field value, field modifiers change where the field is sampled before evaluation. In practical terms, that means remapping the coordinate system used by the base, texture, or pattern fields.
Conceptually:
theta' = theta + strength * M(theta, z, v)
This makes it possible to create:
- twist drift
- crown rotation
- petal migration
- diagonal weave motion
- regional activity windows
- remapped symmetry
Field modifiers are useful when the form should still behave like a pot or vessel, but the sampled field should drift, rotate, or fold in a more dynamic way.
9. Field distortion
The next step extended the project into field distortion.
Unlike field modifiers, which alter the sampled coordinates of the field, field distortion deforms the generated body in world space after the field has already been evaluated.
Conceptually:
- x' = x + Dx
- y' = y + Dy
- z' = z + Dz
This opened the project to more physical and sculptural behaviors such as:
- wind bend
- gravity sag
- swirl and vortex motion
- torsion
- crown turning
- pressure dents
- hand-formed asymmetry
This marked a major expansion. The project was no longer limited to radial field definition alone. It could now combine equation-defined form generation with equation-defined deformation.
10. Unified all-in-one GUI
The current stage of the project brings the major browser workflows together into a single unified interface:
Equation Driven Pot Designer
https://arkadiraf.github.io/Equation-Driven-Pots/
The unified GUI now includes:
- cylindrical and spherical coordinate systems
- base scaffold libraries
- structural geometry controls
- surface texture
- dual pattern color logic
- functional pot generation
- functional plate generation
- pot + plate workflows
- STL export
- multi-part 3MF export
- experimental Field Modifier
- experimental Field Distortion
This is an important step because it turns the project into a broader browser-based equation design system rather than just a collection of separate generators.
What the project includes
The repository now spans multiple workflows and generations of tools, including:
- pure Python pot generation
- Tkinter GUI tools
- PyVista preview GUI
- Dash-based browser UI
- browser-based cylindrical designers
- browser-based spherical designers
- browser-based sweep tools
- browser-based textured pot design
- browser-based multi-color design
- browser-based nonlinear field design
- browser-based unified all-in-one design
- Fusion 360 sweep reconstruction tools
Project repository:
https://github.com/arkadiraf/Equation-Driven-Pots
Live unified browser designer:
https://arkadiraf.github.io/Equation-Driven-Pots/
How the geometry is built
At its core, the project evaluates a user-defined equation across a sampled coordinate grid and converts the sampled field into printable geometry.
For cylindrical designs:
- the main form is defined by r(theta, z) or r(theta, z, v)
For spherical designs:
- the main form is defined by r(theta, phi) or r(theta, phi, v)
The system can then construct:
- outer wall
- inner wall
- bottom surface
- drainage hole
- plate geometry
- pot + plate assemblies
- closed printable manifold meshes
Later layers may add:
- texture displacement
- color-mask logic
- field modifiers
- field distortion
The exported meshes can then be opened in Blender, MeshLab, Cura, PrusaSlicer, or similar tools for slicing, inspection, and printing.
Why this project matters
Equation-Driven Pots turns mathematics into fabrication.
It is useful both as a practical workflow for creating printable pots and vessels, and as a broader platform for exploring:
- procedural design
- mathematical form
- browser-based interactive design
- computational geometry
- parametric reconstruction
- nonlinear surface behavior
- multi-color print segmentation
- field remapping
- spatial deformation
- CAD continuation workflows
It also supports AI-assisted workflows through prompt-based design generation, making it possible to use language models to help define pots, textures, masks, modifiers, and distortions for the browser tools.
The project has gradually evolved from “generate a pot from an equation” into a more complete equation-driven 3D design environment for printable objects.
Useful links
GitHub repository:
https://github.com/arkadiraf/Equation-Driven-Pots
Live unified browser designer:
https://arkadiraf.github.io/Equation-Driven-Pots/
Thingiverse — cylindrical and spherical generated pots:
https://www.thingiverse.com/thing:7327538
Thingiverse — Fusion / sweep-based branch:
https://www.thingiverse.com/thing:7327723
Thingiverse — multi-color branch:
https://www.thingiverse.com/thing:7328545