{"id":50665523,"url":"https://github.com/svssdeva/shastra","last_synced_at":"2026-06-08T06:03:58.152Z","repository":{"id":361077056,"uuid":"1252089764","full_name":"svssdeva/shastra","owner":"svssdeva","description":"Sanskrit-named instruments. WebGPU heat sim (Yantra) + Rust MCP server (Trishul)  + WebGPU Shader Sandbox (Naadi) + Local first vision  agent (Darshan)","archived":false,"fork":false,"pushed_at":"2026-05-29T04:34:10.000Z","size":444,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-29T06:20:43.950Z","etag":null,"topics":["agentic-tools","astro","claude","ebpf","finite-element","mcp-server","preact","rust","three-js","webgpu","wgsl"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/svssdeva.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-28T07:16:56.000Z","updated_at":"2026-05-29T04:41:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/svssdeva/shastra","commit_stats":null,"previous_names":["svssdeva/shastra"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/svssdeva/shastra","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svssdeva%2Fshastra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svssdeva%2Fshastra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svssdeva%2Fshastra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svssdeva%2Fshastra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svssdeva","download_url":"https://codeload.github.com/svssdeva/shastra/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svssdeva%2Fshastra/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34050231,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-tools","astro","claude","ebpf","finite-element","mcp-server","preact","rust","three-js","webgpu","wgsl"],"created_at":"2026-06-08T06:03:55.862Z","updated_at":"2026-06-08T06:03:58.138Z","avatar_url":"https://github.com/svssdeva.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shastra\n\n\u003e Portfolio workspace. Production-grade tools that put Claude — and other humans — in physical contact with real systems: one in your browser tab, one inside your kernel, one in everyone's browser at once.\n\n```\nshastra/\n├─ yantra/    WebGPU heat-conduction simulator. Drop an STL, watch heat spread.\n├─ trishul/   Rust MCP server. Live process / network / USB / syscall view for Claude.\n├─ naadi/     Multiplayer WebGPU shader sandbox. CRDT + WebRTC P2P; co-edit one WGSL.\n└─ darshan/   Local-first vision agent. Pluggable inference shell. OCR + dashcam in-tab.\n```\n\n---\n\n## Projects\n\n| Project | What it is | Stack | Status |\n|---|---|---|---|\n| [**yantra**](./yantra/) | Finite-element heat-conduction solver running entirely in your browser. Drop an STL, pick a material, set hot/cold faces, watch the colormap evolve as steady-state converges. | Astro 5 · Preact 10 · Three.js · WebGPU + WGSL · Bun | shipped |\n| [**trishul**](./trishul/) | MCP server giving Claude live OS observability — process tree, network listeners, USB topology, host info, and a real eBPF / DTrace / ETW syscall trace. 7 tools, cross-platform. | Rust 2024 · rmcp 1.7 · aya · ferrisetw · sysinfo · netstat2 · nusb | shipped |\n| [**naadi**](./naadi/) | Multiplayer WebGPU shader sandbox. Co-edit one WGSL fragment shader; every peer's GPU renders the shared scene independently. CRDT-backed, peer-to-peer, zero server bandwidth after handshake. | Astro 5 · Preact 10 · Tailwind v4 · CodeMirror 6 · Loro CRDT · WebRTC · WebGPU + WGSL · Bun | shipped |\n| [**darshan**](./darshan/) | Local-first vision agent. Drop a file, run a model in your tab. Pluggable inference shell: swappable pipelines (echo, Devanagari OCR, dashcam incident extractor) on swappable backends (Mock, transformers.js, ORT Web, Rust+WASM). Zero cloud. | Astro 6 · Preact 10 · Tailwind v4 · `tesseract.js` (Hindi) · `@huggingface/transformers` · `onnxruntime-web` · Rust → wasm32 · Bun | shipped |\n\n---\n\n## Yantra — heat sim in a browser tab\n\n```bash\ncd yantra\nbun install\nbun dev    # → http://localhost:4321\n```\n\nThen visit `/sim?fx=fins`. Pick **Aluminum**, hit **Solve**, watch the gradient cascade down each fin.\n\nRequires a WebGPU-capable browser (Chrome / Edge / Arc / Brave / Safari 26). Full design + numerics in [`yantra/README.md`](./yantra/README.md).\n\n---\n\n## Trishul — Claude's body inside your machine\n\n```bash\ncd trishul\ncargo install --path crates/trishul-mcp\ntrishul-mcp selftest   # every tool should print \"ok\"\n```\n\nAdd to your MCP client config (Claude Desktop, Claude Code, Cursor, …):\n\n```json\n{ \"mcpServers\": { \"trishul\": { \"command\": \"trishul-mcp\" } } }\n```\n\nRestart the client. Ask Claude: *\"Anything listening on port 5432?\"* or *\"Which processes are doing the most file I/O?\"*\n\nCross-platform: **6 of 7 tools work identically on Linux, macOS, and Windows.** `syscall_trace` uses eBPF (Linux) / DTrace (macOS) / ETW (Windows) depending on host. Full install + privilege docs in [`trishul/README.md`](./trishul/README.md), [`trishul/docs/CLAUDE_CONFIG.md`](./trishul/docs/CLAUDE_CONFIG.md), [`trishul/docs/PRIVILEGES.md`](./trishul/docs/PRIVILEGES.md), and [`trishul/docs/EXAMPLES.md`](./trishul/docs/EXAMPLES.md).\n\n---\n\n## Naadi — multiplayer WebGPU shader sandbox\n\n```bash\ncd naadi\nbun install\n\n# Terminal A — tiny signaling server (forwards SDP/ICE only)\nbun --filter @naadi/signal dev      # → ws://localhost:3030/ws\n\n# Terminal B — web app\nbun dev                              # → http://localhost:4322\n```\n\nClick **Create room**, share the resulting `/r#\u003cid\u003e` link with a second\nbrowser window. Edits flow over **WebRTC DataChannel** (zero server bandwidth\nafter handshake); the Loro CRDT keeps everyone in sync; each peer's GPU\nrenders the shared shader independently. Cursors and nicknames sync as\nephemeral awareness frames. Snapshots persist to per-browser IndexedDB.\n\nA **Preset…** dropdown above the editor swaps in bundled shaders (cosine\nrainbow, plasma, mandelbrot, voronoi, cyberpunk avatar, anime waifu,\nminecraft planet, hyperspace, …) and a **zoom slider** in the Canvas pane\ndrives a `u.zoom` uniform read by the bundled presets (default 1.00×,\nauto-resets on preset switch).\n\nRequires a WebGPU **and** WebRTC capable browser — desktop Chrome / Edge /\nArc / Brave / Safari 26+. Full design, security model, and config knobs in\n[`naadi/README.md`](./naadi/README.md).\n\n---\n\n## Darshan — vision agent in a browser tab\n\n```bash\ncd darshan\nbun install\nbun run build:wasm   # one-time: compiles the Rust WASM core (requires wasm32-unknown-unknown)\nbun dev              # → http://localhost:4321\n```\n\nVisit `/run` and pick a pipeline: drop a Devanagari image for OCR + Hindi→English translation,\nor a dashcam clip for auto-cut incident highlights. Visit `/docs` for the full walkthrough —\nconcepts (pipeline vs. backend, the seam, worker offload), the pipeline × backend matrix,\nrequest flow, and troubleshooting.\n\nThe bet: one UI hosts every pipeline on every backend. `tesseract.js` reads Devanagari +\n`@huggingface/transformers` v4 Opus-MT translates Hindi → English; `onnxruntime-web` runs\ndashcam YOLO; a Rust crate compiled to `wasm32-unknown-unknown` (no `wasm-bindgen`) ships as the\nseam proof for the future `candle-core` drop-in. Privacy proof: after first model load, no\nnetwork traffic — verify in airplane mode. Full design in\n[`darshan/README.md`](./darshan/README.md) and `/docs` in-app.\n\n---\n\n## Tech stack signature\n\n- **Rust 2024** edition · `rmcp 1.7` · `aya 0.13` (eBPF, Linux) · `ferrisetw 1.2` (ETW, Windows) · `tokio` · `sysinfo` · `netstat2` · `nusb` · `procfs` · `nix` · `candle-core` (target `wasm32-unknown-unknown`, no `wasm-bindgen`).\n- **Bun 1.3** workspace · **Astro 6.4** · **Preact 10** · **Three.js 0.184** · **Tailwind v4** · **CodeMirror 6** · **Loro CRDT** · **WebRTC DataChannel** · **WebGPU + WGSL** · **`@huggingface/transformers` v4** · **`onnxruntime-web`** · **`tesseract.js` v7**.\n- **Biome 2** + **clippy -D warnings** lint-clean.\n\nBuild-environment caveat for this checkout: `/mnt/shared` is mounted `noexec`, so both subprojects symlink their build dirs (`target/`, `node_modules/.bun/`) to `/tmp` to let native build scripts execute. On a normal filesystem you don't need this hack.\n\n---\n\n## Repo layout\n\n```\nshastra/\n├─ README.md             — this file\n├─ .gitignore            — workspace-level\n├─ yantra/               — see yantra/README.md\n│  ├─ apps/web/          — Astro site + WebGPU sim UI\n│  └─ packages/{mesh,solver}/  — STL parse/voxelize + CPU+GPU Jacobi solver\n├─ trishul/              — see trishul/README.md\n│  └─ crates/{trishul-mcp,trishul-ebpf}/\n├─ naadi/                — see naadi/README.md\n│  ├─ apps/{web,signal}/ — Astro+Preact room UI + Bun signaling server\n│  └─ packages/{doc,net,gpu}/  — Loro+CM binding, WebRTC mesh, WebGPU runtime\n└─ darshan/              — see darshan/README.md and /docs in-app\n   ├─ apps/web/          — Astro+Preact+Tailwind shell, /run + /docs\n   └─ packages/{inference-core,inference-core-wasm,pipeline-ocr,pipeline-dashcam,ui-kit}/\n```\n\n---\n\n## License\n\nMIT, applies to every subproject in this workspace.\n\n---\n\n## Why \"shastra\"\n\n**Shastra** (शस्त्र / शास्त्र) in Sanskrit covers both *instrument / weapon* and *treatise / discipline / body of knowledge*. The first sense reads the workspace as a collection of tools (Yantra = instrument, Trishul = trident — both literal shastras). The second covers anything that's a *system of practice* (a `naadi-shastra` is the discipline of pulse diagnosis; *naadi* itself is the pulse / channel / conduit — fitting for a project where shader bytes flow through WebRTC data channels between peers).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvssdeva%2Fshastra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvssdeva%2Fshastra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvssdeva%2Fshastra/lists"}