Classroom seating arrangements made scientific, fair, and effortless.
A privacy-focused, local-first intelligent seating arrangement tool.
Import rosters, configure rules, solve in seconds, fine-tune interactively, and export or print.
No accounts, no cloud sync — student data stays strictly on your machine.
📥 Download Desktop App · cargo install seattrellis
Arranging classroom seating is an intricate, recurring challenge for every teacher:
- Near-sighted students need front seats; tall students shouldn't block the board.
- Specific peers benefit from study partnerships, while others distract each other and must be separated.
- Fair rotation across terms is essential to prevent students from being stuck in corners.
- Manual planning easily takes hours every term, yet explaining the rationale to parents or administrators remains difficult.
SeatTrellis solves this in a single click: define your educational requirements and preferences, and the solver delivers mathematically verifiable, fully explainable seating plans with multi-term history tracking.
| Feature | Description |
|---|---|
| 🧩 Strict Hard Constraints | Guarantees satisfaction of mandatory rules: fixed seats, required neighbors, forbidden pairs, minimum distances, and group isolation. Every solved plan is independently validated with zero violations. |
| 🎯 Explainable Soft Preferences | Intelligently balances vision needs, height gradients, academic diversity, fair seat rotations, and recent-neighbor avoidance. Every rule provides explicit scoring breakdowns. |
| 🔀 Multi-Candidate Comparison & Determinism | Generates multiple high-quality candidate plans with clear trade-off metrics. Pinning the random seed ensures 100% reproducible results anytime. |
| ✋ Interactive Hand Tuning | Easily swap seats, drag and drop, lock specific assignments, undo/redo, and apply intelligent constraint-aware repairs with real-time rule validation. |
| 📅 Multi-Term Fair Rotation | Tracks historical seating, generates multi-period rotations, and visualizes seat churn and adjacent-period movement distances with a local heatmap. |
| 🖨️ 8 Standard Export Formats | High-fidelity export to SVG, standalone HTML, printable HTML, PNG images, PDF, Excel (XLSX), Word (DOCX), and PowerPoint (PPTX), with one-click toggles for teacher records vs. anonymized student postings. |
| 🔒 Local-First & Privacy by Design | 100% offline computation without accounts, telemetry, or third-party servers. Public exports automatically anonymize sensitive identifiers. |
Download the installer for your operating system from GitHub Releases:
| Platform | Format |
|---|---|
| macOS (Apple Silicon) | .dmg installer or .app.tar.gz |
| Windows (x64) | .msi package or NSIS .exe installer |
| Linux (amd64) | .deb package |
💡 Tip: Binaries are distributed unsigned. On macOS, right-click the app and choose "Open" on first launch; on Windows, click "More info" → "Run anyway" if Microsoft SmartScreen prompts.
Install directly using Cargo:
cargo install seattrellis
# 1. Validate problem input and rule definitions
seattrellis validate --problem problem.json
# 2. Solve and output the full seating snapshot
seattrellis solve --problem problem.json --output plan.json
# 3. Export the plan to an image or document
seattrellis export --problem problem.json --solution plan.json --format png --output plan.pngSeating rules are defined in a clean JSON format, clearly separating mandatory hard constraints from weighted soft preferences:
{
"seed": 42,
"hard": {
"fixed_seats": [{ "student": "STU001", "seat_id": "R1C1" }],
"cannot_be_adjacent": [{ "students": ["STU004", "STU007"] }]
},
"soft": {
"vision_front": { "enabled": true, "weight": 20 },
"height_back": { "enabled": true, "weight": 5 },
"fair_rotation": { "enabled": true, "weight": 10, "lookback": 4 }
}
}- Schema & field definitions: Input Format Guide and Rule Handbook.
- 14 built-in classroom scenarios (exam mode, daily balanced, rotation, etc.): Presets Reference.
If you are upgrading from legacy v1 (Python), use seattrellis schema-migrate or the built-in migration wizard in the web workbench to automatically upgrade your project files. Backups are created automatically before any file changes.
The legacy Python package is frozen at 1.9.0 for maintenance (pip install seattrellis==1.9.0). Version 2 is a pure Rust implementation with zero Python dependencies. See Migration Guide.
| Guides & Usage | Specifications | Deep Dives & Dev |
|---|---|---|
| 📖 Quick Start Guide | 📐 Rule Handbook | 🏗️ Architecture Overview |
| 🖥️ Web & Desktop Workbench | 📄 Input Format Reference | ⚙️ CLI Reference (27 commands) |
| 🖨️ Export & Printing Guide | 🎒 Class Project Workflow | 🔒 Privacy & Local Boundaries |
SeatTrellis operates strictly under a local-first paradigm. All computation, file operations, and exports run entirely on your local machine. No student rosters, IDs, academic scores, or classroom layouts are ever transmitted over the network.
Built on a modern, high-performance tech stack:
- Core Backend: Rust 1.88+ with 9 modular crates.
- Desktop & UI: Tauri 2, React 19, and TypeScript.
- Verification: 690+ Rust tests, 160+ UI tests, end-to-end browser workflows, fuzz testing, and strict CI benchmarks.
# 1. Build web workbench assets
cd clients/web && npm ci && npm run build && cd ../..
# 2. Run full Rust verification and linting
cargo test --locked --workspace
cargo clippy --locked --all-targets --workspace -- -D warningsDistributed under the Apache-2.0 License. See NOTICE for additional details.
