Skip to content

✨ Helion

❤️ Visualizing the beauty of math & physics

Section titled “❤️ Visualizing the beauty of math & physics”

Helion is a browser-native framework for interactive mathematics and physics. Its API is designed to express scientific ideas as directly as possible by offering a scientific domain-specific language embedded in JavaScript.

As a consequence, semantics that are immediately familiar to mathematicians and physicists take precedence over software abstractions that would introduce an unnecessary learning curve. Examples of such semantics are concepts such as transformations, fields1, parametric geometries2, operators3, and numerical solvers4.

Helion is built around the concept of transformations and maintains a clear separation between mathematical or physical models and their visual representations. Models evolve by applying transformations to them, while one or more views visualize their state.

Helion is the product of decades of exploration in mathematics, physics, programming, and education, driven by a lifelong fascination with the beauty and patterns of nature.

📌 Code expresses scientific intent directly
📌 Browser-native JavaScript — no installation or build steps
📌 Model-driven API built around fields, operators, geometries, and transformations
📌 Multiple synchronized views can observe the same model
📌 Designed for education, exploration, and interactive simulations

body.apply(gravity);
particle.apply(electricField);
pair.apply(spring);
pair.apply(collision);
field.apply(new FFT2D());
field.apply(new Laplacian());
field.apply(new ShapeMask(...));

Helion provides a low-cognitive-overhead environment for expressing mathematical and physical systems, where models, simulations, and visualizations remain tightly synchronized and can be explored interactively in the browser.

The following concepts form the core of Helion:

ConceptQuestionExample
StateWhat is the current state?Field / Body / Particle cloud
apply()How is the state transformed?GaussianImpulseOperator
evolve()How does the state evolve?SchrödingerSolver
bind()How is the state represented?bind(body.alwaysWith(view))

These concepts are interacting with one another in the following way:

Equation (physical law)
uses
Solver
evolve()
Operator ──► State ──► View
apply() synchronize()

👩🏻‍🎓 students learning physics and mathematics
👨🏻‍🏫 educators building interactive explanations
🧑‍💻 learners developing physical intuition
🕵️ researchers prototyping ideas

ProjectBrowserNice 3DMath semanticsPhys semanticsAPI
VPython🤞💪🤏🤏very basic
Three.js✔️🎖️low level
p5.js✔️🤏basic
Babylon.js✔️🎖️low level
Mathematica❌ (cloud)🎖️💪💪💪💪high level
MATLAB👍💪🤏high level
Manim👍💪high level
Helion✔️👍💪💪high level
  1. Fields demos

  2. Parametric geometries demo

  3. Operator demo

  4. Numeric solvers demo 1 and demo 2