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