A small mathematical toy for handling orthants directly: render them, turn them in your hand, and see how the experience changes with dimension and sign choice.
The first slice is deliberately not a proof interface. It is a draggable three-dimensional positive orthant: three translucent coordinate-face patches meeting at a visible corner. One-finger drag rotates the object.
The mathematical geometry lives in Idriç under src/. src/Generate.idric emits app/src/main/cpp/orthant_model.h; the Android shell is the same small native pattern used by the other math viewers: NativeActivity + android_native_app_glue + EGL + GLES3.
Requirements: JDK 17, Android SDK 36, NDK 29.0.14206865, CMake 3.22.1, and Gradle 8.13.
gradle :app:assembleDebugThe APK is written under app/build/outputs/apk/debug/.
src/Orthant.idric is the source of the face and edge vertices. The generated C header is checked in so an Android build does not need to bootstrap the compiler.
If an Idriç checkout is available at ../Idric:
scripts/regenerate-model.shSet IDRIC=/path/to/Idric/build/exec/idris2 to use a different checkout.
- one finger: rotate the orthant
- lift: leave it where it is
Pinch, dimension changes, and sign changes are intentionally not in this first slice.
Kenneth O. May, “The Impossibility of a Division Algebra of Vectors in Three Dimensional Space,” American Mathematical Monthly 73(3), 1966, 289–291. See references/may-1966.md.
The maintained C arithmetic uses ÷ and is compiled directly by pinned ICK.
The Android and unsigned-release workflows qualify the compiler for each
maintained ABI, restore the stages under build/ick/<abi>, and check out the
pinned shared source producer under .ai-ci-ick. Local Gradle builds require
these same stages and checkout; no source rewrite or stock-C fallback is used.
NDK r29 still assembles ICK output, compiles unchanged NativeActivity glue, and
links the application. Existing Fortify2, stack protection and API26 are retained.
Native-library proofs do not replace the existing APK, emulator or device checks.