Final submission guide
This is the release-facing map of RODENT. It gives a marker, client or new researcher one place to see what was built, how the parts fit together, how to demonstrate it and where the evidence lives. It should be read together with the exact submitted application and documentation commits.
For a single implementation inventory covering every researcher-facing area, including light, sound, odour diffusion, treatment, replay, metrics, models and known limits, see the Complete feature reference.
Public release
| Item | Location |
|---|---|
| Research platform | rodent-tau.vercel.app |
| Documentation | virtual-rodent-docs.pages.dev |
| Source and CI | Gitea repository |
| Work tracking | Trello sprint board and Gitea issues/pull requests |
| Researcher SDK | pip install rodent-sdk |
The web application, Supabase schema, Python SDK, Godot engine and documentation are separate deliverables. A green website deployment alone does not prove that all five are on the same release.
What is implemented
Accounts and research teams
- Email sign-up, confirmation, sign-in, password recovery, sign-out and optional authenticator-based 2FA.
- Self-service account deletion from Security, protected by an explicit
DELETEconfirmation. - Any active researcher can create a project and becomes that project's lead.
- Leads can add existing accounts as project leads, scoped researchers or observers.
- Module permissions cover arena, light, odour, sound, treatment, simulation and rodent settings.
- Supabase Row Level Security and server checks enforce access. Hidden browser controls are not treated as the security boundary.
Experiment preparation
- Six validated built-in arena templates plus a visual custom-arena editor.
- Versioned experiment JSON shared by the website, Godot and Python SDK.
- Regions, walls, doors, materials, lights, sound, odour, treatment, timing and random seed.
- Door state at the beginning of a run and researcher-controlled door interventions during a run.
- Optional Open-Meteo suggestions for environmental setup, reviewed before application.
- Validation errors are shown in researcher-facing language instead of crashing the simulation.
Simulation and review
- Godot 4.7.1 fixed-step simulation embedded in the website and runnable without graphics.
- Start, pause, single-step, reset, speed, camera, label and focus controls.
- Scheduled stimuli, treatment events, interventions and per-step recording.
- Readable run summary, stimulus exposure and behavioural metrics, JSON/CSV export and replay saving.
- Replay seeking, playback and return to live operation.
- Deterministic reproduction when the same versioned configuration, seed and controller are used.
Python, Colab and researcher models
- Public
rodent-sdk0.4.4 for offline/headless experiments, hosted projects and results. - Gymnasium-style
reset,step, observation and action contracts. - Batch and training workflows that do not render the arena.
- Episode logs, selected-episode reconstruction, comparisons, paths, heat maps and learning curves.
- Immutable project model versions with checksums and training provenance.
- Compatible PyTorch networks can be exported to ONNX and selected to drive the live website simulation.
- Researcher code remains outside the browser security boundary. The browser executes a constrained ONNX graph, not arbitrary uploaded Python.
Recommended demonstration
- Create or sign in to an account and show Security, including 2FA and account deletion without completing the destructive action.
- Create a project from a template. Add a researcher with one module and an observer.
- Open the workspace, edit a permitted condition, save it and show that an unauthorized module is unavailable and rejected by the data layer.
- Start a run, change a door or stimulus, and show the intervention and exposure in readable results.
- Save and replay the run, then export JSON and CSV.
- Run the Colab or Python example headlessly and save a selected result back to the project.
- Show a versioned model and its provenance, then select its ONNX version in the browser.
- Open the Gitea Actions run and the coverage/load-test artifacts for the submitted commit.
Final rubric evidence
| Rubric item | Evidence in this release |
|---|---|
| Database data, 3% | Hosted projects, memberships, versioned experiments, replays, audit records and model metadata are normal application records. Test accounts and demo records must be identified in the submission evidence rather than described as production research data. |
| Database deployment, 2% | Supabase hosts Auth, Postgres and private model storage. Nine ordered migrations define the submitted schema. See Database schema and deployment. |
| Database structure, 5% | Foreign keys, constraints, triggers, indexes, JSON experiment documents, model versioning and role-based RLS are documented table by table. |
| API availability, 3% | The Python SDK installs outside the repository and works in Colab. The local HTTP API, internal Godot protocol and hosted Supabase RPC boundary are documented separately. |
| API architecture, 5% | Browser portal, local REST service, public Python SDK, Godot command protocol and Supabase are separate layers. See Architecture. |
| API deployment, 2% | SDK wheels and a versioned simulation pack are distributed independently, with pack SHA-256 verification. |
| API performance, 5% | The repeatable local smoke test records first response, throughput, latency percentiles and failures. See Performance testing. |
| API design, 10% | Resource-style local routes, appropriate HTTP methods/status codes, project-scoped SDK objects and versioned experiment/model contracts. See API testing. |
| App accessibility, 5% | English document language, labelled controls, dialog semantics, live status regions, keyboard intent and a manual release procedure. See Accessibility and responsiveness. |
| App aesthetics, 5% | Inter font and one shared dark-navy/blue palette across website, Godot and docs. See Visual language. |
| App user experience, 5% | Projects-first navigation, project creation popup, Setup to Run to Review workflow, persistent sessions, readable failures and user-feedback changes. |
| App deployment, 2% | Public Vercel release with Supabase and a separately deployed Cloudflare documentation site. |
| App performance, 5% | Compressed web export, lazy simulator start and headless high-speed operation are documented. Exact release observations are kept with the submitted build. |
| App features, 10% | Feature inventory above, Current release and task-based user guides. |
| App responsiveness, 5% | Responsive breakpoints, independently scrolling panels, focus mode and a narrow-screen test procedure. |
| App structure, 5% | Projects sit above the Setup, Run and Review stages. Documentation is grouped by researcher tasks, architecture, APIs, interface, testing and process. |
| Git methodology, 5% | GitHub Flow on Gitea: baseline, feature branches, pull requests and reviewed merges. See Git methodology. |
| External integration, 3% | Open-Meteo is optional, attributed and fails without blocking manual setup. Supabase, ONNX Runtime, PyPI and GitHub Releases are also documented dependencies. |
| Testing, 10% | One local command mirrors CI. The final local check passed 57 backend/UI-contract tests and 91 SDK/model/training tests, with 85.13% measured Python line coverage. JavaScript/GDScript limits are stated rather than hidden. See Testing and evidence. |
| Tools, 5% | Ruff, gdlint, Coverage.py, Gitea Actions, Trello and Gitea issues/PRs support code quality and traceable work. |
Evidence that must match the submitted commit
Before submission, record these beside the final commit rather than relying on an older screenshot:
- green Gitea Actions links and the generated coverage and API-load artifacts;
- Vercel and Cloudflare deployment IDs;
- the nine migrations actually applied to Supabase;
- a fresh SDK install, wheel version and simulation-pack checksum;
- wide, 390 px and 360 px screenshots plus keyboard and 200% zoom notes;
- project-lead, scoped-researcher, observer and non-member permission results; and
- counts or labels that distinguish real demonstration records from disposable test records.
Honest limits
The measured coverage percentage is Python line coverage, not a whole-repository percentage. Website JavaScript has syntax and contract tests, while Godot has behavioural headless tests; neither currently produces line coverage. Automated checks also do not prove screen-reader quality, scientific validity, live Supabase policy deployment or third-party service availability. These points are part of the release evidence, not hidden caveats.
The supplied rat is a software baseline for platform integration. RODENT lets researchers bring a model, run it repeatedly and inspect reproducible outputs, but it does not claim that the baseline or an uploaded model is a validated biological rat.
AI Attribution: This release map was prepared with OpenAI Codex assistance from the submitted rubric and the integrated repositories. The team remains responsible for the final deployment, scientific claims and dated evidence.