Survival LLM
A free AI assistant and survival library (1.5 million offline articles) that runs on your own computer, with no internet. Shows the source of every answer. Mac and Windows.
A ring-sector polar grid running 5 cm cells inside 10 m and 50 cm at 100 m — 705,771 cells against 16,000,000 for a uniform grid over the same footprint — preserving the curbs, potholes and overhangs
OtherPython · TypeScriptGitHub @sam-eer12OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
A ring-sector polar grid running 5 cm cells inside 10 m and 50 cm at 100 m — 705,771 cells against 16,000,000 for a uniform grid over the same footprint — preserving the curbs, potholes and overhangs a 2D occupancy grid destroys.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
NEXA — Adaptive Variable-Resolution 2.5D LiDAR Mapping
A 64-beam LiDAR produces ~120,000 points per revolution at 10 Hz — about 1.2 million
points per second. The two standard ways of consuming that stream both fail on vehicle
compute:
• Keeping the full 3D point cloud or voxel grid is rich but does not close the loop
in real time on embedded hardware.
• Flattening to a 2D occupancy grid is cheap but discards height. A curb, a pothole
and a low gantry all collapse into the same "occupied" bit, so the map cannot tell a
vehicle that the ground is drivable but the bridge above it is 3.1 m.Read the full README ↗Live demo: https://nexa-drdo.duckdns.org
| Field | Value |
|---|---|
| Project Title | NEXA — Adaptive Variable-Resolution 2.5D LiDAR Mapping for Dynamic Environment Perception |
| PS ID | 26053 |
| PS Title | Adaptive Variable Resolution 2.5D Lidar Mapping for Dynamic Environment Perception |
| Category | Software |
| Theme | Smart Vehicles |
| Organisation | DRDO — Department of Defence Production / iDEX |
| Team Name | KANVSS |
A 64-beam LiDAR produces ~120,000 points per revolution at 10 Hz — about 1.2 million points per second. The two standard ways of consuming that stream both fail on vehicle compute:
A uniform high-resolution grid also over-samples the far field, where LiDAR beam divergence means the detail was never measured in the first place.
NEXA allocates spatial resolution the way the human eye does — finely where a braking decision is made, coarsening with range to the point where the sensor's own angular sampling runs out.
Raw scans become a semantic 2.5D map (elevation and class per cell) over a ring-sector polar grid running 5 cm cells inside 10 m and 50 cm cells at 100 m. Because each cell keeps ground height and obstacle height separately, the map represents the three hazards a 2D grid destroys: curbs, potholes and overhanging structures. A deterministic decision layer turns the map into a route, a risk level, an ETA and a stated reason.
offset[k] + j, no search, no hashing; 100.000% point
conservation asserted every framespconv, no compiled extensionInstancedMesh canvas, with
per-frame data never entering React statemake bench into
results.json and docs/RESULTS.md| Layer | Technology |
|---|---|
| Perception | Python, NumPy, SciPy, ONNX Runtime (CPU) |
| Mapping / Decision | Python, NumPy (vectorised, pre-allocated) |
| Backend | FastAPI, Uvicorn, binary WebSocket |
| Frontend | Next.js 16 (App Router), React 19, TypeScript, Three.js, Tailwind |
| Auth | Firebase Authentication |
| Database | MongoDB Atlas |
| Deployment | Docker, Docker Compose, Caddy (auto-TLS), AWS EC2 (Graviton ARM64) |
| Companion hardware | Scilab — drone LiDAR payload modelling |
See docs/IMPLEMENTATION_PLAN.md and
docs/DEPLOYMENT.md.
LiDAR scan (~120k points)
|
v
1. PERCEPTION range-image CNN (ONNX, CPU) + geometric fallback
| 19 SemanticKITTI classes -> 5 PS classes
v
2. RING-SECTOR (x,y) -> (r,theta) -> (ring k, bin j) -> flat id
PROJECTION 5 cm @ <=10 m -> 50 cm @ 100 m, closed-form O(1)
|
v
3. CELL ANALYSIS z_ground / z_obstacle / slope / roughness / clearance
+ HAZARD FLAGS OVERHANG - NEGATIVE_OBSTACLE - STEP
|
v
4. DECISION LAYER traversability -> Kalman tracker -> costmap -> A*
(deterministic) -> route, risk, ETA, reason string
|
| FrameMessage (binary WebSocket)
v
5. WEB APP Firebase auth gate - Three.js viewer - live HUD
|
v
6. MongoDB Atlas run history - decision audit log - scene ground truth
Deployed architecture
Internet -> Caddy :443 (TLS)
|-- / -> Next.js :3000
|-- /health -> FastAPI :8000
+-- /stream -> FastAPI :8000 (WebSocket, direct)
The browser reaches the WebSocket without a Next.js hop, so frame data is never proxied, buffered or re-serialised.
sih2026/
├── README.md
├── Makefile # make test | bench | scenes | finetune
├── model/ # the engine
│ ├── avr25d/
│ │ ├── core/ # grid.py, cell.py, refine.py
│ │ ├── perception/ # range_proj, onnx_infer, geometric_seg, cache
│ │ ├── decision/ # traversability, tracker, costmap, planner, explain
│ │ ├── bench/ # memory, latency, distance_bins, hazard, report
│ │ ├── synth/ # ray-cast scenes with exact ground truth
│ │ └── server/ # FastAPI app, wire protocol, fixtures
│ └── tests/ # 382 tests
├── frontend/ # Next.js app
│ ├── app/ # routes: /, /login, /dashboard, /runs, /api/*
│ ├── components/ # viewer (Three.js), hud, decision
│ └── lib/ # protocol, ws, firebase, mongo
├── backend/requirements.txt # pinned Python dependencies
├── deploy/ # Dockerfiles, compose, Caddyfile, push.sh
├── docs/ # PRD, implementation plan, RESULTS.md, DEPLOYMENT.md
├── hardware/ # companion drone LiDAR payload (Scilab)
├── tools/ # dataset fetch, ONNX export, cache build, finetune
├── submission/ # presentation + demo links
└── assets/screenshots/ # dashboard and prototype images
| Item | Location |
|---|---|
| Source code | model/, frontend/, backend/ |
| Architecture / technical documentation | docs/ |
| Screenshots / hardware figures | assets/screenshots/, hardware/figures/ |
| Final PPT | submission/PRESENTATION.md |
| Demo video link | submission/DEMO.md |
| Project overview | README.md |
See submission/PRESENTATION.md.
See submission/DEMO.md.
See assets/screenshots/. Payload figures generated by the Scilab
scripts are in hardware/figures/.
Requires Python 3.13+ and Node 22+. CPU only — no GPU, no CUDA.
git clone https://github.com/sam-eer12/sih2026.git
cd sih2026
# backend
python3 -m venv backend/.venv
backend/.venv/bin/pip install -r backend/requirements.txt
backend/.venv/bin/pip install -e model/
# frontend
cd frontend && npm install && cd ..
The frontend needs a frontend/.env.local; copy frontend/.env.local.example and fill it
in. The app runs without it — authentication and persistence simply stay switched off.
# Terminal 1 — pipeline server (no dataset needed)
cd model && ../backend/.venv/bin/python -m avr25d.server.app --fixtures
# Terminal 2 — web app
cd frontend && npm run dev
Open http://localhost:3000. Other modes:
# real scans, geometric segmenter
cd model && ../backend/.venv/bin/python -m avr25d.server.app \
--infer geometric --seq 04 --data data/kitti
# replay a recorded log — deterministic, no dataset required
cd model && ../backend/.venv/bin/python -m avr25d.server.app \
--replay data/logs/demo.log
Tests and benchmarks
make test # 382 tests
make bench # regenerates results.json and docs/RESULTS.md
make scenes # regenerates the synthetic hazard scenes
Deploy (see docs/DEPLOYMENT.md)
./deploy/push.sh all
Measured numbers live in docs/RESULTS.md, regenerated by make bench.
Structural properties, verified by the test suite:
| Property | Value |
|---|---|
| Rings to 100 m | 662 |
| Total cells, 360° × 100 m | 705,771 |
| Uniform 5 cm equivalent | 16,000,000 |
| Cell reduction | 22.67× |
| Point conservation | 100.000% |
| Pothole depth error (S2, true 0.22 m) | 0.0108 m |
| Gantry clearance error (S3, true 3.10 m) | 0.0024 m |
| Curb height error (S4, true 0.15 m) | 0.0026 m |
| False positives on flat control scene | 0 |
Latency and mIoU depend on the perception mode and the sequences evaluated; both are
stated with their configuration in docs/RESULTS.md rather than quoted bare.
z_ground
in sparse far-field cells and stabilising tracksR = f(distance, complexity, semantics, uncertainty) claimNo passwords, API keys, access tokens or .env files containing secrets are committed to
this repository. deploy/.env and frontend/.env.local are gitignored; the tracked
*.example files carry empty placeholders only.