2 unstable releases

new 0.7.0 Nov 19, 2024
0.6.0 Sep 27, 2024

#1758 in Math

Download history 161/week @ 2024-09-27 11/week @ 2024-10-04 7/week @ 2024-10-11 2/week @ 2024-10-18 7/week @ 2024-11-01 2/week @ 2024-11-08 125/week @ 2024-11-15

134 downloads per month
Used in geo-aid

MIT license

28KB
669 lines

Geo-AID Logo

Geo-AID

Geo-AID is a tool aiming to aid people at drawing geometry figures. It uses a figure script with criteria definitions to generate a figure meeting them and draw it.

Usually tools for figure generation are based on constructions (e.g. GeoGebra). In many cases they're more than enough to get a nice-looking figure, but there are problems out there with figures that are either difficult or straight up impossible to get right in those tools, let alone on paper. Geo-AID addresses that issue. Instead of limiting the user to constructive expressions, it provides a wide range of constructive functions aside a rule system, using which a user can enter rules that a figure must meet (e. g. angle equality, point collinearity etc.). Being an optimization engine at its core, Geo-AID can then take such a description and generate a figure based on it as best as it can. With some problems it does very well, with others - not so much, but the whole tool is under heavy development with constant improvements.

Installation

To use and possibly install Geo-AID, you will need Rust with cargo. You can get those here: https://www.rust-lang.org/.

Once done, you can either clone the repository with git and run Geo-AID using

cargo run --release -- <geo-aid arguments here, type --help for help>

Or install Geo-AID with

cargo install geo-aid

and run it with

geo-aid <arguments here, type --help for help>.

Useful resources

The Geo-AID book is hosted at https://geo-aid.github.io/. It's also available under the geo-aid-book/ directory. You can display it as HTML using mdbook:

cd geo-aid-book
mdbook serve --open

Goals

The ultimate goal of Geo-AID is to reduce the pain related to figure drawing to bare minimum. It aims to allow writing and generating complicated figures and rendering them in various formats the user may find useful (primarily LaTeX, SVG, GGB (WIP)). It should enable article and book writers to put figures in their works without too much of a hassle, aid teachers in conducting helpful geometry lessons and lectures, and help students (especially those starting in olympiads) learn their craft.

How to contribute?

If You're interested in contributing to Geo-AID, feel free to check out the contribution guide.

The Community

Join the conversation on Discord.


lib.rs:

Geo-AID is capable of outputting figures in JSON, according to the schema at top level in the repo. This is the format writer responsible for this.

Dependencies

~1.2–2.2MB
~48K SLoC