RuView 多频网格感知应用实战:从 RF 层析成像到穿墙检测的五个单信道无法实现的应用
导读
RuView 的多频网格扫描(ADR-073)让两台 ESP32-S3 节点在 6 个 WiFi 信道间跳频,把"被动照射"邻居 AP 变成射频感知基础设施。本文以 ADR-078 为骨架,系统讲解只有多频扫描才能实现的五类感知应用:RF 层析成像、无源双基地雷达、频选材料分类、穿墙运动检测与设备射频指纹。读完本文,你将掌握每个应用的物理原理、算法流程、对应脚本的真实 CLI 参数,以及脚本在 scripts 目录中的源码级实现细节,可直接用 live UDP 或 JSONL 回放数据复现实验。
一、背景:为什么需要"多频"而不是"加信道"
ADR-078 是 ADR-073 多频网格扫描 的后续。ADR-073 建立了这样的基础设施:2 个 ESP32-S3 节点分别跳频扫描 6 个 WiFi 信道(1、3、5、6、9、11),利用环境里 9 个邻居 WiFi 网络作为"免费的被动照射源(illuminator of opportunity)"。
单信道 CSI 只观察一个频率(例如信道 5 @ 2432 MHz),在约 20 MHz 带宽内提供 52~64 个 OFDM 子载波的幅度与相位。多频扫描把观测扩展到 2412–2462 MHz 的 50 MHz 跨度,每个信道给出独立的多径观测——同一物理路径在不同频率上的干涉图案完全不同。
关键物理事实:2 cm 的路径差在 2432 MHz 处产生干涉相消(null),却在 2412 MHz 处产生相长干涉。因此频率本身就是一条新的信息维度,这正是本 ADR 五类应用的共同立足点。
1.1 可用的部署基础设施
| 资源 | 细节 |
|---|---|
| 节点 1(COM7) | ESP32-S3,跳频信道 1、6、11(互不重叠),200 ms 驻留 |
| 节点 2 | ESP32-S3,跳频信道 3、5、9(交错、贴近邻居 AP),200 ms 驻留 |
| 邻居 AP | 9 个网络,分布在信道 3、5、6、9、11 |
| 数据传输 | UDP 5006 端口,ADR-018 二进制帧格式 |
| 录制数据 | data/recordings/overnight-*.csi.jsonl |
1.2 邻居 AP 照射源表(来自 ADR-078)
| SSID | 信道 | 频率 (MHz) | 信号强度 (%) | 角色 |
|---|---|---|---|---|
| ruv.net | 5 | 2432 | 100 | 主照射源 |
| Cohen-Guest | 5 | 2432 | 100 | 同信道照射源 |
| COGECO-21B20 | 11 | 2462 | 100 | 高频照射源 |
| HP M255 LaserJet | 5 | 2432 | 94 | 设备指纹识别目标 |
| conclusion mesh | 3 | 2422 | 44 | 低频照射源 |
| NETGEAR72 | 9 | 2452 | 42 | 中高频照射源 |
| NETGEAR72-Guest | 9 | 2452 | 42 | 同信道照射源 |
| COGECO-4321 | 11 | 2462 | 30 | 弱高频照射源 |
| Innanen | 6 | 2437 | 19 | 弱中心频段照射源 |
ADR-073 还指出,跳频会牺牲单信道采样率(单信道 12 fps → 每信道约 4 fps),且只有 ADR-018 二进制帧头在字节 [8..11] 携带信道/频率字段,服务端才能区分不同信道的帧——这正是 ADR-078 五个脚本能工作的前置条件。
二、应用一:RF 层析成像(RF Tomographic Imaging)
2.1 原理与算法
由于多径干涉随频率变化,每个 WiFi 信道对房间的"透视结果"各不相同。6 信道 × 2 节点形成 12 条独立的 RF 路径观测。RF 层析把每条发射–接收路径上的衰减反投影(back-project)到房间网格:路径交汇处衰减高即存在吸收体(人、家具、墙),衰减低则为空旷空间。
ADR-078 给出的算法流程为:
For each CSI frame:
1. Compute path attenuation = RSSI_free_space - RSSI_measured
2. For each cell in a 10x10 room grid:
a. Compute the cell's distance to the TX->RX line (perpendicular distance)
b. Weight contribution by 1/distance (cells near the path contribute more)
3. Accumulate weighted attenuation across all frames, channels, and node pairs
4. Normalize: cells with high accumulated attenuation = absorbers (people/objects)
可使用代数重建技术(ART)做迭代细化,或直接用简单反投影做实时显示。
2.2 分辨率与单信道的局限
- 理论分辨率约 λ/2 = 6 cm(2.4 GHz);
- 双节点几何下实际约 20 cm;
- 频率分集增益约 √6 ≈ 2.4 倍(相对单信道)。
单信道对每条路径只有一个频率观测点。当路径恰好处于相长干涉点时,单信道测得的穿透衰减可能为零,从而漏检人体;多信道提供了穿过同一空间路径的独立衰减测量,大幅提升可靠性。
2.3 源码实现要点:rf-tomography.js
脚本 以 TomographyGrid 类为核心(rf-tomography.js):
- 内部维护
attenuation与pathCount两个Float64Array(gridSize × gridSize),前者累加衰减、后者用于归一化,还有按信道区分的channelAttenuationMap 以支持频率分析。 pointToLineDistance()(L124-L131)用叉积计算网格单元中心到 TX→RX 直线的带符号垂直距离。backProject()(L142-L175)中,反投影核宽取max(cellWidth, cellHeight) * 1.5(注释说明:2.4 GHz 下 λ/2 ≈ 6 cm 理论核宽,但为数值稳定取更宽),对核内每个单元按高斯权重exp(-0.5*(dist/(kernelWidth*0.4))²)累加。detectObjects(threshold=0.6)输出高衰减单元(潜在的"人"位置),getImage()按 pathCount 归一化到 0–1 后映射为 8 级 Unicode 方块字符热力图(HEAT数组),空气→实体由浅到深。
CLI 支持以下参数(源码 L31-L53):
node scripts/rf-tomography.js # UDP 5006 实时
node scripts/rf-tomography.js --port 5006 --duration 60 # 指定端口与运行时长
node scripts/rf-tomography.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/rf-tomography.js --grid 15 --node-distance 4.0 # 更细网格 + 拉大节点间距
其中 --grid 默认 10(网格规模)、--node-distance 默认 3.0 米、--room-width/--room-height 默认 5.0/4.0 米,配合 --json 可输出机器可读结果。
三、应用二:无源双基地雷达(Passive Bistatic Radar)
3.1 原理
邻居 WiFi AP 持续发送且不受我们控制。ESP32 节点捕获这些发射的 CSI,其相位与幅度已被房间内物体调制。每个邻居 AP 就是一个位于已知位置与频率的免费"机会照射源"。
这与军用无源雷达(乌克兰 Kolchuga、捷克 VERA-NG 利用 FM/电视发射塔探测飞机)原理一致——只是把广播塔换成 WiFi AP,把飞机换成室内的人。
3.2 算法与多基地几何
For each neighbor AP (identified by BSSID/channel):
1. Track CSI phase progression across consecutive frames
2. Compute Doppler shift: fd = d(phase)/dt / (2*pi)
- Positive Doppler = target moving toward the AP
- Negative Doppler = target moving away
3. Compute range from subcarrier phase slope:
- tau = d(phase)/d(subcarrier_freq) / (2*pi)
- range = c * tau (where c = speed of light)
4. Build range-Doppler map per AP
5. Fuse multi-static detections:
- Each AP provides a range ellipse (locus of constant TX->target->RX delay)
- Intersection of 3+ ellipses = target position
3 个以上邻居 AP × 2 个 ESP32 接收端 → 6 个以上双基地对。每对把目标约束在一个椭圆(TX→目标→RX 等延时轨迹)上,多个椭圆求交即得 2D 位置:
AP1 (ch5) AP2 (ch11)
\ /
\ TARGET /
\ /|\ /
\ / | \ /
ESP32_1 ---*--+--*--- ESP32_2
/ \ | / \
/ \|/ \
/ TARGET \
/ \
AP3 (ch3) AP4 (ch9)
单信道只能看到该信道上的 AP——比如固定信道 5 只能看到 ruv.net 与 Cohen-Guest,完全错过 COGECO-21B20(ch11)、conclusion mesh(ch3)、NETGEAR72(ch9)。多频扫描捕获 6 个信道全部 9 个 AP 的照射,三角定位才具备几何多样性。
3.3 源码实现要点:passive-radar.js
脚本 的核心是 IlluminatorTracker(L94-L271):
- 每个照射源按
ssid-node键维护最多 64 帧的相位/幅度环形缓冲(maxHistory = 64)。 computeRangeDoppler()中多普勒由每个子载波的相位–时间线性回归斜率得到:fd = slope / (2π);回归前先做相位解缠绕(while (phase - prevPhase > π) phase -= 2π,见 L152-L164)。- 距离由每帧内相位随子载波索引的斜率得到:已知 OFDM 子载波间隔
312.5 kHz,tau = |slope| / (2π × 312.5e3),再range = c·tau/2(双基地距离减半)。 - 距离–多普勒图覆盖
maxDoppler = 5 Hz(约合 2.4 GHz 下 0.3 m/s)与maxRange = 10 m,由--doppler-bins(默认 16)和--range-bins(默认 12)控制分 bin 粒度。 getDominantDoppler()从图中提取最强目标的doppler / velocity = fd·λ/2 / range。MultiStaticFusion(L276 起)按信道匹配ILLUMINATORS表(脚本内 8 个 AP 均带freq与估算的pos坐标)为每个照射源独立建 tracker,最后融合多个双基地椭圆求交。
运行示例:
node scripts/passive-radar.js # 实时,默认间隔 3000 ms
node scripts/passive-radar.js --port 5006 --duration 60
node scripts/passive-radar.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/passive-radar.js --doppler-bins 16 --range-bins 12
四、应用三:频选材料分类(Frequency-Selective Material Classification)
4.1 原理
不同材料对 2.4 GHz WiFi 的吸收/反射随频率变化的方式不同:
| 材料 | 衰减特征 | 频率依赖性 |
|---|---|---|
| 金属 | 全反射、深 null | 频率平坦(等量阻挡) |
| 水/人体 | 强吸收 | 随频率上升(介电损耗 ~ f²) |
| 木材 | 温和衰减 | 随频率上升(含水率) |
| 玻璃 | 低衰减 | 几乎频率平坦 |
| 石膏板 | 低–中衰减 | 轻微频率依赖 |
| 混凝土 | 中–高衰减 | 随频率上升 |
物理依据:2.4 GHz 下水的复介电常数约为 εr = 77 − j10,虚部(损耗)在 WiFi 频带内随频率上升;金属在任意频率都是理想导体;玻璃(εr ≈ 6 − j0.1)在所有 WiFi 频率上损耗可忽略。50 MHz 跨度(2412–2462 MHz)虽然只占载频约 2%,但足以区分含水材料(人体、湿木、盆栽)的频变吸收特征与金属、玻璃这类频率平坦材料的平坦特征。
4.2 算法
ADR-078 的判定框架为:先算平坦比 flat ratio = std(A across channels) / mean(A across channels) 与线性回归斜率,再按规则分类——金属是高衰减+平坦;玻璃/空气是低衰减+平坦;水/人体是正斜率(衰减随频率增)+高衰减;木材是正斜率+中等衰减;高跨信道方差则为复杂散射体。
注意方向约定:ADR-078 以"衰减 A"表述(正斜率 = 衰减随频率上升 = 含水材料),而 material-classifier.js 的实现以幅度为度量(幅度随频率下降即衰减随频率上升),源码注释 L176-L177 写的是 "Negative slope (amp decreases with freq) AND mean < 6.0 -> Water/Human"。两者只是符号取反,物理一致。
4.3 源码实现要点:material-classifier.js
- 材料字典(L70-L78):
METAL(#)、WATER(~)、HUMAN(@)、WOOD(|)、GLASS(:)、AIR(.)、COMPLEX(?),各带 ASCII 标记与说明。 - 关键常量
NULL_THRESHOLD = 2.0,用于把某子载波在特定信道上的幅度视为 null(该信道看不到这个频点)。 - 分类器对每个子载波计算跨信道
flatRatio与slopePerMHz(幅度–频率线性回归归一化)。实际判定阈值从源码可见(L235-L248):flatRatio < 0.15且均值极低判金属类;均值较高判玻璃/空气类;slopePerMHz为显著负值且均值区间不同分别判 Water/Human、Wood;flatRatio > 0.5判 Complex。实现文档中的 0.1 调整为 0.15,需以源码为准。 - CLI 提供
--window(默认 20 帧的分析窗口)与--interval(默认 5000 ms)。注意分类需要长时间平均窗口(5–10 s)来提高频变测量的 SNR,这也是本应用刷新率低于前两者的原因。
运行示例:
node scripts/material-classifier.js
node scripts/material-classifier.js --port 5006 --duration 60
node scripts/material-classifier.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/material-classifier.js --window 40
4.4 为什么单信道不行
材料分类必须测量"衰减如何随频率变化"。单信道只有一个频率点,根本没有可供测量的频率轴;多频扫描提供跨越 50 MHz 的 6 个频率点,才能计算斜率与方差。
五、应用四:穿墙运动检测(Through-Wall Motion Detection)
5.1 原理
WiFi 频率越低穿墙越好。2.4 GHz 下标准石膏板+木龙骨隔墙的穿损大致为:信道 1(2412 MHz)2.5 dB、信道 6(2437 MHz)2.6 dB、信道 11(2462 MHz)2.7 dB(混凝土则约 8.0/8.3/8.6 dB)。绝对差异很小(约 0.2 dB),但 6 个信道仍可实现:
- 在校准期(墙后无人)标定墙体的频率相关衰减轮廓;
- 检测超出基线的变化 = 墙后运动;
- 对低频信道加权更高(其穿墙 SNR 更好);
- 跨信道交叉验证:真实的墙后运动会出现在所有信道上(幅度随频率变化),而干扰/噪声通常只出现在单个信道。
5.2 算法
Calibration phase (60 seconds, no motion behind wall):
For each channel ch:
baseline_mean[ch] = mean(CSI amplitude over calibration)
baseline_std[ch] = std(CSI amplitude over calibration)
Detection phase:
For each frame on channel ch:
1. Compute deviation = |current_amplitude - baseline_mean[ch]| / baseline_std[ch]
2. Channel weight = f(penetration_quality[ch])
3. Per-channel score = deviation * weight
Fused score = weighted sum across channels
Alert if fused_score > threshold for N consecutive frames
单信道穿墙检测误报率高,因为无法把墙效应与运动区分开。多频方案在校准时刻画墙体频率响应、逐信道扣除墙效应,再跨信道交叉验证(真实运动跨频率相干,噪声不相干),频率分集带来约 √6 ≈ 2.4 倍的检测 SNR 提升。
5.3 源码实现要点:through-wall-detector.js
脚本 实现了完整的"校准→检测→持续告警"状态机:
PENETRATION_WEIGHT(L74-L80)体现"低频穿透更好":信道 1(2412 MHz)权重 1.00(最佳穿透),信道 11(2462 MHz)权重 0.80(最差),其余信道回退默认 0.9。ChannelBaseline(L91 起)在校准期累计每信道幅度均值/方差,computeDeviation()按|amp - mean| / std计算逐子载波偏差。- 检测阶段逐信道算
weightedScore = deviation × weight,融合分fusedScore为各信道加权均值(L227-L233)。 - 跨信道相干性
coherence:只有当多数信道偏差超过alertThreshold × 0.5时才累计告警,且需fusedScore > threshold && coherence > 0.4(L245-L248),连续consecutiveFrames(默认 3)帧成立才真正触发——这就是把"真实运动相干、噪声不相干"落成代码。
ADR-078 要求 60 s 校准;实现中 --calibrate 默认为 30 秒可调:
node scripts/through-wall-detector.js --calibrate 60 # 60 秒墙后无人的校准
node scripts/through-wall-detector.js --port 5006 --duration 300
node scripts/through-wall-detector.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/through-wall-detector.js --threshold 3.0 --consecutive-frames 5
其他参数:--interval 默认 1000 ms,--threshold 默认 2.5,--json 输出结构化告警。
六、应用五:基于 RF 辐射的设备指纹(Device Fingerprinting via RF Emissions)
6.1 原理
每台电子设备都有独特的 RF 特征,会以设备专属方式调制邻近的 WiFi 信号:
- WiFi AP:独特的发射功率、相位噪声与时钟漂移特征;
- 打印机:HP M255 LaserJet 打印时(电机 EMI)在特定子载波上产生图案;
- 微波炉:2.45 GHz 磁控管辐射横跨信道 8–11,形成宽带干扰;
- 蓝牙设备:2.4 GHz 跳频在多个信道制造瞬态尖峰。
6.2 算法
Learning phase:
For each known device (from WiFi scan SSID/BSSID correlation):
1. Record CSI patterns when device is active vs inactive
2. Compute per-channel signature:
- Mean amplitude profile across subcarriers
- Variance profile (active devices increase variance on specific subcarriers)
- Phase noise characteristics
3. Store signature as device fingerprint
Detection phase:
For each analysis window:
1. Compute current CSI profile per channel
2. Correlate against stored fingerprints
3. Report device activity: "HP printer active (confidence 0.87)"
多频优势:不同设备作用于不同信道——HP 打印机(ch5)只在打印时影响信道 5 的子载波 20–40;NETGEAR72 路由器(ch9)在信道 9 制造与时钟漂移相关的相位图案;微波炉宽带干扰在信道 9–11 最强。单信道只能看到作用于该信道的设备;多频扫描观察整个 2412–2462 MHz,无论设备工作在哪个信道都能检测其活动。
6.3 源码实现要点:device-fingerprint.js
脚本 内置了从 WiFi 扫描获得的 8 个已知设备表(L71-L80),带 id/ssid/channel/signal/type,例如 hp-printer(信道 5,信号 94,type: printer)、netgear72(信道 9)、cogeco-21b20(信道 11)。指纹学习与保存 CLI:
node scripts/device-fingerprint.js # 检测模式(默认)
node scripts/device-fingerprint.js --learn 30 # 30 秒学习阶段
node scripts/device-fingerprint.js --port 5006 --duration 120
node scripts/device-fingerprint.js --replay data/recordings/overnight-1775217646.csi.jsonl
node scripts/device-fingerprint.js --save-fingerprints fp.json
node scripts/device-fingerprint.js --load-fingerprints fp.json # 复用已存指纹
学习时长 --learn 默认 20 秒,--interval 默认 5000 ms;--save/--load-fingerprints 支持把指纹持久化到 JSON,便于多次检测复用同一批特征库。
七、五个脚本的共享基础设施
ADR-078 的"Implementation"一节强调,5 个脚本共享同一套基础设施,这在源码中逐一对得上:
| 组件 | 细节 | 源码位置 |
|---|---|---|
| 包格式 | ADR-018 二进制(UDP)或 .csi.jsonl(回放) |
两套解析共用 |
| IQ 解析 | parseIqHex()(JSONL 用)、parseCSIFrame()(二进制 UDP 用) |
rf-tomography.js L246-L293 |
| 信道分配 | 二进制帧的 freq 字段;老 JSONL 用模拟轮询 | 各脚本 CHANNEL_FREQ 映射 |
| 节点位置 | 可配置,默认节点 1 在 (0,0)、节点 2 在 (3,0) 米(脚本内以 --node-distance、房间尺寸参数表达) |
各脚本 NODE_POS |
| 可视化 | ASCII Unicode 块字符与制表符 | HEAT / RD_CHARS / 各材料字符 |
二进制帧解析逻辑从源码可确认(rf-tomography.js L265-L293):魔数 0xC5110001,20 字节头内 nodeId@4、nSubcarriers@6、freqMhz@8、rssi@16,数据区每子载波 2 字节有符号 I/Q。信道由频率换算:freqMhz ∈ [2412, 2484] → channel = round((freqMhz-2412)/5)+1(2484 MHz 特判为信道 14)。
脚本规模与核心算法(ADR-078 实现清单):
| 脚本 | 应用 | 约行数 | 核心算法 |
|---|---|---|---|
| rf-tomography.js | RF 层析成像 | ~500 | ART/反投影 |
| passive-radar.js | 无源双基地雷达 | ~500 | 距离–多普勒 + 多基地融合 |
| material-classifier.js | 材料分类 | ~450 | 频选衰减分析 |
| through-wall-detector.js | 穿墙检测 | ~400 | 基线化多信道异常检测 |
| device-fingerprint.js | 设备指纹 | ~450 | 逐信道签名相关 |
注:ADR-078 中记录路径写作
data/recordings/overnight-*.csi.jsonl,并以overnight-1775217646.csi.jsonl作为回放示例;ADR 也明确指出这些历史录制数据采集于多频扫描部署之前、缺少信道/频率字段,回放时代码会为旧数据模拟信道分配(见下文"风险")。
数据需求与两种运行模式
- Live 模式:UDP 5006 端口,2 个 ESP32 节点按 ADR-073 跳频。注意需先按 ADR-073 的 provisioning 命令配置固件跳频表:
跳频基础设施由固件提供(ADR-029 的# 节点 1(COM7):非重叠信道 1、6、11 python firmware/esp32-csi-node/provision.py --port COM7 \ --ssid "ruv.net" --password "..." --target-ip 192.168.1.20 \ --hop-channels 1,6,11 --hop-dwell-ms 250 # 节点 2(COM_):交错信道 3、5、9 python firmware/esp32-csi-node/provision.py --port COM_ \ --ssid "ruv.net" --password "..." --target-ip 192.168.1.20 \ --hop-channels 3,5,9 --hop-dwell-ms 250csi_collector_set_hop_table()等),ADR-018 帧头已含信道/频率字段,服务端解析无需改固件。 - Replay 模式:
--replay <file.csi.jsonl>,适用于离线验证与算法开发。 - 校准:穿墙检测器用
--calibrate完成 60 s(默认 30 s)无运动基线。
性能目标(ADR-078 设计指标)
| 应用 | 延迟 | 更新率 | 精度目标 |
|---|---|---|---|
| RF 层析成像 | 每帧 <100 ms | 1 Hz 图像更新 | 20 cm 空间分辨率 |
| 无源雷达 | 每帧 <200 ms | 2 Hz 距离–多普勒 | 1 m 距离、0.1 m/s 速度 |
| 材料分类 | 每窗口 <500 ms | 0.5 Hz 分类 | 70% 材料识别正确率 |
| 穿墙检测 | 每帧 <100 ms | 2 Hz 检测 | 90% 真阳性、<10% 假阳性 |
| 设备指纹 | 每窗口 <1 s | 0.2 Hz 活动更新 | 80% 设备识别正确率 |
以上为 ADR-078 提出的性能目标(非已实测结果),可作为复现实验的验收基准。
八、风险与缓解(在源码中的印证)
- 频率跨度有限:50 MHz 只有载频的 2%,材料分类精度依赖斜率在此窄带内可测。缓解:用 5–10 秒长平均窗口——对应脚本中
material-classifier.js的--window(默认 20 帧)与较长的--interval。 - 节点几何受限:2 个节点使反投影沿节点连线方向近似 1D,垂直方向分辨率差。缓解:邻居 AP 为被动雷达模式提供额外几何分集——见各脚本内置的
ILLUMINATORS位置表。 - 旧数据兼容性:
overnight-*.csi.jsonl录制于多频部署之前、无信道字段,回放时代码模拟信道分配(文档描述);完整多频数据需要带跳频重新录制。 - 相位校准:被动雷达需要跨帧精确相位跟踪,但 ESP32 CSI 每次跳频引入随机相位偏移。缓解:使用相邻帧的相位差而非绝对相位——
passive-radar.js的computeRangeDoppler()即对相位历史做差分式解缠绕回归,规避了绝对相位问题。
九、被否定的备选方案(ADR-078 记录)
- 5 GHz 多频:环境无 5 GHz AP 可见、无免费照射源,放弃。
- UWB 超宽带:ESP32-S3 不支持 UWB,需额外 DW1000/DW3000 硬件,放弃。
- 专用雷达硬件:多频 WiFi 感知可利用现有基础设施以零额外成本实现类似能力,放弃。
结语与进一步阅读
ADR-078 的价值在于把"信道跳频"这一传输层能力转化为五类可运行的感知应用。每一个应用都精确对应 scripts 目录下真实可执行的 Node.js 脚本,可先以 --replay 验证算法,再接入 ADR-073 的 UDP 5006 实时流。相关文档链条为:ADR-073 多频网格扫描 → ADR-078 多频网格感知应用;底层依赖包括 ADR-018 二进制帧格式、ADR-029 跳频基础设施与 ADR-069 Cognitum Seed 向量库集成(多频特征向量的 kNN 语义检索)。作为延伸,多频输出的跨信道时序模式还可供 ADR-074 的 SNN(snn-csi-processor.js)做跨信道时空融合。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0629
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python07
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00