Skip to content
IACBIPublic

About

Flutter app for learning linear algebra through exact rational matrix calculations, animated worked steps, quizzes and 2D transformations.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Matriks

Interactive linear algebra with exact matrix arithmetic and guided visual solutions.

Flutter 3.47.1 Dart 3.13.1 Platforms Tests License

Read this in: English · Türkçe


English

Overview

Try it in the browser: https://iacbi.github.io/matriks/ — the full app, nothing to install.

Matriks teaches linear algebra by showing the work. Twelve topics — from Gauss-Jordan elimination to eigenvectors — are solved with exact BigInt rational arithmetic, so a fraction stays a fraction and never drifts into floating-point noise. Each solution is replayed step by step: the operands that feed a cell are highlighted while the cell changes, and the arithmetic behind it stays on screen afterwards.

Results are labelled honestly. Every solution carries an accuracy (exact or approximate) and a completeness (complete, partial or unsupported), so an approximation is never presented as an exact answer.

Everything runs on the device. There is no backend, account system or remote data store; only presentation preferences are persisted, never matrices or quiz history.

Know the numerical boundaries before relying on it. Most operations accept dimensions 1–5. Eigen analysis covers 2×2 and 3×3 only, and nothing in it is rounded: irrational and complex eigenvalues are written exactly in radicals (Cardano's formula or cosines for an irreducible cubic), every eigenvalue gets exact eigenvectors, and a repeated eigenvalue gets its whole eigenspace. It is not a general-purpose numerical eigensolver. Cell input is capped at 32 characters to bound user-controlled computation.

Features

  • Twelve topics on a suggested learning path — entry-wise operations, elimination (RREF, REF, Ax = b), matrix algebra (determinant, inverse), decomposition and spectra (rank-nullity, LU, eigenvalues), and visual practice (2D transformations, quiz) — numbered in that order, with a small drawing of each operation and a "Continue where you left off" card.
  • Exact arithmetic throughout. Rationals are stored as BigInt numerator and denominator; results are shown as fractions or decimals on demand. The result screen and a finished lesson each recompute the answer with an independent method (for example A·A⁻¹ = I, or Av = λv for an exact eigenpair) when the operation has one to offer.
  • Guided playback driven by the visible animation rather than a background timer: pause, step forward and back, scrub inside an operation, replay, and scale speed from 0.25× to 4×. Every lesson is a single stage — matrix, role legend, a one-sentence phase caption and a collapsible details drawer — at any screen width.
  • Readable work. Long exact expressions shrink to a 14 px floor and then scroll instead of truncating; the full calculation for any cell is one tap away.
  • Practice with a curated five-question round plus generated rounds from random small matrices, where every wrong option names the misconception it comes from.
  • Five languages (English, Turkish, Simplified Chinese, Spanish, Russian), light and dark themes, adaptive layout from 320 px upwards, system text scaling and reduced-motion support.

Requirements

A Flutter SDK satisfying the Dart constraint ^3.13.1 in pubspec.yaml. Validated against Flutter 3.47.1 / Dart 3.13.1.

Installation

The engine is a separate package, so resolve both:

flutter pub get
cd packages/matrix_engine
dart pub get
cd ../..
flutter gen-l10n

Usage

flutter run

Release builds:

flutter build web --release
flutter build windows --release

Serve build/web through any HTTP server. When distributing the Windows build, ship the whole build/windows/x64/runner/Release directory — the executable needs its DLLs and data folder.

Web, Windows and the test suites are the validated paths. Android, iOS, Linux and macOS targets are scaffolded but unverified here, Android release still uses the debug signing configuration, and the inspected Windows executable is unsigned.

Configuration

Language, theme, solution mode, default playback speed, explanation level, number view and player keyboard shortcuts live in the in-app Settings tab and persist locally through versioned preferences, along with the last topic opened and which topics were finished — never matrices or quiz answers.

Translations are edited in all five lib/l10n/app_*.arb source files and regenerated with flutter gen-l10n. Never edit lib/l10n/generated/ by hand.

Contributing

CONTRIBUTING.md is the short version; AGENTS.md is the working contract: architecture boundaries, playback invariants, UI and accessibility rules, and the commands expected before delivery. Read it before changing the step player or the engine. Security reports go through SECURITY.md, not a public issue.

flutter analyze
flutter test
cd packages/matrix_engine && dart analyze && dart test

An optional animation benchmark is excluded from the default suite:

flutter test tool/motion_benchmark_test.dart --reporter expanded

Start from the documentation index; PROJECT_REVIEW.md records dated findings and ROADMAP.md lists proposed work, which is not implemented behaviour. Keep disposable logs and screenshots in the ignored output/ directory.

License

Apache License 2.0 — see LICENSE. It grants use, modification and redistribution, requires modified files to be marked, and includes an express patent grant from every contributor.

Maintained by 𝓐.𝓒.𝓑.

⬆ Back to top


Türkçe

Genel Bakış

Tarayıcıda deneyin: https://iacbi.github.io/matriks/ — uygulamanın tamamı, kurulum gerekmez.

Matriks lineer cebiri işlemi göstererek öğretir. Gauss-Jordan eliminasyonundan özvektörlere kadar on iki konu, tam BigInt rasyonel aritmetiğiyle çözülür; kesir kesir kalır, kayan nokta gürültüsüne dönüşmez. Her çözüm adım adım oynatılır: bir hücreyi besleyen operandlar hücre değişirken vurgulanır, arkasındaki aritmetik sonrasında da ekranda durur.

Sonuçlar dürüstçe etiketlenir. Her çözüm bir doğruluk (tam ya da yaklaşık) ve bir kapsam (tamamlanmış, kısmi ya da desteklenmiyor) taşır; yaklaşık bir değer hiçbir zaman kesin sonuçmuş gibi sunulmaz.

Her şey cihazda çalışır. Arka uç, hesap sistemi veya uzak veri deposu yoktur; yalnızca sunum tercihleri saklanır, matrisler ve sınav geçmişi saklanmaz.

Güvenmeden önce sayısal sınırları bilin. İşlemlerin çoğu 1–5 boyutlarını kabul eder. Özdeğer analizi yalnızca 2×2 ve 3×3 kapsar ve hiçbir değeri yuvarlamaz: irrasyonel ve karmaşık özdeğerler köklü ifadelerle kesin yazılır (indirgenemez kübikte Cardano formülü ya da kosinüslerle), her özdeğerin kesin özvektörleri verilir, tekrarlı bir özdeğer için özuzayın tamamı bulunur. Genel amaçlı bir sayısal özdeğer çözücüsü değildir. Kullanıcı kaynaklı hesaplamayı sınırlamak için hücre girdisi 32 karakterle sınırlıdır.

Özellikler

  • Önerilen bir öğrenme yolunda on iki konu — terim bazlı işlemler, eliminasyon (RREF, REF, Ax = b), matris cebiri (determinant, ters), ayrışım ve spektral teori (rank-sıfırlık, LU, özdeğerler) ve görsel alıştırma (2B dönüşümler, sınav) — bu sırayla numaralandırılır, her biri işlemi anlatan küçük bir çizimle gösterilir ve "Kaldığın yerden devam et" kartı sunulur.
  • Baştan sona tam aritmetik. Rasyonel sayılar BigInt pay ve payda olarak tutulur; sonuçlar istendiğinde kesir ya da ondalık gösterilir. Sonuç ekranı ve tamamlanan her ders, işlemin bağımsız bir doğrulaması varsa sonucu farklı bir yöntemle yeniden hesaplar (örneğin A·A⁻¹ = I ya da kesin bir özdeğer çifti için Av = λv).
  • Rehberli oynatma, arka planda çalışan bir sayaçla değil görünen animasyonla ilerler: duraklatma, ileri/geri adım, işlem içinde gezinme, tekrar oynatma ve 0,25×–4× arası hız. Her ders, ekran genişliği ne olursa olsun tek bir aşama olarak gösterilir: matris, rol lejantı, tek cümlelik bir aşama açıklaması ve katlanabilir bir ayrıntı çekmecesi.
  • Okunabilir işlem. Uzun tam ifadeler 14 px tabanına kadar küçülür, sonra kırpılmak yerine kaydırılır; herhangi bir hücrenin tam hesabı tek dokunuş uzaklıktadır.
  • Alıştırma, küratörlü beş sorulu tur ile birlikte küçük rastgele matrislerden üretilen turlar sunar; her yanlış seçenek, kaynaklandığı kavram yanılgısını adlandırır.
  • Beş dil (İngilizce, Türkçe, Basitleştirilmiş Çince, İspanyolca, Rusça), açık ve koyu tema, 320 px'ten itibaren uyarlanan yerleşim, sistem yazı ölçeği ve azaltılmış hareket desteği.

Gereksinimler

pubspec.yaml içindeki ^3.13.1 Dart kısıtını karşılayan bir Flutter SDK. Flutter 3.47.1 / Dart 3.13.1 ile doğrulandı.

Kurulum

Motor ayrı bir paket olduğu için ikisini de çözün:

flutter pub get
cd packages/matrix_engine
dart pub get
cd ../..
flutter gen-l10n

Kullanım

flutter run

Yayın derlemeleri:

flutter build web --release
flutter build windows --release

build/web dizinini herhangi bir HTTP sunucusuyla yayınlayın. Windows derlemesini dağıtırken build/windows/x64/runner/Release dizininin tamamını gönderin — çalıştırılabilir dosya kendi DLL'lerine ve data klasörüne ihtiyaç duyar.

Doğrulanmış yollar web, Windows ve test paketleridir. Android, iOS, Linux ve macOS hedefleri hazır ama burada doğrulanmadı; Android yayın derlemesi hâlâ debug imzalama yapılandırmasını kullanıyor ve incelenen Windows çalıştırılabilir dosyası imzasız.

Yapılandırma

Dil, tema, çözüm modu, varsayılan oynatma hızı, açıklama düzeyi, sayı görünümü ve oynatıcı klavye kısayolları uygulama içindeki Ayarlar sekmesinde yer alır; son açılan konu ve tamamlanan konularla birlikte sürümlenmiş tercihler aracılığıyla yerelde saklanır — matrisler ve sınav cevapları hiçbir zaman saklanmaz.

Çeviriler beş lib/l10n/app_*.arb kaynak dosyasının tamamında düzenlenir ve flutter gen-l10n ile yeniden üretilir. lib/l10n/generated/ dizinini elle düzenlemeyin.

Katkı

CONTRIBUTING.md kısa özettir; AGENTS.md çalışma sözleşmesidir: mimari sınırlar, oynatma değişmezleri, arayüz ve erişilebilirlik kuralları, teslimden önce beklenen komutlar. Step player'a veya motora dokunmadan önce okuyun. Güvenlik bildirimleri açık bir issue yerine SECURITY.md üzerinden iletilir.

flutter analyze
flutter test
cd packages/matrix_engine && dart analyze && dart test

Varsayılan paketin dışında tutulan isteğe bağlı bir animasyon benchmark'ı var:

flutter test tool/motion_benchmark_test.dart --reporter expanded

Dokümantasyon dizininden başlayın; PROJECT_REVIEW.md tarihli bulguları kaydeder, ROADMAP.md önerilen işleri listeler — bunlar uygulanmış davranış değildir. Atılabilir log ve ekran görüntülerini yoksayılan output/ dizininde tutun.

Lisans

Apache License 2.0 — bkz. LICENSE. Kullanma, değiştirme ve yeniden dağıtma hakkı verir, değiştirilen dosyaların işaretlenmesini şart koşar ve her katkıcıdan açık bir patent hakkı devri içerir.

𝓐.𝓒.𝓑 tarafından sürdürülmektedir.

⬆ Başa Dön

About

Flutter app for learning linear algebra through exact rational matrix calculations, animated worked steps, quizzes and 2D transformations.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages