http://localhost:8271
is currently NOT available
in the Apple Safari browser.
Note: This page only lists technical stuff.
The following diagram visually shows all components of the app and the environment.
Formal language to expressively define online math courses. Documentation
Turing-complete programming language with intrinsic mathematical data types. Documentation
JSON-based technical language for compiled online math courses. Documentation
"Math Runtime" is used as math engine in the mathe:buddy app. It is entirely written in the Dart programming language and has no dependencies.
Currently implemented grammar
SMPL is a math-oriented programming language that can be interpreted in the browser. It is entirely written in the Dart programming language and has no dependencies, except "math-runtime".
More examples can be found in https://github.com/mathebuddy/mathebuddy-public-courses (consider @code parts).
Currently implemented grammar (math-runtime grammar is not listed here)
MBL (mathe:buddy language) is a language to describe randomized and gamified math online courses. The compiler is entirely written in the Dart programming language and has no dependencies, except "smpl" and "math-runtime", which are part of the mathe:buddy project. The compiler generates code in the MBCL format (mathe:buddy compiled language), which is encodes as JSON-data.
More examples can be found in https://github.com/mathebuddy/mathebuddy-public-courses
Currently implemented grammar
The app will contain a chatbot. This playground provides the current implementation. The language is yet only German.
Wie geht's?
a=[[1,2],[3,4]]
3*a
TeX
syntax is used to display equations in the
mathe:buddy app. Unfortunately, there is currently no fully
implemented TeX rendering engine available that meets our demands: We
use Flutter
to write the app. Equations must be embedded
into TextSpan elements in fluent text. These elements must be
updatable at runtime. All available libraries, for example
MathJax
, use JavaScript (JS)
. Even it is
feasible to run JS code from Flutter, MathJax has a minified size of
nearly 2 MB (would still be OK!). Furthermore, we would require
conditional code for the JS runtime (dart:js for the web-app,
flutter_js for all other platforms), that results in an ugly build
process.
YES, we know about flutter_tex
; but it just is a shell
around MathJax and does not provide TextSpan integration.
Dart
programming language;
without any dependencies and maintained by the mathe:buddy software
architect.