-
Notifications
You must be signed in to change notification settings - Fork 0
Mariner
MrChomp edited this page Aug 16, 2026
·
1 revision
A scientific calculator with an expression parser, history tape, and navigation helpers.
-
Launch:
python3 apps/Mariner/main.pyorCtrl+Alt+E - Memory target: ~20 MB
- UI: PySide6 (single file, ~610 lines)
Mariner is Nautilus' tiny-but-capable calculator. It evaluates full
expressions through a hand-written recursive-descent parser — no eval(), no
external math engine beyond the stdlib.
-
ExpressionEvaluator — a hand-written tokenizer + recursive-descent
parser (
expr/term/factor/power/atom) over a whitelisted math vocabulary:sin,cos,tan,log,ln,exp,sqrt,fact,gcd, plus the constantspi,e,tau, andphi. -
Full operator support — unary minus,
^power,!factorial (gamma fallback),%, and parentheses. - Live result preview — the result updates as you type.
-
History tape — previous results persist to
history.json(capped at 200 entries) and are recalled with a click. -
Robust output — handles scientific notation,
INF, andNaNgracefully.
sqrt(2) ^ 10
sin(pi / 6) + cos(tau / 4)
fact(7)
gcd(84, 36)
The parser lives entirely inside apps/Mariner/main.py and uses only the
Python standard library, keeping the app to ~20 MB of RAM.
Nautilus OS — a weightless, high-density desktop environment built for low-resource performance (Raspberry Pi 500, < 350 MB base RAM).
Nautilus OS · Wiki · Issues · License
Built in Python on PySide6. MIT License.
Home — overview, quick facts, shortcuts