Similar apps
Compare allApp info
- Installs
- 0+
- Category
- Tools
- Content rating
- Everyone
- Version
- 2.0
- Released
- Oct 3, 2026
- Last updated
- 8 Oct 2026
- In-app purchases
- No
- Contains ads
- Yes
- Promo video
- No
- Requires Android
- 7.0
Loading…
This app isn't in any of our charts yet.
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).