Vectora
Back to calculator

VECTORA / HELP

Make the graph do the work.

A practical reference for writing expressions, building geometry, exploring data, and sharing a graph.

Showing all help sections.

About Vectora

Vectora is a local-first graphing studio made by Ian Mattas. It is designed for quickly moving between a handwritten idea and a visible, shareable graph without an account or a server-side document.

Expressions are parsed and evaluated in your browser. A graph link stores the graph in the address, so sharing a URL shares the equations themselves. Vectora is still in development; behavior and supported syntax will continue to grow.

What Vectora can do

Use the same editor for ordinary functions, implicit curves, inequalities, scalar fields, complex visualizations, probability, sequences, geometry, and 3D parametric scenes. The renderer uses WebGL2 where appropriate and a canvas overlay for labels, measurements, and draggable points.

  • Fast exploration: every non-empty row updates the graph as you type, while sliders and view controls let you inspect a result interactively.
  • Geometry-aware: named points, lines, segments, rays, circles, polygons, squares, angles, intersections, projections, and measurements have dedicated visual overlays.
  • Shareable graphs: copy the URL to preserve the current expressions; export the visible graph as SVG for documents or presentations.
  • Keyboard-friendly: use the docked calculator keyboard for digits, operators, powers, roots, fractions, Greek letters, calculus symbols, and geometry notation.
  • Installable: on supported mobile browsers, add Vectora to the home screen for an app-like calculator.

Basics

Type one expression per line. Vectora updates as you type and keeps the current graph in the URL.

y = sin(x)
x^2 + y^2 = 4
9x30/64

Numbers, constants, and implicit multiplication are supported. The last line evaluates to 4.21875; x between two numbers is accepted as a multiplication mark.

Formatting and operators

Use +, -, *, /, ^, parentheses, and absolute-value bars.

|x - 2| < 1
2(x + 1)
0 <= y <= 2
f(x) = x^2

Use # for a note heading. Rows such as a = 2 become reusable constants, and names can be dragged when they are numeric sliders.

Keyboard and entry helpers

Open ⌨ Calculator keyboard at the bottom of the sidebar. Number keys insert digits and a decimal point; operator keys insert parser equivalents (for example, × becomes * and ÷ becomes /).

Power and fraction helpers insert editable building blocks: xʸ inserts ^, x² inserts ^2, √ starts sqrt(, a/b inserts (1)/(2), and cbrt/nroot start real-root functions. If text is selected, roots, powers, fractions, absolute value, and ordinary functions wrap that selection. Place the caret where you want the text before opening the keyboard; Vectora restores that selection when a key is pressed.

Symbols are convenient aliases, not decorative text: π, τ, ∞, comparison signs, Greek letters, and calculus symbols are recognized by the expression parser. A temporary incomplete fragment is normal while building an expression; finish its parentheses or operands to clear the row error.

Functions and constants

Common functions include sin, cos, tan, asin, acos, atan, sqrt, cbrt, nroot, abs, exp, ln, log, floor, ceil, round, min, max, mod, gamma, and factorial. nroot(value, index) requires a nonzero integer index and rejects even roots of negative real values. Constants include pi, e, i, and inf.

Complex helpers include re, im, arg, and conj. Use the symbol keyboard in the editor for π, ∫, Σ, Greek letters, and comparison symbols.

Geometry

Points and constructions use coordinate pairs. Supported forms include line(A, B), segment(A, B), ray(A, B), circle(A, r), polygon(A, B, C), angle(A, O, B), perpendicularBisector(A, B), and tangent(circle(O, r), P).

A = (0, 0)
B = (2, 1)
segment(A, B)
circle(A, 2)
perpendicularBisector(A, B)
tangent(circle(A, 2), (2, 0))

Point rows with numeric coordinates can be dragged directly on the graph. Measurement readouts include distance, perimeter, area, and angle units. Intersections automatically receive an angle arch when two line-like objects cross.

Sequences, calculus, probability, and 3D

Use sum(n=1..10, n^2), prod(n=1..5, n), and the definite integral int[0..1] x^2 dx. Define distributions with rows such as X ~ Normal(0, 1), then use probability and expectation expressions.

Vectors with one parameter create 3D curves, for example (cos(u), sin(u), u). Wrap a 3D curve in tube((x(u), y(u), z(u)), radius) to make a solid tube; the radius is optional and may use constants, sliders, or t. Two parameters create a surface, such as (u, v, sin(2pi u)). Implicit surfaces also work: z = f(x,y).

Complex plots include domain coloring and conformal maps. Iterated expressions can render fractal views. These advanced forms are evaluated locally in the browser. If a form is not recognized, simplify it to a supported function or check the exact spelling in the Functions section.

Controls, sharing, and troubleshooting

  • Drag to pan; wheel or pinch to zoom; use the home button to reset. Focus the canvas for arrow-key pan/orbit, +/− zoom, and Home reset.
  • Right-drag or two-finger drag orbits 3D scenes.
  • Use row options to hide, duplicate, remove, or solve a simple scalar equation.
  • Hover near axis intercepts, roots, curve intersections, or data points to reveal a coordinate marker and tooltip.
  • Use Graph settings to toggle the grid, axis labels, and point markers. Settings are saved locally on this device.
  • Copy the address to share the exact expressions and state.
  • WebGL2 is required. If rendering pauses, reload after restoring the browser’s graphics context or try a current browser.
  • Use Enter for a new row, Ctrl/Cmd+Z to undo, and Ctrl/Cmd+Shift+Z to redo.
  • To troubleshoot a blank graph, check the row error, close unfinished parentheses, confirm variables are defined, and try a simple test such as y = sin(x). A red row message means parsing or evaluation stopped for that row; it does not prevent other rows from rendering.