Creative Tech / Edge AI · 2026
Movement Language RAG Archive
How might cultural knowledge stay accessible without depending on the cloud?
The Brief
Movement Language System (published as "The Repository") is an offline retrieval-augmented generation system for querying community-annotated movement knowledge. It's the archival half of a two-part thesis — where the Movement Language Discovery System pilot handles capture and human review, this system stores what gets approved and answers questions about it. The entire pipeline runs locally: no internet connection, no cloud LLM API, no third-party platform sitting between the community's knowledge and the person querying it. That constraint is a data-sovereignty decision, not a technical limitation — the architecture prioritizes offline-first access from the start, over convenience or performance.
Approach
The system indexes approved movement annotations as markdown documents in ChromaDB, a local vector database, and answers natural-language queries through a standard RAG loop — retrieve the most relevant documents, pass them as context to a locally running Llama 3.1 8B model, generate a cited response. Every part of that loop runs on-device: FastAPI serves the web interface, Ollama serves the model, and nothing leaves the machine it's running on. The deployment target is a Raspberry Pi 5 (8GB), chosen specifically so the finished archive is a physical, portable object a community can hold and control, rather than an account on someone else's server. The 13-document knowledge base currently in the system is explicitly synthetic and labeled as such at every touchpoint — the architecture is proven, the content is a placeholder for content that doesn't yet have a rights-holder's consent to exist.
Getting There
- —Selected an offline stack (ChromaDB, Ollama, Llama 3.1 8B, FastAPI) over any cloud-LLM API, ruling out hosted options that would put a third party between the archive and its community
- —Built the retrieval pipeline: documents chunked and embedded into ChromaDB, queries matched by semantic similarity, top matches passed as context to a locally-run Llama 3.1 8B model via Ollama
- —Populated the knowledge base with 13 synthetic placeholder documents — explicitly labeled as synthetic demonstration data, since real cultural content requires a community partnership and consent process that hadn't been established
- —Built and tested the full query cycle end-to-end: retrieval (~0.43s) → CPU-only local generation (~64s) → cited answer, exposed through a browser interface
- —Kept the server on HTTP rather than HTTPS deliberately, since the system is never exposed to the internet by design
- —Structured the codebase with a main → dev → feature branch workflow (knowledge-base, rag-pipeline, web-ui complete; deployment branch for the Raspberry Pi 5 build)
- —Grounded the offline-first and consent-first design choices explicitly in Indigenous Data Sovereignty and Decolonial AI literature rather than treating them as engineering defaults
The Result
The core pipeline works end-to-end on development hardware: ingestion, retrieval, and cited generation are all functional, with a working web interface and a clean git branch structure. What's unresolved is deployment and content, not architecture — the feature/deployment branch (porting the pipeline onto the Raspberry Pi itself) was still outstanding, and CPU-only generation at ~64 seconds per query is a real latency cost of the offline-first decision, not a solved problem. More fundamentally, the system has no real cultural content yet — every document in it is synthetic, and that gap can only close through an actual community partnership with a consent framework, not through more engineering. The project is honest about this in its own documentation rather than presenting the synthetic data as a stand-in for the real thing.
Stack
- —Python 3.12 runtime
- —LangChain RAG framework
- —ChromaDB vector store
- —Llama 3.1 8B, served via Ollama LLM — local inference, no API
- —FastAPI, HTML, CSS, JavaScript interface
- —Raspberry Pi 5 (8GB) deployment — offline, no internet connection
- —HTTP (not HTTPS) protocol — deliberate, since the server is never exposed to the internet
- —Git version control — main → dev → feature branch workflow
- —github.com/anothertee/cultural-analysis-engine repo
Skills & Tools
More Projects