App Curves Visualizer

App Curves Visualizer

ivan gabrovski
Oct 8, 2026
  • Everyone

  • Android OS

About App Curves Visualizer

An app for visualizing space curves and their differential-geometric quantities.

# App Curve Visualizer for Android

**English** | [Български](README.bg.md)

An app for visualizing space curves and computing their differential-geometric quantities.

## Using the app

- Enter `x(t)`, `y(t)`, `z(t)` and an interval `[a, b]`, then tap **Draw**.

- The slider moves the point along the curve; all quantities update for the current `t`.

- Rotate the curve with your finger. The checkbox toggles the osculating circle.

- Syntax (exp4j): `+ - * / ^`, `sin cos tan asin acos atan sinh cosh tanh exp log sqrt abs`, constants `pi` and `e`. Example: `2*sin(t)^2`.

## Points table

The table icon opens a separate screen (`PointsActivity`) with the coordinates x(t), y(t), z(t) of points of the current curve. Set **t from**, **t to** and the **step**, then tap **Compute**; the defaults are the current interval and 1/10 of its length. Up to 2000 points are shown. The text is selectable, so it can be copied.

## Saving curves

- **Save (disk icon):** stores the current curve (x, y, z and interval) under a name; saving with an existing name overwrites it.

- **My curves (folder icon):** lists saved curves. Tap one to load and draw it; long-press to delete.

- Curves are kept on the device (SharedPreferences) and survive app restarts.

## Menu (⋮)

The top bar has icons for Save and My curves, plus Examples and Language (if there is room), and a ⋮ overflow menu (About):

- **Examples:** helix, circle, twisted cubic, Viviani's curve, trefoil knot. Picking one fills in the fields and draws it.

- **Language:** Auto (system), English, Български, Français, Deutsch, Español.

- **Help:** a short description of the app, links to the of author's other apps and help for app.

## Languages

The UI is available in English (default), Bulgarian, French, German and Spanish. By default it follows the phone language; the menu lets you pick a language manually (the choice is remembered). To add a language, copy `res/values/strings.xml` to `res/values-XX/` (XX is the language code), translate the values, then add the code to `LANG_CODES` and the name to `setupLanguageSpinner()` in `MainActivity.java`.

## Displayed quantities

| Quantity | Formula | Meaning |

| **r(t)** | (x(t), y(t), z(t)) | Position of the point |

| **\|r'\|** (speed) | √(x'² + y'² + z'²) | Speed along the parametrization |

| **s** (arc length) | ∫ₐᵗ \|r'(u)\| du | Distance travelled from a to t (Simpson's rule) |

| **κ** (curvature) | \|r' × r''\| / \|r'\|³ | How fast the curve bends. Line: 0. Circle of radius R: 1/R |

| **ρ** (radius of curvature) | 1/κ | Radius of the best-fitting circle. ∞ when κ = 0 |

| **τ** (torsion) | (r' × r'')·r''' / \|r' × r''\|² | How much the curve leaves its plane. Planar curve: 0. Right-handed: τ > 0, left-handed: τ < 0 |

| **T** (tangent) | r' / \|r'\| | Unit vector along the direction of motion (red) |

| **N** (principal normal) | B × T | Unit vector towards the center of curvature (green) |

| **B** (binormal) | (r' × r'') / \|r' × r''\| | Perpendicular to the osculating plane (blue) |

| **a_T** | (r'·r'') / \|r'\| | Tangential acceleration: change of speed |

| **a_N** | κ·\|r'\|² | Normal acceleration: change of direction. Total acceleration is a_T·T + a_N·N |

| **Center of curvature** | C = r + ρ·N | Center of the osculating circle |

| **Osculating circle** | lies in the (T, N) plane, center C, radius ρ | The circle that touches the curve to the highest order at the point (orange) |

### Planes of the frame

- **Osculating plane:** spanned by T and N, normal vector B

- **Normal plane:** spanned by N and B, normal vector T

- **Rectifying plane:** spanned by T and B, normal vector N

### Frenet-Serret formulas

(s is arc length)

- dT/ds = κ·N

- dN/ds = −κ·T + τ·B

- dB/ds = −τ·N

Curvature and torsion determine a curve uniquely up to a rigid motion of space.

## How it works

r', r'' and r''' are computed numerically with central finite differences (step H = 10⁻³), then the formulas are applied. Arc length uses Simpson's rule (200 intervals).

Show More

What's new in the latest

Last updated on Oct 8, 2026
Minor bug fixes and improvements. Install or update to the newest version to check it out!
Show More

Videos and Screenshots

  • App Curves Visualizer poster
  • App Curves Visualizer screenshot 1
  • App Curves Visualizer screenshot 2
  • App Curves Visualizer screenshot 3

App Curves Visualizer APK Information

Latest Version
Varies with device
Category
Tools
Available on
Content Rating
Everyone
APKPure icon

Super Fast and Safe Downloading via APKPure App

One-click to install XAPK/APK files on Android!

Download APKPure
thank icon
We use cookies and other technologies on this website to enhance your user experience.
By clicking any link on this page you are giving your consent to our Privacy Policy and Cookies Policy.
Learn More about Policies