Click the preview to play the full demo (muted) Β· 10.75 s Β· 1920x1080 Β· 60 fps Β· 400-690 nm.
This is an earlier private hyperspectral reconstruction prototype. The public loop and full demo show a desktop workflow for camera acquisition, lightweight deep-learning reconstruction, 30-band spectral display across 400-690 nm, per-point spectral curves, and result saving.
I was responsible for the lightweight deep-learning reconstruction and dataset work, plus the camera acquisition, desktop UI, spectral visualization, and result-saving modules. Code and data remain private because of research and industry-collaboration constraints.
I build reliable AI applications end to end, connecting product interfaces, agent workflows, APIs, and data systems. Computational imaging is my technical edge.
AI applications
frontend + client systems
agent workflows
computational imaging
I turn AI capabilities into products people can use: streaming interfaces, local client workflows, orchestration, APIs, and data delivery. My main lane is AI full-stack engineering, with computational imaging and open-source collaboration adding technical depth.
- AI application engineering: turning LLM and agent capabilities into product flows across UI, orchestration, APIs, and data.
- Frontend and client engineering: building streaming interfaces, desktop workflows, device-facing controls, and cross-platform behavior.
- Agent workflows and data systems: working with RAG, DAG execution, model routing, MCP, SSE, RBAC, state, and storage.
- Computational imaging: turning reconstruction research into usable software through camera acquisition, spectral visualization, and result handling.
- Interface: HTML5, CSS3, JavaScript, TypeScript, React, React Flow, Zustand, Vite, Webpack, and Rspack.
- AI applications: LLM agents, RAG, LangChain, LangGraph, MCP tool calling, model routing, SSE, and WebSocket workflows.
- Services and data: Node.js, NestJS, Python, PyTorch, PostgreSQL, pgvector, Redis, DAG execution, RBAC, snapshots, and structured diff or rollback.
- Client delivery: Rust, Tauri, Git, Windows tooling, PyInstaller, camera workflows, and desktop result handling.
My coding-agent toolkit includes Kimi Code, Codex, Pi, Claude Code, Hermes, OpenCode, and ZCode. I also follow DeepSeek Harness within the broader agent tooling ecosystem. I use these tools inside a human-led loop: understand the codebase, implement the change, test edge cases, document decisions, and review the result.
I work on real issues across AI agent systems, frontend ecosystems, desktop and web tooling, and civic data. As of 2026-09-01, 32 PRs are merged across six upstream projects, with 24 more in review.
Recently merged across major AI agent and frontend ecosystems:
- π ant-design/ant-design#59173 Β· β 99.3k β fixed the Chinese contribution guide to link the English locale list in its i18n step, so contributors update both locale lists.
- π€ agentscope-ai/agentscope#2434 Β· β 30.3k β Uvicorn hot reload forced a SelectorEventLoop on Windows and broke subprocess execution; disabling reload on Windows keeps a compatible event loop.
- π alibaba/open-code-review#1114 Β· β 21.8k β added Pug template support to the review allowlist, with a dedicated rule covering escaping contexts, attribute spreads, and URL sinks.
- βοΈ alibaba/hooks#2956 Β· β 15.0k β kept
useLatestanduseUnmountedRefreturns as non-nullableMutableRefObjectacross the supported React type versions, backed by declaration-emission regression tests. - π Tencent/cherry-markdown#1871 Β· β 4.9k β guarded pending image load and error callbacks after previewer destroy, so late events no longer touch torn-down state.
27 merged PRs in open-city-ai/haidian β selected deep dives:
π₯ Complete delivery Β· bilingual formal submission
Problem: A civic-data submission needed a complete, reviewable package rather than an unsupported concept.
Contribution: I delivered a scoped 41-file bilingual package spanning narrative, offline HTML/PDF, GeoJSON, metrics, sources, a manifest, and deterministic self-checks, while marking provisional geometry and non-endorsement boundaries.
PR: open-city-ai/haidian#2540 Β· merged for repository intake, not gallery publication or government endorsement.
π Site provenance
Problem: Provisional site inputs lacked consistent dates, hashes, licence and use boundaries, while an empty constraints layer could be mistaken for proof that no controls existed.
Contribution: I added a built-ins-only audit for four submitted geometries, recorded six missing official-control layers, and made replacement triggers and permitted uses traceable across the package. The merged change passed 18/18 audit checks.
πͺ Windows portability Β· import and worker locking
Problem: An unconditional fcntl import stopped two test modules from being collected on Windows, and worker-lock contention needed consistent cross-platform semantics.
Contribution: I reproduced the failure, introduced the guarded POSIX and Windows lock path, and added the initial regression. Maintainer review then corrected the production file-open path and strengthened its test; the previously uncollectable target suite passed 21/21 tests.
π Deterministic artifacts Β· LF across platforms
Problem: Three writer paths emitted CRLF on Windows, creating whole-file diff noise and breaking byte-hash consistency after line-ending normalization.
Contribution: I made the writers emit LF bytes and added direct plus end-to-end regressions. After review exposed a Python 3.9 compatibility issue, I revised the implementation and revalidated both flows.
βοΈ Review semantics Β· blockers versus future follow-ups
Problem: A flat review-action list converted future conditions into immediate change requests, creating an intake loop that compliant edits could not close.
Contribution: I introduced explicit non-blocking follow-ups with trigger and owner fields, invalidated legacy review caches, and kept current or malformed repairs fail-closed with focused regression coverage.
PR: open-city-ai/haidian#3982; the original blocked head was re-reviewed and merged without weakening existing gates.
| Area | Project | Status | Selected work |
|---|---|---|---|
| ποΈ Civic data delivery | open-city-ai/haidian | 28 PRs Β· 27 merged |
Structured submissions, geometry sources, deterministic artifacts, review semantics, and a CJK font screenshot regression |
| βοΈ Frontend ecosystems | ant-design/ant-design Β· alibaba/hooks Β· Tencent/cherry-markdown | 3 merged |
Contribution-guide link repair, non-nullable ref types, and previewer lifecycle cleanup |
| π Code review tooling | alibaba/open-code-review | 1 merged Β· 1 open |
Pug template support merged; Jinja template support in review |
| π€ AI agent systems | agentscope-ai/agentscope | 2 PRs Β· 1 merged |
Windows subprocess behavior in an AI agent example |
| π± Cross-end frontend | NervJS/taro | 6 open |
Component rendering, platform API typings, and Vite runner CSS behavior |
| π₯οΈ Agent desktop UI | bytedance/UI-TARS-desktop | 5 open |
Agent server streaming, MCP initialization, device actions, and workspace search ordering |
| π§ Agent memory & Node.js | TencentCloud/TencentDB-Agent-Memory | 3 open |
Proxy preservation, SQLite filtering, and self-healing store state |
| π» Desktop UX | desktop/desktop | 1 open |
React and TypeScript pull-request state and suggestion behavior |
| π¦ Web tooling | parcel-bundler/parcel | 1 open |
Correct UTF-8 BOM JSON parsing in the resolver path |
| π§ Search & coordinates | organicmaps/organicmaps | 1 open |
C++ search behavior for space-separated DMS coordinates |
π€ AI agent systems Β· 9 open PRs
- TencentCloud/TencentDB-Agent-Memory#1171: keep Node's global proxy dispatcher intact while loading
undici@8. - TencentCloud/TencentDB-Agent-Memory#1172: self-heal the store-init cache after failed initialization or a closed store.
- TencentCloud/TencentDB-Agent-Memory#1173: honor
recordIdsfiltering in the SQLite L1 query path. - bytedance/UI-TARS-desktop#1957: release the exclusive slot when agent-server stream startup fails.
- bytedance/UI-TARS-desktop#1958: await asynchronous ADB device actions.
- bytedance/UI-TARS-desktop#1959: add default search exclusions to the MCP filesystem server.
- bytedance/UI-TARS-desktop#1960: surface MCP agent initialization failures.
- bytedance/UI-TARS-desktop#1961: prioritize source workspace results in the contextual selector.
- QwenLM/qwen-code#10580: localize untitled session search in the VS Code integration.
π± Cross-end frontend Β· 6 open PRs
- NervJS/taro#19491: center aspectFit images horizontally.
- NervJS/taro#19492: keep global page styles when syncing CSS in the Vite runner.
- NervJS/taro#19493: add the WeChat phone-number quota toast prop to Button and its template.
- NervJS/taro#19494: mark holdKeyboard for Baidu and pass hold-keyboard through the swan templates.
- NervJS/taro#19495: fix self-contradictory generic constraints and missing RequestParams in the request typings.
- NervJS/taro#19496: add the missing requestCommonPayment typings for WeChat payment.
π οΈ Frontend, client, and tooling Β· 8 open PRs
- alibaba/open-code-review#1056: add Jinja template support to the review configuration flow.
- desktop/desktop#22767: hide pull-request suggestions when a branch has no commits ahead of the default branch.
- parcel-bundler/parcel#10352: parse UTF-8 BOM JSON correctly in the resolver path.
- Tencent/wujie#1105: avoid the reserved style prop warning in the Vue 2 adapter.
- Tencent/vConsole#737: restore inherited event properties in log output.
- bytedance/flowgram.ai#1176: scaffold projects without partial mutations.
- alibaba/formily#4363: export static guide routes in the docs build.
- pnpm/pnpm.io#908: document confirmModulesPurge.
π§ Search and coordinates Β· 1 open PR
- organicmaps/organicmaps#13423: support space-separated DMS coordinates in search.
Auto-aggregated from every public PR against external repositories, and refreshed daily by a GitHub Action β dynamic numbers stay current without manual edits.
| Project | β | PRs | β Merged | π Open |
|---|---|---|---|---|
open-city-ai/haidian |
406 | 28 | 27 | 0 |
agentscope-ai/agentscope |
30306 | 2 | 1 | 0 |
alibaba/open-code-review |
21764 | 2 | 1 | 1 |
alibaba/hooks |
14977 | 1 | 1 | 0 |
ant-design/ant-design |
99344 | 1 | 1 | 0 |
Tencent/cherry-markdown |
4857 | 1 | 1 | 0 |
NervJS/taro |
37660 | 6 | 0 | 6 |
bytedance/UI-TARS-desktop |
38775 | 5 | 0 | 5 |
TencentCloud/TencentDB-Agent-Memory |
25523 | 3 | 0 | 3 |
alibaba/formily |
12566 | 1 | 0 | 1 |
assistant-ui/assistant-ui |
11966 | 1 | 0 | 0 |
bytedance/flowgram.ai |
8406 | 1 | 0 | 1 |
desktop/desktop |
21811 | 1 | 0 | 1 |
organicmaps/organicmaps |
15271 | 1 | 0 | 1 |
parcel-bundler/parcel |
44023 | 1 | 0 | 1 |
pnpm/pnpm.io |
312 | 1 | 0 | 1 |
QwenLM/qwen-code |
27548 | 1 | 0 | 1 |
Tencent/vConsole |
17519 | 1 | 0 | 1 |
Tencent/wujie |
5025 | 1 | 0 | 1 |
| Total across 19 upstream projects | 59 | 32 | 24 |
Snapshot 2026-09-01 (UTC) β PRs minus merged minus open are closed without merge and are not counted as adopted work.
Master's student at BUPT, Electronic Engineering and Information Photonics
Undergraduate background in Network Engineering at BUPT
dvd@linux.do Β· z1403594118@gmail.com
Trophy, stats, streak, and calendar cards are regenerated daily by GitHub Actions workflows in this repository.
Animated SVG generated from the public contribution calendar by a scheduled Platane/snk workflow.

