AI 工作台 /01
Weft
读到一段,就从这里提问。
在同一工作区管理订阅、阅读和收藏。配置翻译或 AI 对话服务后,可选中文章段落继续提问;阅读器、工具包和视频画布运行在同一模块化运行时上。
开源 · 开发预览

WORKS / 软件与实践
从 AI 工作台、文件管理,到设备交互、游戏和短片。这里展示作品实际使用的样子,也留下它们的设计与实现,方便继续了解或一起讨论。
聊聊合作01 / 从界面认识作品
AI 工作台 /01
Weft
在同一工作区管理订阅、阅读和收藏。配置翻译或 AI 对话服务后,可选中文章段落继续提问;阅读器、工具包和视频画布运行在同一模块化运行时上。
开源 · 开发预览

AI × 界面设计 /02
What to Pick Today
这是一个界面比较实验:接入模型 API 后生成候选方案,可并排查看、试用,再决定是否应用到当前页面,也可回看旧版本。内置候选可用于体验流程。
开源 · 浏览器应用

文件与存储 /03
RestoreWeave
将不同来源的文件加入内容库,用标签、备注和搜索查找。相同内容只保存一份,各自的原始路径仍可恢复;恢复时会再次校验文件。
开源 · 本地文件管理

硬件管理 × 跨端系统 /04
ManagementCloud
设备管理端维护设备与分组,移动端通过 Wake-on-LAN(WOL)发送电脑唤醒指令。配图展示管理界面和实拍的唤醒过程。
个人项目 · Go / Vue / Flutter
这是我为自己使用而写的设备平台。除了界面与唤醒操作,也做了连接管理、数据归属和定时任务这些基础工作。
合作游戏 /05
ECHO · 回声庭园
合作游戏项目:角色三秒前的行动会以 Echo 重现,玩家可借它继续前进。庭园、关卡和世界树将这一玩法融入环境叙事。
合作项目 · Godot

02 / 屏幕之外的实践
我也尝试把视觉识别接到设备控制里。这里展示手势采集样本,以及智慧农业赛项中的设备联动场景。
张开手掌
手掌向下
拇指向上原始采集样本 · MediaPipe 关键点重新检测,可切换原图
用 OpenCV 与 MediaPipe 读取手部关键点,训练手势分类模型,并探索与 Dobot 机械臂控制的连接。
OpenCV / MediaPipe / Python围绕智慧农业仓储,接触相机采集、图像分类、称重和设备通信。从画面里的目标,到机械臂的抓取与分拣,把识别结果接进设备流程。
Python / PyTorch / Dobot / Serial / TCP连接校园网、读写文件、控制进程——这些小工具和实验,记录了我从基础代码走到系统开发的过程。
个人工具 · 两版实现
为自己连接校园网做过两版工具:先用 Go 写命令行,读取配置、解析登录页面并定时重登;再用 Flutter 与 Rust FFI 做客户端,读取重定向参数,复现 quickauth 登录流程。沿着同一个问题,从网络请求走到跨端界面。
Go / Flutter / Rust / FFIwork_dir · 跨语言练习
把二维码收发这个小课题,分别用 wxWidgets、Flutter、Rust + FLTK 和 C++ FFI 做一版;还试过 wxWidgets 进程管理小工具和配置驱动的转换 CLI。同样的功能换一套工具再做,接触不同的界面组件、语言边界与构建方式。
wxWidgets / Flutter / Rust + FLTK / C++ FFI / xmake / CLI基础练习
写过大整数类,练习构造函数、运算符重载和模板入门;也整理 gcc/g++ 编译链接与 rpath 参数,再用 xmake、CMake 配置构建。
C++ / gcc / g++ / rpath / xmake / CMake多次迭代
围绕 JWT、Casbin 与 RBAC,反复整理管理端骨架,也接入过 WebSocket、独立 TCP 服务和 Swagger。ManagementCloud 的 Go 后端延续了这条实践线。
Go / JWT / Casbin / RBAC / WebSocket / TCP / Swagger验证与加密练习
历史练习项目,尝试实现 TOTP、RSA 签名、AES 加密、密钥管理和过期策略,用来熟悉相关概念与代码组织。
Go / Gin / TOTP / RSA / AES个人练习
尝试把 Excel 解析、二维码生成和表单回填串起来,并做了桌面 GUI 与 HTTP 两种入口。需求边做边变,这段主要练习拆分接口和流程。
Go / fasthttp / Excel / QR code / GUI / HTTP环境探索与排错
在 Termux、KernelSU 与 Zygisk 环境里尝试权限和模块集成,也折腾过 rclone 挂载与脚本。内容以环境探索、联调和排错为主。
Termux / KernelSU / Zygisk / rclone / scripts基础练习
从 TCP 客户端和服务端开始,尝试多线程服务、future/async 异步任务,再用锁和条件变量协调线程。把书里的连接、等待与同步写成能运行的小程序,理解它们怎样配合。
C++ / Socket / Thread / Future / Mutex个人底层探索
围绕《植物大战僵尸》做内存实验:用 C++、x86 汇编和 Windows API 还原游戏函数调用,向游戏进程写入并执行代码,修改阳光数值。从界面上的一个数字,往下追到进程、内存与函数。
C++ / x86 ASM / Windows API03 / 视觉与表达
AI 辅助叙事短片 2:07
短片讲一个人重新找到兴趣、表达和学习动力的过程。画面从冷蓝色的房间转向电脑屏幕的暖光,随人物情绪变化。
播放器无法显示时,可在 B 站观看。
在 B 站打开原片制作分工由我借助 AI 完成脚本、分镜、生成画面、声音与剪辑整合;真人出镜和拍摄素材来自团队成员。
04 / 公开项目 / 10
Weft 把模型协议和能力调度放在 Core,聊天、RSS 阅读器、AI 视频画布与多 Agent 编排则由可替换的 package 提供。packages/index.toml 统一记录 capability 与 package 的对应关系;package 分为 provider、foundation、product,运行方式包括 wasm、native、embedded 和 service。调用默认拒绝未授权操作,升级时检查权限增量,并在调用点门控 11 类权限。每个 package 的 Ed25519 签名覆盖名称、版本、SHA-512 和来源;工具失败时,Closed/Open/HalfOpen 熔断器控制是否继续调用。工具路由在本机 CPU 上用 ONNX INT8 计算余弦 top-k,不调用模型 token。RSS 阅读器先用 TF-IDF 画像筛出候选,再让 LLM 排序。weft-core 已发布到 crates.io,项目提供 Windows 安装包;macOS 和 Linux 尚未完成发行验证。
模型直接生成代码时,输出可能能运行、diff 也看似正常,错误仍要到执行时才会显现。CodeJev 改由宿主从 AST 枚举代码候选并分配 ID,模型只返回某个 ID 或 NONE;随后宿主按确定性步骤组装并验证。在这组只改变输出形式、使用同一模型的对照中,候选选择 5/5 成功,自由生成 0/5。另一次选择器对照中,350M 模型总是返回同一个 ID,本地 1.5B 模型为 2–3/4、Jev 为 4/4、DeepSeek 为 5/5。结果仅描述这些小样本实验。
把身份、地址发现和消息历史分开:信息交换服务只提供账号对应的地址/IP,用户可以选择真实 IP 或中继 IP;每个人运行或信任一个 Store,保存、验证并转发自己的消息。当前原型以 WebSocket + Protobuf 连接节点,用哈希 DAG 容纳并发与乱序;缺少父消息时先挂起,父消息到达后再提升。实现按 DAG 深度、本地接收时间与哈希排序,这不能保证不同 Store 得到相同的全序。签名包含父消息引用,1v1 Olm 已经过真实 Store 的密文往返测试;群状态、一致排序与新设备恢复规则仍在设计。自查修复过消息验签、ROOM_EVENT、设备注册和准入问题,但 REST 读接口与节点间 WebSocket 默认仍无鉴权、无 TLS,因此是研究原型,尚未产品化。实现以 AI 辅助为主,我负责方案取舍与验收。
RestoreWeave 面向 NAS 和多来源文件,用整文件 SHA-256 与逻辑长度识别内容;字节相同的文件共用一份数据,同时保留各自文件名和原始路径。写入前先生成只读计划,列出文件数、逻辑大小、预计新增空间、重复内容和阻塞项,确认后才写入。导出与恢复时会重新核对路径、长度和 SHA-256;索引只负责定位,不能证明文件字节完整,索引或模型不可用时仍可按精确内容读取和恢复。搜索支持关键词、结构化条件、标签和备注;语义搜索需显式安装并检查本地 BGE 模型。这是尚未发行的 core preview,API 按 loopback 使用设计。
GlassBox 为每位用户隔离 Agent 执行环境,由 9 个应用服务组成。容器先移除全部 capability,再只加回运行所需项,并启用 no-new-privileges 和三层网络。Agent 端口只映射到 127.0.0.1 的临时端口;会话闲置 30 分钟后回收,孤儿容器按 label 清理。浏览器通过无头 Xvfb 与 Chromium CDP 观察,不传输整张桌面画面。
workflow-to-skill 把目标和已有 CLI、MCP 或 HTTP 工具写成可审查的 SKILL.md,执行仍交给宿主已有的工具和运行环境。在 DeepSeek Harness 的真实持久会话中,已记录一次「生成 Skill—新会话复用—得到结果」流程;仓库保留对应的证据地图和用例记录。
Loom 将想法拆成 auth、CRUD、表格等能力接口,从个人组件库检索现成代码,由 AI 选择,再由客户端确定性地组装成 T3 项目;客户端不调用 LLM。一次小规模实验中,4 个想法的组装版本都修到可编译,而从零生成的 4 个版本都在修复后越来越乱而停止;组装方案的 output token 约为从零生成的 1/18。实验只使用 deepseek-chat,样本较小,“收敛”仅指 tsc 零错误。loom-memory-mcp 已发布到 PyPI。
Siftline 将研究流程分成 Skill 和 CLI:Skill 设定要追踪的关系、搜索渠道、查询和停止条件;CLI 执行搜索,并返回带 provenance 的 schema 化 JSON 与机器可读账本。CLI 不做 LLM 推理、排序或结论判断,调用方据返回的材料自行评估。
plate-redact 为行车记录仪视频遮挡车牌,可组合多个检测或识别引擎的结果;多检出可能多出色块,漏检则可能泄露车牌。系统根据车辆运动预测提前遮挡,并使用纯色填充。发布流程按 fail-closed 设计:冻结输入、取得排他 lease、原子发布,编码后再解码输出,并检查遮挡区域能否由车辆轨迹解释;无法解释的区域标为 UNKNOWN 并阻止发布(test_fail_closed.py 有 17 项检查)。仓库不含视频素材或权重,第三方引擎按需惰性加载。
ModSpec 用 .mspec.toml profile 描述配置,并以可复用的 .rule.toml 定义 Hook。PC 上的 Rust CLI 通过 ADB 与手机 Agent 配对;validate 检查配置,verify 检查设备漂移,通过后才应用变更。Hook 脚本引擎支持 Frida 风格的 before、after、replace 操作和结构化事件。运行需要 root 与 LSPosed,目前是开发者预览,尚未稳定发行。