NVIDIA Spark Hack Series: NYC Hackathon.
Built by Yahil Corcino, Hirab Abdourazak, Alejandro Perdomo, and Aditya Dalal
SparX is a privacy-first, locally-run AI social worker designed to give underserved communities in New York City secure, equitable access to government resources and services, without ever sending their data to the cloud.
The system runs entirely on local hardware (an Acer Veriton N100 with 128 GB RAM and an NVIDIA GB10 Grace Blackwell Superchip), meaning no user profile is built, no conversation is stored on a remote server, and no third party can access what is being said. For communities that have historically had reason to distrust surveillance or data collection, this matters.
NYC is one of the most linguistically diverse cities in the world. Millions of residents speak English as a second language, or not at all. Navigating city services (311, benefits enrollment, housing forms, emergency resources) is already complex in English. For Spanish, Mandarin, Bengali, Haitian Creole, or Arabic speakers, it can be nearly impossible.
Existing AI assistants (ChatGPT, Google Gemini, Alexa) require an internet connection and build persistent profiles on users. Immigrants, low-income residents, undocumented individuals, and other underserved populations are often the most hesitant to use these tools precisely because of privacy concerns.
SparX puts the AI on the edge instead of in the cloud.
Using NVIDIA's Parakeet ASR model for speech transcription, SparX supports 25 European languages with the ability to seamlessly switch between them mid-sentence, including mixed-language speech like Spanglish. A user doesn't have to choose a language before speaking; the system understands them naturally.
From there, a direction engine routes the transcribed query to NemoClaw, which queries NYC Open Data and a 311 FormFinder to surface the most relevant city resources and forms; all in real time, all locally.
- Multilingual ASR — Parakeet-0.6B supports 25 European languages; switch languages mid-sentence
- Fully local — runs on-device; no cloud calls, no data retention, no user profiling
- NYC-focused — integrated with NYC Open Data and 311 services via NemoClaw
- Smart routing — LLM-based direction engine classifies intent and surfaces the right resource
- Browser-accessible — served over HTTPS for microphone access from any local browser
| Component | Spec |
|---|---|
| Device | Acer Veriton N100 |
| RAM | 128 GB |
| Accelerator | NVIDIA GB10 Grace Blackwell Superchip |
| AI Performance | Up to 1 petaFLOP (FP4) |
| OS | Debian/Ubuntu Linux |
Setup & Installation (Click to expand)
- Python 3.12 (or the version you use for this repo's venv)
- NVIDIA GPU with a driver compatible with your chosen PyTorch CUDA wheels
- ffmpeg — audio conversion (
pydub) for ASR - openssl — generates self-signed TLS certs for the voice server if
cert.pem/key.pemare missing
On Debian/Ubuntu:
sudo apt-get update && sudo apt-get install -y ffmpeg opensslFrom the repository root (the directory that contains requirements.txt):
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip-
Install PyTorch + torchaudio from the file that matches your CUDA/driver (see PyTorch — Get Started if unsure):
pip install -r requirements-torch-cu130.txt
or
pip install -r requirements-torch-cu124.txt
-
Then install the rest:
pip install -r requirements.txt
If import torchaudio fails with FFT-related symbol errors, your torch and torchaudio builds do not match. Fix:
pip uninstall -y torch torchaudio
pip install -r requirements-torch-cu124.txt # or cu130If you see errors such as OSError: libcudart.so.12: cannot open shared object file, with the venv activated run:
source scripts/source_cuda_libs.shThat prepends NVIDIA wheel libraries under site-packages to LD_LIBRARY_PATH. The project also lists nvidia-cuda-runtime-cu12 in requirements.txt for many setups.
The direction engine and FormFinder call an OpenAI-compatible HTTP API.
-
Default URL:
http://localhost:8081/v1/chat/completions -
Override with:
export SPARX_LLM_CHAT_URL="http://HOST:PORT/v1/chat/completions"
Optional:
export SPARX_LLM_MODEL="your-model-id"Run llama.cpp (llama-server), vLLM, or any compatible server before using voice features that need classification or FormFinder.
The server loads Parakeet on startup and serves HTTPS on port 8443 (needed for microphone access from the browser). If cert.pem and key.pem are missing in nemoclaw/nodes/voice_node/, the app generates self-signed certificates with openssl.
Recommended (keeps key.pem / cert.pem next to the server; cwd matters for OpenSSL output):
cd nemoclaw/nodes/voice_node
source ../../../.venv/bin/activate
# optional if you hit libcudart loader errors:
# source ../../../scripts/source_cuda_libs.sh
python server.pyFrom the repository root you can run python nemoclaw/nodes/voice_node/server.py; self-signed certs are then created in the current directory (repo root), not under voice_node/.
Open https://<host-ip>:8443 in a browser and accept the certificate warning for local/self-signed TLS.
| Path | Role |
|---|---|
nemoclaw/nodes/voice_node/server.py |
FastAPI HTTPS app: upload audio → ASR → direction → NemoClaw |
nemoclaw/nodes/voice_node/asr_engine.py |
Parakeet / NeMo voice ASR |
nemoclaw/nodes/voice_node/direction_engine.py |
LLM-based routing; logs to complaints.log |
nemoclaw/nemoclaw.py |
NemoClaw orchestrator (Open Data, then FormFinder) |
form_finder/ |
311 form classifier; uses KA.json |
formbuddy/ |
WIP — see note below |
scripts/source_cuda_libs.sh |
Prepends venv NVIDIA libs to LD_LIBRARY_PATH |
If git add fails with 'some_dir/' does not have a commit checked out, that directory likely contains its own .git/ with no commits yet. Either remove that nested .git to track normal files in this repo, or commit inside the subdirectory and use a proper submodule workflow.
formbuddy/ is a separate companion app started during the hackathon. The idea was to give users a guided, conversational interface for filling out NYC 311 forms — walking them through each field step by step rather than just linking them to a form URL.
We didn't get to continue it during the event. It's kept here for reference but is not integrated into the main SparX pipeline and has its own independent Python environment (pyproject.toml, uv.lock).
Made for the Nvidia Spark Hack Series: NYC Hackathon, co-hosted by Nvidia, Antler and ACER, April 10-12 2026. Proudly pivoted to this during the last few hours.



