olympiad geometry, minus the grind

does the bash
for you.

Give it a plane-geometry diagram. It reads the construction, assigns coordinates, and turns the whole configuration into a system of algebraic equations you can check symbolically.

Built for olympiad contestants and coaches working on configuration-heavy problems (IMO, USAMO) who would rather not grind through the algebra by hand.

figure-1.ggb
BCMNROLA
A
(0.300, 1.663)
R
(0.154, 0.567)
(BMR)∩(CNR)
(0.078, 0.000)
dist to BC
1.1×10−15

IMO 2004 · Problem 1

Let ABC be acute with AB ≠ AC. The circle on diameter BC meets the sides at M, N; O is the midpoint of BC. The bisectors of ∠BAC and ∠MON meet at R. Then circles BMR and CNR meet again on BC.

every point recomputes from coordinates as A moves

real olympiad figures. click one and it runs in the terminal

how it works

from a diagram to equations you can check.

The engine derives the algebra for every object as a chain of steps. It has to: written as one expression per object, the same construction runs to millions of characters.

1_read.ggb

step 1 of 3

read the construction

GeoBash opens the GeoGebra file and recovers every object, plus what it depends on.

O = Midpoint(B, C)
ω = Circle(O, B)
M = Intersect(ω, Segment(A, B))
N = Intersect(ω, Segment(A, C))
R = Intersect(AngleBisector(B, A, C),
AngleBisector(M, O, N))
2_coords.tex

step 2 of 3

assign coordinates

Free points become variables. Every other object gets written in terms of them.

only A is free here, so the whole figure depends on two unknowns: a and b

3_steps.tex

step 3 of 3

derive a chain of steps

Each object is a short binding that reuses earlier ones, so the whole system stays readable.

the real engine, right here

interactive reduction terminal

Pick a figure or drop in your own .ggb file. The engine reads the construction, assigns coordinates, and returns every object with the steps that define it.

each step typesets as LaTeX — switch to plain to copy it

geobash — reduction terminal

no figure loaded.

Pick an example, or drop a .ggb file anywhere on this window. Every object shows up here with its coordinates and the steps that define it.

for papers & write-ups

cite GeoBash

If you use GeoBash for research, write-ups, or competition analysis, please cite it as follows.

it makes us very happy

geobash.bib
@misc{geobash,
author = {Thun and Pun},
title = {{GeoBash}},
year = {2026},
howpublished = {Software},
url = {https://github.com/blackslex/geobash},
note = {Version v0.1}
}