Compare commits

..

38 Commits

Author SHA1 Message Date
FNS Service
eb80b7a8c1 Update from Sync Service 2026-05-14 16:28:27 +08:00
FNS Service
0f840fb3ec Update from Sync Service 2026-05-07 15:04:00 +08:00
FNS Service
c8b9d093a0 Update from Sync Service 2026-05-06 15:29:00 +08:00
FNS Service
fdfcca722d Update from Sync Service 2026-05-06 15:28:42 +08:00
FNS Service
172300fca5 Update from Sync Service 2026-05-06 15:27:44 +08:00
FNS Service
283f055e0d Update from Sync Service 2026-05-06 15:27:25 +08:00
FNS Service
f3376c7626 Update from Sync Service 2026-05-06 15:16:24 +08:00
FNS Service
dd7c240971 Update from Sync Service 2026-05-06 15:10:15 +08:00
FNS Service
7b4b30b7b7 Update from Sync Service 2026-05-06 15:09:51 +08:00
FNS Service
eb2604997f Update from Sync Service 2026-05-06 15:09:39 +08:00
FNS Service
e7a1acab4d Update from Sync Service 2026-05-06 09:47:31 +08:00
FNS Service
6882925485 Update from Sync Service 2026-05-06 09:45:51 +08:00
FNS Service
a5dfcc8256 Update from Sync Service 2026-05-06 09:24:57 +08:00
FNS Service
7c55a12597 Update from Sync Service 2026-05-06 09:23:57 +08:00
FNS Service
32e823ce27 Update from Sync Service 2026-05-06 09:11:11 +08:00
FNS Service
9a161f596c Update from Sync Service 2026-05-06 09:10:12 +08:00
FNS Service
3afb20f9fe Update from Sync Service 2026-05-06 01:25:00 +08:00
FNS Service
bcdfc6d5d4 Update from Sync Service 2026-05-05 18:22:25 +08:00
FNS Service
3ccc695d04 Update from Sync Service 2026-05-05 13:27:16 +08:00
FNS Service
12bb7b1d35 Update from Sync Service 2026-05-04 16:21:19 +08:00
FNS Service
dc0971215a Update from Sync Service 2026-05-04 14:08:40 +08:00
FNS Service
9d173f9904 Update from Sync Service 2026-05-04 12:13:19 +08:00
FNS Service
0b5db4af52 Update from Sync Service 2026-05-04 11:02:13 +08:00
FNS Service
cde4ea8720 Update from Sync Service 2026-05-04 10:39:03 +08:00
FNS Service
c7cecf7649 Update from Sync Service 2026-05-03 23:53:10 +08:00
FNS Service
f182e7fd1b Update from Sync Service 2026-05-03 22:27:42 +08:00
FNS Service
2ea68522eb Update from Sync Service 2026-05-03 08:01:29 +08:00
FNS Service
4952bc90f6 Update from Sync Service 2026-05-02 22:29:44 +08:00
FNS Service
450ffe7e4e Update from Sync Service 2026-05-02 21:48:38 +08:00
FNS Service
0bf6b5b3c4 Update from Sync Service 2026-05-02 21:31:29 +08:00
FNS Service
17f2cbffdf Update from Sync Service 2026-05-02 18:56:01 +08:00
FNS Service
51a7f6f106 Update from Sync Service 2026-05-02 18:29:37 +08:00
FNS Service
182fa225f5 Update from Sync Service 2026-05-02 16:15:18 +08:00
FNS Service
53a8593292 Update from Sync Service 2026-05-02 16:14:11 +08:00
FNS Service
eaadea18fd Update from Sync Service 2026-05-02 15:40:27 +08:00
FNS Service
12e9577c6b Update from Sync Service 2026-05-02 15:17:30 +08:00
FNS Service
6c08093c42 Update from Sync Service 2026-05-02 15:16:09 +08:00
FNS Service
67f9327e4e Update from Sync Service 2026-05-02 13:08:51 +08:00
29 changed files with 4785 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
---
title: "Introducing 3D Gaussian Splats with Hierarchical Level of Detail Using 3D Tiles"
source: "https://cesium.com/blog/2026/04/27/3d-gaussian-splats-lod/"
author:
- "[[Shehzan Mohammed]]"
published: 2026-04-27
created: 2026-05-11
description: "3D Gaussian splats are now available in the Cesium and 3D Tiles ecosystems, including CesiumJS, Cesium for Unreal, and Cesium ion."
tags:
- "clippings"
---
3D Gaussian splats are now available in the Cesium and 3D Tiles ecosystems, including CesiumJS, Cesium for Unreal, and Cesium ion. This integration enables developers to stream and visualize high-fidelity, photorealistic 3D content that captures the real world with unprecedented detail. By leveraging 3D Tiles as a spatial index and glTF as the payload, massive 3D Gaussian splat datasets can now be streamed with level of detail (LOD), ensuring high performance from city-scale environments down to sub-centimeter details.
3D Gaussian splatting is an efficient radiance field reconstruction method that converts 2D images into a sparse cloud of volumetric 3D Gaussians. Unlike traditional photogrammetry, which often struggles to represent thin or complex structures, 3D Gaussian splats excel at preserving visual fidelity for cables, power lines, vegetation, and reflective surfaces by creating a point cloud of soft, rounded shapes of the subject, with each point defined by properties including position, orientation, color, and opacity. This technique uses spherical harmonics to support view-dependent lighting, allowing for realistic specular reflections and anisotropy that traditional reality meshes cannot easily replicate.
<iframe src="https://player.vimeo.com/video/1186727561?app_id=122963" width="426" height="240" frameborder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" title="3D Gaussian Splats with Hierarchical Level of Detail Using 3D Tiles"></iframe>
3D Gaussian splatting provides significant advantages for industries requiring high-fidelity reality capture and photorealistic digital twins, including infrastructure monitoring, telecom tower maintenance, and electrical utility and substation inspections—plus the built environment, such as in real estate, where traditional mesh and point cloud methods often have limits. Beyond industrial applications, we see 3D Gaussian splats being adopted in media and entertainment to capture challenging visual details like reflections, semitransparent materials, and fire. 3D Gaussian splats are expected to play a key role in long-term asset monitoring and situational awareness, enabling users to track changes in the natural and built environment over the entire life cycle.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelNBsBOoF08xOq4_3DGS_UE_Crane.jpg?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=4000)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This crane is depicted with Cesium for Unreal.
![3D Gaussian splat of a crane.](https://images.prismic.io/cesium/aelNnMBOoF08xOq8_Portable_crane.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2549)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelOUMBOoF08xOq__Partially_destroyed_msft_building1.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2552)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelOTcBOoF08xOq-_Partially_destroyed_msft_building2.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2547)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelOusBOoF08xOrH_Power_Station_LODs_latest.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2548)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelOt8BOoF08xOrG_Cell_Tower_LODs_latest.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2547)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
## Standardizing 3D Gaussian splats in glTF with SPZ compression
To ensure 3D Gaussian splats are interoperable across platforms, we have collaborated with Khronos, Open Geospatial Consortium (OGC), Esri, and Niantic Spatial to integrate this new graphics primitive into the glTF 3D asset standard. This effort centers on two new extensions: [KHR\_gaussian\_splatting](https://github.com/KhronosGroup/glTF/tree/4ecfc3bd8c439a1c3feab04218212e6b9b222253/extensions/2.0/Khronos/KHR_gaussian_splatting) and [KHR\_gaussian\_splatting\_compression\_spz](https://github.com/KhronosGroup/glTF/pull/2531). The base glTF extension defines how splats are stored as point primitives, which allows for a graceful fallback to sparse point clouds in renderers that do not yet support rendering 3D Gaussian splats.
A major challenge for 3D Gaussian splats has been their massive file size, which can hinder efficient streaming. To solve this, we adopted the SPZ compression format, an open source solution provided by Niantic Spatial. SPZ uses advanced quantization techniques and gzip to compress splat data by up to 90% compared to standard PLY files while maintaining visual fidelity. This format is particularly effective at handling spherical harmonic data for specular lighting. Furthermore, the recent SPZ 2.0.0 release introduced improved rotational accuracy for linear geospatial features—such as antennas and power lines—by encoding rotations as normalized quaternions.
3D Gaussian splats will be added to 3D Tiles as part of the proposed 3D Tiles 2.0 OGC community standard.
## Creating 3D Gaussian splats using Cesium ion
With the integration of iTwin Capture technology into Cesium ion, the platform provides an end-to-end pipeline for reality modeling, including the creation of 3D Gaussian splats with LOD. Users can upload source photos directly to Cesium ion, which will automatically reconstruct a 3D Tileset as a mesh, point cloud, or 3D Gaussian splats.
To accommodate different development needs, these workflows are accessible through both the Cesium ion web interface and via REST APIs, enabling everything from manual one-off uploads to fully automated, high-scale production pipelines. Once tiled, these splats are georeferenced, allowing them to be instantly combined with global datasets like Cesium World Terrain or Google Photorealistic 3D Tiles for full geospatial context.
![3D Gaussian splatting tileset of Microsoft Redmond Campus, as viewed in CesiumJS. Captured in partnership with Bentley Systems. This tileset uses 20,169 photos (427.7 gigapixels, DJI FC6310 camera) and covers an area of about 3.7 sq km, with mean ground sampling distance 3 cm. The reconstruction is 110 million splats.](https://images.prismic.io/cesium/aelPlMBOoF08xOrQ_Parially_finished_and_construction_zone_4.png?auto=compress%2Cformat&w=2555)
3D Gaussian splat tileset of Microsoft Redmond Campus, as viewed in CesiumJS. Captured in partnership with Bentley Systems. This tileset uses 20,169 photos (427.7 gigapixels, DJI FC6310 camera) and covers an area of about 3.7 sq km, with mean ground sampling distance 3 cm. The reconstruction is 110 million splats.
## Streaming to CesiumJS, Cesium for Unreal, and more
CesiumJS now supports 3D Gaussian splat tilesets. The implementation uses specialized shaders for volumetric rendering and high-performance sorting using WebAssembly for increased performance. Developers using [CesiumJS](https://cesium.com/platform/cesiumjs/) can build high-fidelity digital twin applications leveraging 3D Gaussian splat tilesets in conjunction with previously supported data types.
For developers building immersive experiences with game engines, [Cesium for Unreal](https://cesium.com/platform/cesium-for-unreal/) now supports 3D Gaussian splat tilesets, as well. This enables the integration of massive 3D Gaussian splat dataset rendering into the Unreal Engine ecosystem with the ability to stream 3D Gaussian splats with LOD directly from Cesium ion. In addition to Cesium for Unreal, we plan to add support to Cesium for Unity and other runtime engines based on community feedback. By standardizing splat delivery through 3D Tiles and glTF extensions, were ensuring that these assets remain interoperable across platforms as the field of neural rendering evolves.
## Getting started with 3D Gaussian splats
Upload your own photos to Cesium ion by [signing up for a free community account](https://ion.cesium.com/signup). You can try out live examples in the Cesium Sandcastle or start building your own reality models today.

View File

@@ -0,0 +1,70 @@
---
title: "Introducing 3D Gaussian Splats with Hierarchical Level of Detail Using 3D Tiles"
source: "https://cesium.com/blog/2026/04/27/3d-gaussian-splats-lod/"
author:
- "[[Shehzan Mohammed]]"
published: 2026-04-27
created: 2026-05-11
description: "3D Gaussian splats are now available in the Cesium and 3D Tiles ecosystems, including CesiumJS, Cesium for Unreal, and Cesium ion."
tags:
- "clippings"
---
3D Gaussian splats are now available in the Cesium and 3D Tiles ecosystems, including CesiumJS, Cesium for Unreal, and Cesium ion. This integration enables developers to stream and visualize high-fidelity, photorealistic 3D content that captures the real world with unprecedented detail. By leveraging 3D Tiles as a spatial index and glTF as the payload, massive 3D Gaussian splat datasets can now be streamed with level of detail (LOD), ensuring high performance from city-scale environments down to sub-centimeter details.
3D Gaussian splatting is an efficient radiance field reconstruction method that converts 2D images into a sparse cloud of volumetric 3D Gaussians. Unlike traditional photogrammetry, which often struggles to represent thin or complex structures, 3D Gaussian splats excel at preserving visual fidelity for cables, power lines, vegetation, and reflective surfaces by creating a point cloud of soft, rounded shapes of the subject, with each point defined by properties including position, orientation, color, and opacity. This technique uses spherical harmonics to support view-dependent lighting, allowing for realistic specular reflections and anisotropy that traditional reality meshes cannot easily replicate.
<iframe src="https://player.vimeo.com/video/1186727561?app_id=122963" width="426" height="240" frameborder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share" title="3D Gaussian Splats with Hierarchical Level of Detail Using 3D Tiles"></iframe>
3D Gaussian splatting provides significant advantages for industries requiring high-fidelity reality capture and photorealistic digital twins, including infrastructure monitoring, telecom tower maintenance, and electrical utility and substation inspections—plus the built environment, such as in real estate, where traditional mesh and point cloud methods often have limits. Beyond industrial applications, we see 3D Gaussian splats being adopted in media and entertainment to capture challenging visual details like reflections, semitransparent materials, and fire. 3D Gaussian splats are expected to play a key role in long-term asset monitoring and situational awareness, enabling users to track changes in the natural and built environment over the entire life cycle.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelNBsBOoF08xOq4_3DGS_UE_Crane.jpg?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=4000)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This crane is depicted with Cesium for Unreal.
![3D Gaussian splat of a crane.](https://images.prismic.io/cesium/aelNnMBOoF08xOq8_Portable_crane.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2549)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelOUMBOoF08xOq__Partially_destroyed_msft_building1.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2552)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelOTcBOoF08xOq-_Partially_destroyed_msft_building2.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2547)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelOusBOoF08xOrH_Power_Station_LODs_latest.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2548)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
![3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers.](https://images.prismic.io/cesium/aelOt8BOoF08xOrG_Cell_Tower_LODs_latest.png?auto=compress%2Cformat&fit=crop&ar=16%3A9&crop=faces%2Ccenter&w=2547)
3D Gaussian splats enable high-fidelity accurate visualizations of thin-and-long assets like cranes, building materials, power stations, and cell towers. This scene is depicted in CesiumJS.
## Standardizing 3D Gaussian splats in glTF with SPZ compression
To ensure 3D Gaussian splats are interoperable across platforms, we have collaborated with Khronos, Open Geospatial Consortium (OGC), Esri, and Niantic Spatial to integrate this new graphics primitive into the glTF 3D asset standard. This effort centers on two new extensions: [KHR\_gaussian\_splatting](https://github.com/KhronosGroup/glTF/tree/4ecfc3bd8c439a1c3feab04218212e6b9b222253/extensions/2.0/Khronos/KHR_gaussian_splatting) and [KHR\_gaussian\_splatting\_compression\_spz](https://github.com/KhronosGroup/glTF/pull/2531). The base glTF extension defines how splats are stored as point primitives, which allows for a graceful fallback to sparse point clouds in renderers that do not yet support rendering 3D Gaussian splats.
A major challenge for 3D Gaussian splats has been their massive file size, which can hinder efficient streaming. To solve this, we adopted the SPZ compression format, an open source solution provided by Niantic Spatial. SPZ uses advanced quantization techniques and gzip to compress splat data by up to 90% compared to standard PLY files while maintaining visual fidelity. This format is particularly effective at handling spherical harmonic data for specular lighting. Furthermore, the recent SPZ 2.0.0 release introduced improved rotational accuracy for linear geospatial features—such as antennas and power lines—by encoding rotations as normalized quaternions.
3D Gaussian splats will be added to 3D Tiles as part of the proposed 3D Tiles 2.0 OGC community standard.
## Creating 3D Gaussian splats using Cesium ion
With the integration of iTwin Capture technology into Cesium ion, the platform provides an end-to-end pipeline for reality modeling, including the creation of 3D Gaussian splats with LOD. Users can upload source photos directly to Cesium ion, which will automatically reconstruct a 3D Tileset as a mesh, point cloud, or 3D Gaussian splats.
To accommodate different development needs, these workflows are accessible through both the Cesium ion web interface and via REST APIs, enabling everything from manual one-off uploads to fully automated, high-scale production pipelines. Once tiled, these splats are georeferenced, allowing them to be instantly combined with global datasets like Cesium World Terrain or Google Photorealistic 3D Tiles for full geospatial context.
![3D Gaussian splatting tileset of Microsoft Redmond Campus, as viewed in CesiumJS. Captured in partnership with Bentley Systems. This tileset uses 20,169 photos (427.7 gigapixels, DJI FC6310 camera) and covers an area of about 3.7 sq km, with mean ground sampling distance 3 cm. The reconstruction is 110 million splats.](https://images.prismic.io/cesium/aelPlMBOoF08xOrQ_Parially_finished_and_construction_zone_4.png?auto=compress%2Cformat&w=2555)
3D Gaussian splat tileset of Microsoft Redmond Campus, as viewed in CesiumJS. Captured in partnership with Bentley Systems. This tileset uses 20,169 photos (427.7 gigapixels, DJI FC6310 camera) and covers an area of about 3.7 sq km, with mean ground sampling distance 3 cm. The reconstruction is 110 million splats.
## Streaming to CesiumJS, Cesium for Unreal, and more
CesiumJS now supports 3D Gaussian splat tilesets. The implementation uses specialized shaders for volumetric rendering and high-performance sorting using WebAssembly for increased performance. Developers using [CesiumJS](https://cesium.com/platform/cesiumjs/) can build high-fidelity digital twin applications leveraging 3D Gaussian splat tilesets in conjunction with previously supported data types.
For developers building immersive experiences with game engines, [Cesium for Unreal](https://cesium.com/platform/cesium-for-unreal/) now supports 3D Gaussian splat tilesets, as well. This enables the integration of massive 3D Gaussian splat dataset rendering into the Unreal Engine ecosystem with the ability to stream 3D Gaussian splats with LOD directly from Cesium ion. In addition to Cesium for Unreal, we plan to add support to Cesium for Unity and other runtime engines based on community feedback. By standardizing splat delivery through 3D Tiles and glTF extensions, were ensuring that these assets remain interoperable across platforms as the field of neural rendering evolves.
## Getting started with 3D Gaussian splats
Upload your own photos to Cesium ion by [signing up for a free community account](https://ion.cesium.com/signup). You can try out live examples in the Cesium Sandcastle or start building your own reality models today.

View File

@@ -0,0 +1,97 @@
# AI Agent 浏览器与数据采集工具调研
> 来源: https://mp.weixin.qq.com/s/opVr-6roUTCD5BSBcx4Zag
> 研究日期: 2026-05-05
## 文章概要
独立开发者 @GoSailGlobal 调研了市面上 18 款主流 AI Agent 浏览器和数据采集工具,按功能与技术路线分为**五大派系**。
## 五大派系分类
| 派系 | 定位 | 代表工具 |
|------|------|----------|
| **王者派** | 高星标、成熟稳定 | browser-use, MediaCrawler, Scrapling, playwright-mcp |
| **Rust 主权派** | 速度 + 本地控制 | agent-browser, obscura, AutoCLI |
| **MCP 协议派** | IDE 深度集成 | mcp-chrome, browser-tools-mcp, firecrawl-mcp |
| **CLI Hub 派** | 网站转 CLI复用登录态 | OpenCLI, AutoCLI, feedgrab |
| **极简备胎** | 零安装、临时使用 | r.jina.ai |
## 核心选型建议
| 场景 | 推荐工具 |
|------|----------|
| 临时抓取单 URL 转 Markdown | r.jina.ai |
| 完整自动化任务 | browser-use |
| 复用 Chrome 已登录状态 | mcp-chrome / AutoCLI |
| 国内社媒爬取 | MediaCrawler + feedgrab |
| 多平台社媒采集 | agent-reach + MediaCrawler + feedgrab |
| IDE 内嵌 | playwright-mcp |
| 追求极致速度 | agent-browserRust |
## 重点工具详解
### 王者派(高成熟度首选)
| 工具 | 说明 |
|------|------|
| **browser-use** | AI Agent 浏览器自动化框架,支持多种 LLM处理表单/购物/研究 |
| **MediaCrawler** | 国内自媒体爬虫之王,支持小红书/抖音/快手/B站/微博/知乎 |
| **Scrapling** | 自适应网页抓取擅长反反爬Cloudflare 等) |
| **playwright-mcp** | Microsoft 出品MCP 协议浏览器自动化,适合 IDE 内 Agent |
| **agent-reach** | 多平台采集器Twitter/Reddit/YouTube/GitHub/B 站/小红书CLI 驱动 |
| **OpenCLI** | 将网站/工具转为 CLI复用登录态近期关注暴涨 |
### Rust 主权派(速度与控制优先)
| 工具 | 说明 |
|------|------|
| **agent-browser** | Vercel 出品Rust 实现,高效 headless browser |
| **obscura** | 专为 AI 设计的 Rust headless 浏览器 |
| **AutoCLI** | 复用 Chrome 登录态,支持 55+ 站点,单文件二进制 |
### MCP 协议派IDE 深度集成)
| 工具 | 说明 |
|------|------|
| **mcp-chrome** | 10.7K ⭐,直接操作已登录的 Chrome |
| **browser-tools-mcp** | 7.1K ⭐,看 console |
| **firecrawl-mcp** | 6.2K ⭐,来自 firecrawl 官方 |
| **dev-browser** | 6K ⭐Claude Skill |
| **browserbase/skills** | 2K ⭐,带网页浏览工具的 Claude Agent SDK |
### CLI Hub + 极简备胎
| 工具 | 说明 |
|------|------|
| **OpenCLI** | 18.7K ⭐,关注数暴涨 |
| **AutoCLI** | 2.5K ⭐,速度极快,内存安全 |
| **feedgrab** | 337 ⭐,中文友好,多平台内容抓取 |
| **jina** | r.jina.ai/URL零安装转 Markdown |
## 工具优点共性
- ✅ 大多开源免费
- ✅ 支持登录态复用,绕过部分反爬
- ✅ 转向 Markdown/结构化输出,适合 LLM 处理
- ✅ MCP/CLI 趋势明显,提升 Agent 集成度
## 潜在挑战
- ⚠️ 反爬与合规风险
- ⚠️ 网站 UI 频繁变化,需定期维护
- ⚠️ 本地运行需处理代理/环境问题
- ⚠️ 复杂任务可能需付费云浏览器
## 选型框架
1. **明确需求**:临时阅读 → r.jina.ai国内社媒 → MediaCrawler复杂交互 → browser-use
2. **优先本地/开源**:控制成本与隐私
3. **组合使用**agent-reach 多平台采集 + browser-use 自动化 + r.jina.ai 后备
## 与我们的关联
- **OpenClaw 浏览器工具**:已有 playwright 集成,可考虑引入 MCP 协议支持
- **MediaCrawler**:可用于社交媒体数据采集(需合规)
- **r.jina.ai**:可作为网页内容提取的备用方案
- **AutoCLI/OpenCLI**:适合 CLI 驱动的数据采集工作流

View File

@@ -0,0 +1,266 @@
---
created: 2026-05-04
type: guide
tags: [Claude Code, Obsidian, 数据导出, 对话存档, SQLite]
---
# Claude Code 对话导出到 Obsidian 完整方案
> 将所有 Claude Code 对话会话存档到 Obsidian 知识库
> 归档时间2026-05-04
---
## 📌 原理
Claude Code 的对话数据存储在本地 SQLite 数据库中:
**数据库路径**
- macOS/Linux`~/.claude/CLAUDE.md` 同级目录下的 `~/.claude/conversations.db`
- 实际数据库文件:`~/.claude/*.db``~/.claude/PROJECT_ID/*.db`
**数据库结构**(典型):
- `conversations`会话元数据ID、标题、创建时间等
- `messages` 表:对话消息(角色、内容、时间戳)
- `attachments` 表:附件/文件引用
---
## 🔧 方案一Python 脚本导出(推荐)
### 1. 导出脚本
```python
#!/usr/bin/env python3
"""
claude_to_obsidian.py
将 Claude Code 所有对话导出为 Obsidian Markdown 笔记
"""
import sqlite3
import os
import json
from datetime import datetime
from pathlib import Path
# 配置
CLAUDE_DB_PATH = os.path.expanduser("~/.claude/conversations.db")
OBSIDIAN_PATH = "/obsidian/ClaudeCode对话/" # 你的 Obsidian vault 路径
def export_all():
if not os.path.exists(CLAUDE_DB_PATH):
print(f"❌ 数据库不存在: {CLAUDE_DB_PATH}")
print("请确认 Claude Code 已安装并运行过")
return
os.makedirs(OBSIDIAN_PATH, exist_ok=True)
conn = sqlite3.connect(CLAUDE_DB_PATH)
conn.row_factory = sqlite3.Row
cursor = conn.cursor()
# 获取所有会话
cursor.execute("""
SELECT c.id, c.title, c.created_at, c.updated_at,
COUNT(m.id) as msg_count
FROM conversations c
LEFT JOIN messages m ON c.id = m.conversation_id
GROUP BY c.id
ORDER BY c.updated_at DESC
""")
conversations = cursor.fetchall()
print(f"📊 找到 {len(conversations)} 个会话")
exported = 0
for conv in conversations:
title = conv['title'] or f"untitled-{conv['id'][:8]}"
# 文件名安全处理
safe_title = "".join(c for c in title if c not in r'\/:*?"<>|')
safe_title = safe_title[:80] # 限制长度
filename = f"{safe_title}.md"
filepath = os.path.join(OBSIDIAN_PATH, filename)
# 获取该会话的所有消息
cursor.execute("""
SELECT role, content, created_at
FROM messages
WHERE conversation_id = ?
ORDER BY created_at ASC
""", (conv['id'],))
messages = cursor.fetchall()
# 生成 Markdown
md = generate_markdown(conv, messages)
with open(filepath, 'w', encoding='utf-8') as f:
f.write(md)
exported += 1
print(f"{title} ({len(messages)} 条消息)")
print(f"\n🎉 完成!导出 {exported} 个会话到 {OBSIDIAN_PATH}")
conn.close()
def generate_markdown(conv, messages):
created = datetime.fromtimestamp(conv['created_at']).strftime('%Y-%m-%d %H:%M:%S') if conv['created_at'] else 'unknown'
updated = datetime.fromtimestamp(conv['updated_at']).strftime('%Y-%m-%d %H:%M:%S') if conv['updated_at'] else 'unknown'
md = f"""---
created: {created}
updated: {updated}
tags: [claude-code, 对话]
conversation_id: {conv['id']}
message_count: {len(messages)}
---
# {conv['title'] or 'Untitled'}
> 创建时间:{created}
> 更新时间:{updated}
---
## 对话记录
"""
for msg in messages:
role = msg['role'] # 'user' or 'assistant'
content = msg['content'] or ''
ts = datetime.fromtimestamp(msg['created_at']).strftime('%H:%M:%S') if msg['created_at'] else ''
if role == 'user':
md += f"\n### 👤 用户 `{ts}`\n\n"
else:
md += f"\n### 🤖 Claude `{ts}`\n\n"
# 处理内容(可能是 JSON 字符串)
md += sanitize_content(content)
md += "\n\n---\n"
return md
def sanitize_content(content):
"""清理内容,移除可能的工具调用元数据"""
try:
# 尝试解析 JSON
data = json.loads(content)
if isinstance(data, dict):
# 提取文本内容
if 'content' in data:
return data['content']
if 'text' in data:
return data['text']
return json.dumps(data, indent=2, ensure_ascii=False)
except (json.JSONDecodeError, TypeError):
pass
return str(content)
if __name__ == "__main__":
export_all()
```
### 2. 使用
```bash
# 安装依赖(通常不需要)
pip install sqlite3 # Python 内置
# 运行导出
python3 claude_to_obsidian.py
```
---
## 🔧 方案二:直接查看数据库结构
```bash
# 查看数据库表
sqlite3 ~/.claude/conversations.db ".tables"
# 查看表结构
sqlite3 ~/.claude/conversations.db ".schema conversations"
sqlite3 ~/.claude/conversations.db ".schema messages"
# 查看会话数量
sqlite3 ~/.claude/conversations.db "SELECT COUNT(*) FROM conversations;"
# 导出单个会话为 JSON
sqlite3 -json ~/.claude/conversations.db \
"SELECT m.* FROM messages m JOIN conversations c ON m.conversation_id = c.id WHERE c.title LIKE '%关键词%';"
```
---
## 🔧 方案三:按项目/目录组织
Claude Code 为每个项目创建独立的数据库:
```bash
# 查找所有项目数据库
find ~/.claude -name "*.db" -type f
# 输出示例:
# ~/.claude/projects/project-uuid-1/conversations.db
# ~/.claude/projects/project-uuid-2/conversations.db
```
**按项目导出脚本**
```python
import os
import glob
def export_by_project():
db_files = glob.glob(os.path.expanduser("~/.claude/**/conversations.db"), recursive=True)
for db_path in db_files:
# 从路径提取项目名
project_name = db_path.split(os.sep)[-2] # 倒数第二级是项目 UUID
project_dir = os.path.join(OBSIDIAN_PATH, project_name)
os.makedirs(project_dir, exist_ok=True)
print(f"📁 处理项目: {project_name}")
# ... 使用上面的导出逻辑
```
---
## 📂 Obsidian 目录结构建议
```
/obsidian/ClaudeCode对话/
├── _templates/
│ └── Claude对话模板.md # Obsidian 模板
├── 2026-05-04/
│ ├── 修复API鉴权Bug.md
│ ├── 编写单元测试.md
│ └── 重构数据库模块.md
└── INDEX.md # 索引笔记(按日期/项目分类)
```
---
## ⚠️ 注意事项
1. **隐私安全**对话可能包含敏感信息API Key、代码等导出后注意权限控制
2. **大文件**长对话可能生成大文件Obsidian 打开会慢
3. **编码问题**:确保以 UTF-8 编码写入
4. **增量导出**:记录上次导出的时间戳,只导出新对话
5. **工具调用**Claude Code 的工具调用文件读写、Shell 执行)元数据可能需要特殊处理
---
## 🔄 自动同步方案
```bash
# 加入 cron每天凌晨自动导出
0 2 * * * cd /path/to/scripts && python3 claude_to_obsidian.py >> /tmp/claude_export.log 2>&1
```
---
*研究归档2026-05-04 | Claude Code 对话导出到 Obsidian 完整指南*

View File

@@ -0,0 +1,465 @@
---
created: 2026-05-04
type: workflow
tags: [Claude Code, Git, Obsidian, 开发流程, 存档, 自动化]
---
# Claude Code 开发全流程存档方案
> 每步提交 Git + 全程存档 Obsidian打造可追溯的 AI 开发工作流
> 归档时间2026-05-04
---
## 📌 目标
1. Claude Code **每完成一个开发步骤**,自动提交 Git
2. 整个开发过程(对话 + 代码变更 + 决策)**实时存档到 Obsidian**
3. 形成**可回溯、可搜索、可复盘**的 AI 开发知识库
---
## 🏗️ 整体架构
```
Claude Code (开发)
├── 1. 每步完成后 → git commit (自动)
│ │
│ └── commit message 包含步骤描述
├── 2. 对话记录 → 导出 Markdown → Obsidian (自动)
│ │
│ └── 按项目/日期归档
├── 3. 代码变更 → git diff → 存档笔记 (自动)
│ │
│ └── 记录"改了什么 + 为什么改"
└── 4. 开发日志 → 每日汇总笔记 → Obsidian (自动)
└── 包含决策、踩坑、复盘
```
---
## 🔧 工具清单
| 工具 | 用途 | 必选 |
|------|------|------|
| **Git** | 代码版本控制 | ✅ |
| **Claude Code** | AI 编码助手 | ✅ |
| **Obsidian** | 知识库管理 | ✅ |
| **obsobsidian-headless CLI** | 命令行写 Obsidian 笔记 | ✅ |
| **pre-commit** | Git 钩子,自动触发存档 | ⚠️ 可选 |
| **git-changelog** | 生成变更日志 | ⚠️ 可选 |
| **Claude Code 的 `--output-format json`** | 结构化对话输出 | ✅ |
---
## 📋 实施方案
### 方案一Claude Code + Git 自动提交(推荐)
#### 1. Claude Code 配置
在项目的 `CLAUDE.md` 中写入指令:
```markdown
# CLAUDE.md - 项目级 Claude Code 指令
## 开发流程要求
每次完成代码修改后,必须执行以下操作:
1. **git add + commit**
```bash
git add -A
git commit -m "[AI-Step] {简短描述}"
```
2. **记录开发日志**
- 用 `obs` 命令写入 Obsidian 开发日志
- 格式:`obs obs今天日记 {内容}`
3. **commit message 规范**
- `[AI-Step]` - 普通开发步骤
- `[AI-Fix]` - Bug 修复
- `[AI-Feature]` - 新功能
- `[AI-Refactor]` - 重构
- `[AI-Test]` - 测试相关
## 示例
用户:帮我修复这个登录 Bug
Claude
1. 分析问题...
2. 修改 auth.js...
3. git add -A && git commit -m "[AI-Fix] 修复登录 token 过期问题"
4. 记录到开发日志...
```
#### 2. Git Hook 自动存档
在项目 `.git/hooks/post-commit` 中添加:
```bash
#!/bin/bash
# post-commit 钩子:每次 commit 后自动存档到 Obsidian
COMMIT_MSG=$(git log -1 --pretty=%B)
COMMIT_HASH=$(git log -1 --pretty=%h)
COMMIT_DATE=$(git log -1 --pretty=%ci)
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r HEAD)
# 获取变更统计
STATS=$(git diff --stat HEAD~1 HEAD 2>/dev/null || echo "Initial commit")
# 写入 Obsidian 开发日志
TODAY=$(date +%Y-%m-%d)
LOG_DIR="/obsidian/开发日志/${TODAY}"
mkdir -p "$LOG_DIR"
# 追加到今日开发日志
cat >> "$LOG_DIR/开发日志.md" << EOF
### $(date +%H:%M) - ${COMMIT_MSG}
- **Commit**: \`${COMMIT_HASH}\`
- **时间**: ${COMMIT_DATE}
- **变更文件**:
$(echo "$CHANGED_FILES" | sed 's/^/ - /')
- **变更统计**:
\`\`\`
${STATS}
\`\`\`
---
EOF
echo "✅ 已存档到 Obsidian: $LOG_DIR/开发日志.md"
```
#### 3. 启用 Git Hook
```bash
cd /path/to/your/project
chmod +x .git/hooks/post-commit
```
---
### 方案二:完整对话导出 + 存档
#### 1. Claude Code 对话导出
```bash
# 方式 A使用 Claude Code 内置导出
claude export --output json > /tmp/claude-session.json
# 方式 B直接从数据库导出
python3 << 'PYEOF'
import sqlite3
import json
import os
from datetime import datetime
DB_PATH = os.path.expanduser("~/.claude/conversations.db")
OBSIDIAN_PATH = "/obsidian/ClaudeCode开发日志/"
conn = sqlite3.connect(DB_PATH)
conn.row_factory = sqlite3.Row
# 获取最新会话
cursor = conn.cursor()
cursor.execute("""
SELECT * FROM conversations ORDER BY updated_at DESC LIMIT 1
""")
conv = cursor.fetchone()
# 获取消息
cursor.execute("""
SELECT * FROM messages WHERE conversation_id = ? ORDER BY created_at ASC
""", (conv['id'],))
messages = cursor.fetchall()
# 生成 Markdown
today = datetime.now().strftime('%Y-%m-%d')
filename = f"{today}-{conv['title'] or 'session'}.md"
filepath = os.path.join(OBSIDIAN_PATH, filename)
os.makedirs(OBSIDIAN_PATH, exist_ok=True)
with open(filepath, 'w', encoding='utf-8') as f:
f.write(f"# {conv['title']}\n\n")
f.write(f"> 日期:{today}\n\n")
f.write("---\n\n")
for msg in messages:
role = "🤖 Claude" if msg['role'] == 'assistant' else "👤 我"
f.write(f"### {role}\n\n")
f.write(f"{msg['content']}\n\n")
f.write("---\n\n")
print(f"✅ 已导出: {filepath}")
conn.close()
PYEOF
```
#### 2. 用 obs 命令直接写入
```bash
# 每次开发步骤完成后
obs obs今天日记 "完成了用户模块开发git commit: [AI-Feature] 添加用户注册接口"
# 或者创建专题笔记
obs obs创建笔记 "用户模块开发记录" "
## 用户需求
- 支持手机号注册
- 支持邮箱验证
- 密码加密存储
## 实现过程
1. 设计数据库 schema
2. 编写 API 接口
3. 添加单元测试
4. 修复 CORS 问题
## 关键决策
- 选择 bcrypt 而非 md5 加密
- 使用 JWT 而非 session
## 踩坑
- Redis 连接池未关闭导致内存泄漏
- CORS 配置遗漏
"
```
---
### 方案三Obsidian 插件配合
#### 必装插件
| 插件 | 作用 |
|------|------|
| **Templater** | 自动填充开发日志模板 |
| **Dataview** | 按标签/日期查询开发记录 |
| **Git** | Obsidian vault 自动同步 Git |
| **Calendar** | 日历视图查看每日开发记录 |
| **QuickAdd** | 快速创建开发笔记 |
#### Templater 模板:开发日志
```markdown
<%*
const today = tp.date.now("YYYY-MM-DD");
const project = await tp.system.prompt("项目名称");
const task = await tp.system.prompt("本次任务");
%>
# 开发日志 - <%= today %>
## 项目:<%= project %>
### 任务:<%= task %>
**开始时间**<% tp.date.now("HH:mm") %>
**结束时间**
---
## 开发过程
### 步骤 1
**Git Commit**`[AI-Step] `
**变更内容**
**遇到问题**
**解决方案**
---
## 复盘总结
### 做得好的:
### 需要改进的:
### 下次注意:
---
## Git 变更记录
```bash
git log --oneline --since="<%= today %> 00:00" --until="<%= today %> 23:59"
```
---
*<% tp.date.now("YYYY-MM-DD HH:mm:ss") %> 记录*
```
#### Dataview 查询:按项目查看开发记录
```dataview
TABLE 项目, 任务, file.ctime as "创建时间"
FROM "开发日志"
WHERE 项目 != null
SORT file.ctime DESC
```
---
## 🔄 完整工作流示例
```
用户:帮我开发一个用户管理模块
Claude Code
1. 分析需求,创建文件
2. git add -A && git commit -m "[AI-Step] 初始化用户模块"
post-commit 钩子触发:
→ 写入 Obsidian 开发日志
→ 记录变更文件列表
Claude Code
3. 编写 API 接口
4. git add -A && git commit -m "[AI-Feature] 添加用户注册/登录 API"
post-commit 钩子触发:
→ 追加到 Obsidian 开发日志
→ 记录 diff 统计
... 循环直到完成
最终Obsidian 中有完整的开发过程记录
Git 中有每步的代码变更
```
---
## 📂 Obsidian 目录结构
```
/obsidian/开发日志/
├── 2026-05-04/
│ ├── 开发日志.md # 当日汇总
│ ├── 用户模块开发记录.md # 专题笔记
│ └── 数据库设计记录.md
├── 2026-05-05/
│ └── ...
└── _templates/
└── 开发日志模板.md
/obsidian/ClaudeCode对话/
├── 2026-05-04-用户模块开发.md
├── 2026-05-04-Bug修复记录.md
└── ...
```
---
## ⚡ 一键初始化脚本
```bash
#!/bin/bash
# setup-dev-workflow.sh - 一键配置开发存档工作流
PROJECT_DIR=$1
if [ -z "$PROJECT_DIR" ]; then
echo "用法: ./setup-dev-workflow.sh /path/to/project"
exit 1
fi
cd "$PROJECT_DIR"
# 1. 创建 CLAUDE.md
cat > CLAUDE.md << 'EOF'
# 开发流程要求
- 每完成一个步骤,执行 git add -A && git commit -m "[AI-Step] 描述"
- 用 obs 命令记录开发日志
- commit 前缀:[AI-Step] [AI-Fix] [AI-Feature] [AI-Refactor] [AI-Test]
EOF
# 2. 创建 Git Hook
mkdir -p .git/hooks
cat > .git/hooks/post-commit << 'HOOK'
#!/bin/bash
COMMIT_MSG=$(git log -1 --pretty=%B)
COMMIT_HASH=$(git log -1 --pretty=%h)
CHANGED=$(git diff-tree --no-commit-id --name-only -r HEAD)
TODAY=$(date +%Y-%m-%d)
LOG="/obsidian/开发日志/${TODAY}"
mkdir -p "$LOG"
echo "### $(date +%H:%M) | \`${COMMIT_HASH}\` | ${COMMIT_MSG}" >> "$LOG/开发日志.md"
echo " 文件: $(echo $CHANGED | tr '\n' ', ')" >> "$LOG/开发日志.md"
echo "---" >> "$LOG/开发日志.md"
HOOK
chmod +x .git/hooks/post-commit
# 3. 创建 Obsidian 目录
mkdir -p /obsidian/开发日志/_templates
mkdir -p /obsidian/ClaudeCode对话
echo "✅ 开发存档工作流已配置!"
echo " - CLAUDE.md: $PROJECT_DIR/CLAUDE.md"
echo " - Git Hook: $PROJECT_DIR/.git/hooks/post-commit"
echo " - Obsidian: /obsidian/开发日志/"
```
---
## 💡 进阶技巧
### 1. 生成开发报告
```bash
# 查看某天所有 commit
git log --oneline --since="2026-05-04" --until="2026-05-05"
# 统计代码变更量
git log --since="2026-05-04" --pretty=format: --stat | tail -1
# 生成变更日志
git log --oneline --graph --all > /obsidian/开发日志/变更日志.md
```
### 2. 自动关联 Git 与 Obsidian
在 Obsidian 笔记中嵌入 Git commit
```markdown
## 代码变更
- `[commit:abc1234](https://github.com/user/repo/commit/abc1234)` - 修复登录问题
- `[commit:def5678](https://github.com/user/repo/commit/def5678)` - 添加单元测试
```
### 3. 复盘笔记模板
```markdown
# 项目复盘 - {{项目名}}
## 时间线
- 开始:{{日期}}
- 结束:{{日期}}
- 总 commit 数:`git log --oneline | wc -l`
## 关键决策
## 踩坑记录
## 经验教训
## 可复用代码/模式
```
---
*研究归档2026-05-04 | Claude Code 开发全流程存档方案*

View File

@@ -0,0 +1,101 @@
# CLAUDE.md — 软件开发最佳实践
> 本文件指导 Claude Code 在此项目中的行为。
> 创建日期2026-05-04
## 核心原则
- **先理解,再动手** — 修改前先阅读相关文件,理解上下文
- **最小改动** — 只改必要的,不要动无关代码
- **保持风格一致** — 遵循项目现有代码风格
- **原子化提交** — 每次提交只做一件事
## 开发流程
### 每次修改后必须执行
```bash
git add -A && git commit -m "[AI] 简短描述做了什么"
```
提交信息格式:`[AI] 动词+名词`,例如:
- `[AI] 添加用户登录接口`
- `[AI] 修复分页参数越界`
- `[AI] 重构订单计算逻辑`
### 开发步骤
1. **需求确认** — 不清楚时先问,不要假设
2. **方案设计** — 大改动先写方案(`docs/` 目录下)
3. **小步实现** — 分步实现,每步可编译、可测试
4. **自动提交** — 每步完成后自动 git commit
5. **自检** — 运行 lint/test确认无报错
## 代码规范
### 通用
- 变量/函数名用英文,语义清晰
- 函数不超过 50 行,超过考虑拆分
- 禁止魔法数字,用常量代替
- 错误处理必须覆盖,不要吞异常
### TypeScript / JavaScript
- 优先 `const`,需要改再用 `let`,不用 `var`
- 使用 async/await不用回调地狱
- 接口定义在前,实现在后
- 使用 ESLint + Prettier提交前自动格式化
### Python
- 遵循 PEP 8
- 类型注解必须(`def func(x: int) -> str:`
- 使用 pyproject.toml 管理依赖
### Node.js
- 错误优先回调或 Promise统一用 async/await
- 环境变量用 `.env`,不硬编码
- 日志用结构化格式JSON
## 测试
- 新功能必须写测试
- 修改后运行相关测试确认通过
- 测试命名:`describe('xxx', () => { it('should xxx', () => {}) })`
- 覆盖率不低于 80%
## Git 规范
- **分支命名**`feat/xxx``fix/xxx``refactor/xxx`
- **提交前检查**
```bash
git diff --staged --name-only # 确认变更范围
```
- **不要 force push** 除非明确要求
- **冲突处理**:保留双方代码 + 注释说明,让用户决定
## 文档
- 公共 API 必须有 JSDoc / docstring
- 复杂逻辑写注释解释 **为什么**,不是 **做了什么**
- 重大变更更新 `CHANGELOG.md`
- README 保持更新
## 安全
- **绝不提交密钥、Token、密码**
- 敏感信息用环境变量或密钥管理工具
- SQL 参数化,防注入
- 用户输入必须校验和转义
## 性能
- 数据库查询用索引,避免 N+1
- 大列表操作考虑分页或流式
- 缓存热点数据,设置合理过期时间
- 不要阻塞主线程
## 与 Claude Code 交互
- 完成任务后简洁汇报:做了什么 + 关键变更 + 需要关注的点
- 遇到不确定的事情直接说,不要编造答案
- 大文件修改前确认用户意图
- 遇到编译/测试失败主动排查原因

View File

@@ -0,0 +1,149 @@
# DBCheck — 开源跨平台数据库巡检工具研究
> 来源: https://mp.weixin.qq.com/s/tR4FpYFnfi6vFmPgoNSUuA
> 研究日期: 2026-05-05
## 项目概览
- **名称**: DBCheck
- **GitHub**: https://github.com/fiyo/DBCheck.git
- **官网**: https://dbcheck.top
- **许可证**: MIT
- **定位**: 开源跨平台数据库巡检工具,一键生成专业巡检报告
## 支持的数据库
| 数据库 | 连接资源 | 缓存性能 | 查询效率 | 日志 | 安全 | 集群 |
|--------|----------|----------|----------|------|------|------|
| MySQL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| PostgreSQL | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| SQL Server | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| 达梦 DM8 | ✅ | ✅ | ✅ | ✅ | ✅ | — |
| TiDB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Oracle | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
## 解决的三大痛点
| 痛点 | 说明 | DBCheck 方案 |
|------|------|-------------|
| **重复劳动** | 50 套库 × 20 分钟 = 16 小时 | 一键自动3 分钟出报告 |
| **标准不一** | 不同 DBA 巡检质量差异大 | 内置 130+ 标准化规则 |
| **历史缺失** | 无法判断趋势 | 自动保存快照,趋势折线图 |
## 系统架构
```
用户交互层
├── CLI 模式(自动化脚本/CI/CD
├── Web UI 模式Flask + 原生 JS
└── 编程接口Python 模块 import
核心调度层
├── checkdb() 总入口
├── APScheduler 定时调度
└── SSH 隧道支持
数据库适配层
├── main_mysql.py
├── main_pg.py
├── main_sqlserver.py
├── main_dm.py达梦
└── main_tidb.py
分析引擎层
├── analyzer.py130+ 规则引擎)
├── slow_query_analyzer.py慢查询分析
└── AI 诊断模块Ollama 本地)
输出层
├── Word 报告python-docx
└── Web UI 可视化报告
```
## 核心功能
### 1. AI 智能诊断
- **本地部署 Ollama**,数据零出站,满足等保合规
- 建议包含:问题描述 + 可执行 SQL + 操作影响 + 优先级标注
- **安全约束**:硬编码仅允许 localhost无法被配置绕过
### 2. 130+ 条标准化检查规则
覆盖维度:
- 连接资源(连接数使用率、连接堆积)
- 缓存性能Buffer Pool 命中率)
- 查询效率(全表扫描、慢查询)
- 日志与告警(错误日志、归档日志空间)
- 安全审计(弱密码、权限过剩)
- 复制/集群主从延迟、Region 均衡)
### 3. 历史趋势分析
- 每次巡检快照自动存入 `history.json`SQLite 版本规划中)
- Web UI 折线图展示关键指标历史变化
- 支持任意时间段对比
### 4. 慢查询深度分析
- 解析慢查询日志,提取 Top 20 慢 SQL
- 执行 EXPLAIN 模拟,识别全表扫描、索引缺失
- 自动生成建议创建的索引 SQL
### 5. RAG 知识库(进阶功能)
- 支持格式PDF、Markdown、TXT、HTML
- 检索增强生成,让 AI 建议更精准
### 6. 定时巡检 + 多渠道告警
- 基于 APScheduler支持标准 Cron 表达式
- 企业微信/钉钉/邮件通知
## 快速上手
```bash
# 方式一:源码运行
git clone https://github.com/fiyo/DBCheck.git
cd DBCheck
pip install -r requirements.txt
python web_ui.py
# 访问 http://localhost:5000
# 方式二:下载可执行文件
# Windows: DBCheck.exe
# Linux: DBCheck-Linux-x64
# macOS: DBCheck-macOS-x64
```
## 技术栈
| 组件 | 技术 |
|------|------|
| 后端 | Python + Flask |
| 报告生成 | python-docx |
| 定时任务 | APScheduler |
| AI 诊断 | Ollama本地 LLM |
| 前端 | 原生 JS无重型框架 |
| 数据持久化 | history.json → 规划 SQLite |
## 开源理念
- MIT 许可证,商用/修改/分发自由
- 所有检查 SQL、AI Prompt、报告逻辑全部开源可审计
- 功能路线图由社区投票决定
- 参与方式Star / Issue / PR
## 项目评价
**优点**
- ✅ 解决真实痛点,实用性强
- ✅ 多数据库支持,国产达梦也在列
- ✅ AI 诊断本地部署,安全合规
- ✅ 架构清晰,模块化设计
- ✅ 零重型前端依赖,部署极简
**可改进**
- 🔧 历史数据目前用 JSON建议尽早切 SQLite
- 🔧 Web UI 较简单,可考虑 Vue3/Element Plus 升级
- 🔧 可增加更多数据库MongoDB、Redis 等)

View File

@@ -0,0 +1,210 @@
# GaussForge — 高性能 3DGS 格式转换库
> 来源: https://github.com/3dgscloud/GaussForge
> 在线查看: https://www.3dgsviewers.com/
> 研究日期: 2026-05-06
> 协议: Apache-2.0
## 项目概览
- **名称**: GaussForge
- **作者**: 3dgscloud
- **定位**: 高性能 3D Gaussian Splatting 格式转换库
- **核心特点**: 无损转换、多格式支持、C++17 编写
- **Python**: `pip install gaussforge`
- **npm**: `npm install @gaussforge/wasm`
## 解决的核心问题
3D 高斯泼溅领域存在**多种互不兼容的格式**
- PLY标准格式文件大
- SPZNiantic 压缩格式)
- SPLAT / KSPLATWeb 渲染格式)
- SOGPlayCanvas 超压缩格式)
- compressed.ply压缩 PLY
GaussForge 提供**无损转换**,统一这些格式。
## 支持的格式
| 格式 | 扩展名 | 读 | 写 | 说明 |
|------|--------|----|----|------|
| **PLY** | .ply | ✅ | ✅ | 标准 PLY 格式 |
| **SPZ** | .spz | ✅ | ✅ | Niantic 压缩格式 |
| **Compressed PLY** | .compressed.ply | ✅ | ✅ | 压缩 PLY |
| **SPLAT** | .splat | ✅ | ✅ | Splat 格式 |
| **KSPLAT** | .ksplat | ✅ | ✅ | K-Splat 格式 |
| **SOG** | .sog | ✅ | ✅ | PlayCanvas SOG 格式 |
## 核心技术架构
### 统一中间表示IR
```
任意格式 → GaussianCloudIR → 任意格式
```
所有格式转换都通过统一的中间表示 `GaussianCloudIR`
| 数据字段 | 说明 |
|----------|------|
| **Positions** | 3D 坐标数组 |
| **Scales** | 对数尺度值 |
| **Rotations** | 四元数表示的旋转 |
| **Alphas** | 预 sigmoid 不透明度 |
| **Colors** | 球谐函数 0 阶DC系数 |
| **SH Coefficients** | 高阶球谐系数 |
| **Metadata** | 坐标系、单位、颜色空间 |
### 数据验证机制
- 数组大小一致性检查
- 数据范围合理性验证
- 格式规范合规性检查
## 三种使用方式
### 1. CLI 命令行工具
```bash
# PLY 转 SPZ
./gfconvert input.ply output.spz
# 压缩 PLY 转标准 PLY
./gfconvert input.compressed.ply output.ply
# 手动指定格式
./gfconvert input.dat output.dat --in-format ply --out-format spz
```
### 2. Python SDK
```bash
pip install gaussforge
```
```python
import gaussforge
gf = gaussforge.GaussForge()
# 读取 PLY
with open("model.ply", "rb") as f:
data = f.read()
result = gf.read(data, "ply")
print(f"Loaded {result['data']['numPoints']} points")
# 格式转换
converted = gf.convert(data, "ply", "splat")
with open("output.splat", "wb") as f:
f.write(converted["data"])
```
### 3. WebAssembly浏览器/Node.js
```bash
npm install @gaussforge/wasm
```
```typescript
import { createGaussForge } from '@gaussforge/wasm';
const gaussForge = await createGaussForge();
const converted = await gaussForge.convert(fileData, 'ply', 'spz');
```
## 技术栈
| 层级 | 技术 |
|------|------|
| **核心** | C++17 |
| **构建** | CMake 3.26+ |
| **编译器** | GCC 7+ / Clang 5+ / MSVC 2017+ |
| **Python 绑定** | nanobind |
| **WASM 绑定** | Emscripten + TypeScript |
| **依赖** | spz (Niantic) / libwebp / nlohmann_json / zlib |
## 项目结构
```
GaussForge/
├── include/gf/
│ ├── core/ # 核心数据结构IR、元数据、验证
│ └── io/ # I/O 接口和格式实现
├── src/
│ ├── core/ # 核心实现
│ ├── io/ # I/O 实现
│ ├── cli/ # 命令行工具
│ └── wasm/ # WebAssembly 绑定
├── python/ # Python 包nanobind 绑定)
├── wasm/ # WASM 包npm
└── cmakes/ # CMake 配置
```
## 与 SuperSplat 的关系
| 维度 | SuperSplat | GaussForge |
|------|------------|------------|
| **定位** | 可视化编辑器 | 格式转换库 |
| **运行方式** | 浏览器 | CLI / Python / WASM |
| **功能** | 编辑/优化/发布 | 格式转换/验证 |
| **语言** | TypeScript | C++17 |
| **互补性** | 编辑前需要转换格式 | 转换后可用 SuperSplat 编辑 |
**工作流**`原始数据 → GaussForge 转换 → SuperSplat 编辑 → 发布`
## 在线工具
**3DGS Viewer**: https://www.3dgsviewers.com/
- 集成 GaussForge 的在线 3DGS 查看器
- 支持上传 PLY/SPZ/SPLAT/KSPLAT/SOG 格式
- 可直接在浏览器中查看和导出所有格式
- 无需安装
## 应用场景
### 1. 3DGS 开发/研究
- 不同工具输出不同格式,需要统一转换
- 训练输出 PLY → 转 SPZ/SOG 用于生产
### 2. Web 应用
- WASM 版本支持浏览器端格式转换
- 用户上传任意格式,自动转换后渲染
### 3. 自动化管线
- Python SDK 集成到 CI/CD 流程
- 批量转换和验证
### 4. 跨平台协作
- 不同团队使用不同格式
- GaussForge 作为"翻译层"
## 如何添加新格式
1.`include/gf/io/` 创建新的 reader/writer 头文件
2.`src/io/` 实现对应读写逻辑
3.`src/io/registry.cpp` 注册新格式
## 项目评价
**优点**
- ✅ 6 种主流格式全覆盖
- ✅ 无损转换(统一 IR
- ✅ 三种使用方式CLI / Python / WASM
- ✅ C++17 高性能实现
- ✅ 数据验证机制
- ✅ 零多余依赖
- ✅ Apache-2.0 开源协议
**局限**
- 🔧 纯转换工具,不包含编辑功能
- 🔧 不涉及 3DGS 训练/生成
- 🔧 需要配合其他工具使用(编辑器/渲染器)
## 相关链接
- GitHub: https://github.com/3dgscloud/GaussForge
- 在线查看器: https://www.3dgsviewers.com/
- Python PyPI: https://pypi.org/project/gaussforge/
- npm WASM: https://www.npmjs.com/package/@gaussforge/wasm

View File

@@ -0,0 +1,343 @@
---
created: 2026-05-03
type: language
tags: [Lua, 脚本语言, 嵌入式, 游戏开发, 配置文件]
---
# Lua 脚本语言研究
> 轻量级、可嵌入的脚本语言,游戏和嵌入式领域的常青树
> 归档时间2026-05-03
---
## 📌 简介
**Lua**(葡萄牙语"月亮")由巴西 PUC-Rio 大学于 1993 年开发,设计目标是**嵌入到应用程序中**,为其提供灵活的扩展能力。
- 官网https://www.lua.org
- 当前版本Lua 5.42020
- 许可MIT License
- 大小:核心解释器仅 ~300KB
---
## ⭐ 核心特性
| 特性 | 说明 |
|------|------|
| **轻量级** | 核心极小,内存占用低 |
| **可嵌入** | C/C++ API 完善,嵌入成本极低 |
| **高性能** | JIT 版本 LuaJIT 性能接近 C |
| **极简设计** | 只有 8 种数据类型,语法精简 |
| **Table 万能** | 数组、字典、对象、模块全用 table |
| **协程支持** | 原生协程coroutine适合异步/游戏逻辑 |
---
## 🔤 基本语法速览
### 变量与类型
```lua
-- 8 种类型
local num = 42 -- number
local str = "hello" -- string
local bool = true -- boolean
local nil_val = nil -- nil
local tbl = {a=1, b=2} -- table
local func = print -- function
local thr = coroutine.create(function() end) -- thread
local usr = newproxy() -- userdata
-- 只有 nil 和 false 为假0 和 "" 都是真!
```
### Table核心数据结构
```lua
-- 数组
local arr = {10, 20, 30}
print(arr[1]) -- Lua 索引从 1 开始!
-- 字典
local dict = {name = "Lua", version = 5.4}
print(dict.name)
-- 混合
local mixed = {
x = 1, y = 2,
"first", "second"
}
-- 嵌套(模拟对象)
local obj = {
name = "Player",
hp = 100,
attack = function(self, target)
target.hp = target.hp - 10
end
}
```
### 控制流
```lua
-- if
if score >= 90 then
print("A")
elseif score >= 60 then
print("B")
else
print("C")
end
-- while / repeat
while i < 10 do
i = i + 1
end
repeat
line = io.read()
until line ~= ""
-- for
for i = 1, 10 do print(i) end -- 数值 for
for i = 10, 1, -1 do print(i) end -- 递减
for k, v in pairs(tbl) do print(k, v) end -- 泛型 for
```
### 函数
```lua
-- 基本定义
function add(a, b)
return a + b
end
-- 匿名函数 / 闭包
local make_counter = function()
local count = 0
return function()
count = count + 1
return count
end
end
-- 多返回值
function divmod(a, b)
return math.floor(a / b), a % b
end
local q, r = divmod(17, 5) -- q=3, r=2
-- 可变参数
function sum(...)
local total = 0
for _, v in ipairs({...}) do
total = total + v
end
return total
end
```
### 模块
```lua
-- mylib.lua
local M = {}
M.VERSION = "1.0"
function M.greet(name)
return "Hello, " .. name
end
return M
-- 使用
local mylib = require("mylib")
print(mylib.greet("World"))
```
---
## 🔌 嵌入 C/C++
### 最小嵌入示例
```c
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
int main() {
lua_State *L = luaL_newstate();
luaL_openlibs(L);
// 执行 Lua 脚本
luaL_dostring(L, "print('Hello from Lua!')");
// 调用 Lua 函数
luaL_dostring(L, "function add(a,b) return a+b end");
lua_getglobal(L, "add");
lua_pushnumber(L, 3);
lua_pushnumber(L, 4);
lua_pcall(L, 2, 1, 0);
int result = lua_tonumber(L, -1);
printf("3 + 4 = %d\n", result);
lua_close(L);
return 0;
}
```
### C 函数暴露给 Lua
```c
static int l_cwrap(lua_State *L) {
double x = luaL_checknumber(L, 1);
lua_pushnumber(L, x * x);
return 1; // 返回值数量
}
// 注册
lua_pushcfunction(L, l_cwrap);
lua_setglobal(L, "cwrap");
// Lua 侧使用print(cwrap(5)) → 25
```
---
## 🎮 主要应用场景
### 游戏脚本(最大应用领域)
| 游戏/引擎 | 用途 |
|-----------|------|
| **World of Warcraft** | UI 插件系统 |
| **Roblox** | 游戏逻辑Luau 方言) |
| **Unity** | 通过 xLua/ToLua 热更新 |
| **Cocos2d-x** | 脚本层 |
| **Garry's Mod** | 模组脚本 |
| **Redis** | 服务器端脚本EVAL |
### 配置系统
```lua
-- config.lua
return {
server = {
host = "0.0.0.0",
port = 8080,
workers = 4
},
database = {
url = "mysql://localhost/mydb",
pool_size = 10
}
}
```
### Nginx/OpenResty
```lua
-- access_by_lua_block
access_by_lua_block {
local redis = require "resty.redis"
local red = redis:new()
red:connect("127.0.0.1", 6379)
local ok, err = red:auth("password")
-- ... 限流/鉴权逻辑
}
```
### Redis 脚本
```lua
-- 原子操作:检查 + 设置
local key = KEYS[1]
local val = redis.call('GET', key)
if val then
return tonumber(val) + 1
else
redis.call('SET', key, 1)
return 1
end
```
---
## ⚡ LuaJIT
**LuaJIT** 是 Lua 的 JIT 编译器,由 Mike Pall 开发:
- 性能:纯 Lua 代码可达 C 的 50%-80%
- FFI直接调用 C 库,无需 C 包装层
- 广泛应用于OpenResty、Torch、FFmpeg 滤镜等
```lua
-- LuaJIT FFI 示例
local ffi = require("ffi")
ffi.cdef[[
int printf(const char *fmt, ...);
]]
ffi.C.printf("Hello %s!\n", "World")
```
---
## 🆚 Lua vs Python/JavaScript
| 维度 | Lua | Python | JavaScript |
|------|-----|--------|-----------|
| **嵌入性** | ⭐⭐⭐⭐⭐ 专为嵌入设计 | ⭐⭐ 可嵌入但重 | ⭐⭐⭐ V8 可嵌入 |
| **体积** | ~300KB | ~30MB | ~5MB (V8) |
| **索引** | 从 1 开始 | 从 0 开始 | 从 0 开始 |
| **面向对象** | 基于 prototype | 基于 class | 基于 prototype |
| **生态** | 小而精 | 大而全 | 大而全 |
| **适合场景** | 嵌入/脚本/配置 | 通用/数据/AI | Web/全栈 |
---
## 💡 优缺点
### 优势
- ✅ 嵌入成本极低C API 设计优雅
- ✅ 语法精简,学习曲线平缓
- ✅ 协程原生支持,游戏逻辑编写方便
- ✅ Table 一统天下,数据结构灵活
- ✅ LuaJIT 性能出色
### 劣势
- ❌ 标准库极小(没有正则、网络、文件系统)
- ❌ 索引从 1 开始C 程序员易混淆
- ❌ 错误信息有时不够友好
- ❌ 缺乏包管理luarocks 生态较小)
- ❌ 无内置调试器
---
## 🔧 工具链
| 工具 | 用途 |
|------|------|
| **lua** | 官方解释器 |
| **luajit** | JIT 编译器 |
| **luarocks** | 包管理器 |
| **stylua** | 代码格式化工具 |
| **teal** | Lua 类型系统 |
| **selene** | Lint 工具 |
| **xLua/ToLua** | Unity 热更新框架 |
---
## 📚 学习资源
- 官方手册https://www.lua.org/manual/5.4/
- 《Programming in Lua》PiL官方教程
- Lua 5.3/5.4 中文版
- 实战Redis EVAL、OpenResty、WoW 插件
---
*研究归档2026-05-03 | Lua 语言核心技术梳理*

View File

@@ -0,0 +1,165 @@
---
created: 2026-05-03
type: project
tags: [AI设计, Open Design, Kami, Claude Design, 开源, 设计系统]
source: https://mp.weixin.qq.com/s/MpjANCg5eO4TSxNUDrpRpQ
author: jackao恶人笔记
---
# Open Design + Kami 设计系统
> Claude Design 的开源替代品,集成 Kami 设计系统,实现杂志级 AI 设计
> 归档时间2026-05-03
---
## 📌 概述
**Open Design** 是 Anthropic Claude Design 的**本地优先、完全开源替代品**,是一个 **Agent 驱动的设计生成平台**
最新更新:正式集成 **Kami 设计系统**,让生成内容拥有"专业杂志/书籍"的纸质质感。
---
## 🔧 Open Design 核心能力
### 支持 11+ 种 Coding Agent
| Agent | 推荐度 |
| ---------------------------------- | --------- |
| Claude Code | ⭐⭐⭐⭐⭐(最强) |
| Codex / Cursor / Hermes / Kimi CLI | ⭐⭐⭐⭐ |
| BYOK 代理(任意 OpenAI 兼容模型) | ⭐⭐⭐ |
### 支持内容
- Web / 移动 / 桌面原型
- Pitch Deck演示文稿
- 简历 / 作品集 / 信函
- 杂志海报
- 短视频与 HyperFrames
### 设计系统库
- **72 个品牌级 DESIGN.md**Linear、Stripe、Vercel、Apple、Notion、小红书、Tesla 等
- **31 个可组合 Skill**magazine-poster、guizang-ppt 等
### 独特机制
| 机制 | 作用 |
|------|------|
| 沙盒预览 | 实时 iframe 预览生成效果 |
| 实时 Todo 流 | 追踪 Agent 生成进度 |
| 强制问题表单 | 确保明确设计意图 |
| 五维自评 | Agent 自我质量评估 |
| 反 Slop 黑名单 | 禁止紫色渐变、emoji 滥用、Inter 做标题等 |
### 导出格式
HTML / PDF / PPTX / ZIP / Markdown一键专业输出。
---
## 🎨 Kami 设计系统
### 基本信息
- **作者**@HiTw93Tw93
- **理念**Good content deserves good paper
- **定位**:严格约束的**印刷品设计系统**,非传统 UI 组件库
### 视觉规范
| 属性 | 值 | 说明 |
|------|-----|------|
| 背景色 | `#f5f4ed` | 温暖羊皮纸色,非纯白 |
| 强调色 | `#1B365D` | 墨蓝,唯一强调色 |
| 英文字体 | Charter | 经典衬线体 |
| 中文字体 | 仓耳金楷TsangerJinKai02 | 个人免费,商用需授权 |
| 日文字体 | YuMincho | - |
### 排版哲学
- 极简阴影:仅 whisper / ring 两种
- 紧凑标题行高1.1-1.3
- 舒适正文行高1.5-1.55
- **绝对禁止"AI 味"装饰**
### 支持文档类型
One-Pager / Long Doc / Letter / Portfolio / Resume / Slides含 WeasyPrint 优化模板)
Open Design 集成后额外提供 `kami-deck.html` 模板,专为横版杂志风 Pitch Deck 优化。
---
## 🚀 上手指南
### 环境准备
- Node.js ≈ 24推荐 nvm/fnm 管理)
- pnpm 10.33.x`corepack enable` 后自动)
- 至少一个 Agent CLI
### 一键安装
```bash
git clone https://github.com/nexu-io/open-design.git
cd open-design
pnpm install
pnpm tools-dev run web
```
首次运行会自动创建 `.od/` 文件夹SQLite 数据库 + 项目工作区)。
### 日常生成流程
1. 选择 **Skill**magazine-poster / guizang-ppt 等)
2. 选择 **Design System** → 搜索选中 **Kami**
3. 输入自然语言 Prompt
4. 填写 **Discovery Form**(必须:表面、受众、语气、品牌背景、规模、约束)
5. 选择视觉方向(或直接用 Kami 预设)
6. Agent 实时输出 → 沙盒预览
7. 满意后一键导出
### Kami 独立使用(不走 Open Design
```bash
npx skills add tw93/kami -a claude-code -g -y
```
然后在 Claude Code 里直接说"用 Kami 风格做一份作品集"即可。
---
## 📊 评价
### 优势
- ✅ 质量领先Kami 约束 + 反 Slop 流程 = 稳定专业印刷品水准
- ✅ 本地优先 + 开源:数据不上传、完全可审计
- ✅ 生态成型72 设计系统 + 31 Skill覆盖 95% 日常需求
- ✅ 成本可控:用开源模型就能跑,导出无水印
### 不足
- ⚠️ 上手门槛中等Node + pnpm + Agent CLI 配置15-30 分钟)
- ⚠️ 依赖底层模型能力:弱模型容易"翻车"
- ⚠️ 中文字体商用需注意仓耳金楷授权
- ⚠️ 复杂长文档仍需人工二审
### 建议
- **每天用 AI 写东西/做演示/发作品集** → 值得装
- **偶尔用一次或零技术背景** → 等桌面版或教程
---
## 🔗 相关链接
- Open Designhttps://github.com/nexu-io/open-design
- Kamihttps://github.com/tw93/kami
---
*研究归档2026-05-03 | 基于"恶人笔记"公众号文章整理*

View File

@@ -0,0 +1,125 @@
# SkillHub — 科大讯飞开源智能体技能注册中心
> 来源: https://mp.weixin.qq.com/s/989DJSRSihmEs6JSbLGnkw
> 研究日期: 2026-05-05
> 协议: Apache-2.0
## 项目概览
- **名称**: SkillHub
- **GitHub**: https://github.com/iflytek/skillhub
- **作者**: 科大讯飞iFlytek
- **定位**: 企业级开源智能体技能注册中心
- **口号**: 在组织内发布、发现和管理可复用的技能包
## 解决的核心问题
| 痛点 | SkillHub 方案 |
| -------- | -------------------- |
| **版本混乱** | 语义化版本控制,自动 latest 跟踪 |
| **权限失控** | 企业级 RBAC + 审核机制 |
| **发现困难** | 全文搜索 + 评分/下载量筛选 |
| **分发低效** | CLI 一键安装,类似 npm 体验 |
| | |
## 核心功能
| 功能 | 说明 |
| ------------ | --------------------------------- |
| **Skill 发布** | 一键上传技能包,自动版本管理/元数据提取 |
| **自托管私有化** | 部署在自有基础设施,数据不出防火墙 |
| **团队命名空间** | 按团队/全局组织技能,独立成员/角色管理 |
| **审核与治理** | 团队管理员审核,平台管理员控制推广,审计日志 |
| **发现与搜索** | 全文搜索,支持按命名空间/下载量/评分/时间筛选 |
| **社交功能** | 收藏、评分、下载量跟踪 |
| **账户合并** | 多个 OAuth 身份 + API 令牌整合到单账户 |
| **CLI 优先** | 原生 REST API + ClawHub 风格注册中心客户端兼容 |
## 技术栈
| 层级 | 技术 | 说明 |
|------|------|------|
| **前端** | React 19 + TypeScript + Vite + shadcn/ui | SPA支持 i18next 国际化 |
| **后端** | Java 21 + Spring Boot 3.2 + Spring Security | 模块化 REST API |
| **数据库** | PostgreSQL 16 + Flyway | 主数据存储 + 全文搜索 |
| **缓存** | Redis 7 | 会话管理 + 分布式锁 + 限流 |
| **对象存储** | 本地文件系统 / S3 / MinIO | 技能包文件存储 |
| **安全** | Spring Security OAuth2 + RBAC + API 令牌 | 认证授权 |
| **扫描器** | Python 服务 | 上传技能包多引擎安全分析 |
| **部署** | Docker Compose + Kubernetes | 容器编排 |
## 项目结构
```
skillhub/
├── server/
│ ├── skillhub-app/ # 入口点、控制器
│ ├── skillhub-domain/ # 核心实体、领域服务
│ ├── skillhub-auth/ # OAuth2、RBAC、API 令牌
│ ├── skillhub-search/ # 搜索 SPI + PostgreSQL 全文检索
│ ├── skillhub-storage/ # 对象存储 SPI
│ ├── skillhub-infra/ # JPA 仓库、事件
│ └── skillhub-notification/ # 邮件与告警
├── web/ # React 19 前端
│ └── src/
│ ├── pages/ # 路由级页面
│ ├── features/ # 业务功能模块
│ ├── shared/ # 可复用组件
│ └── api/ # OpenAPI 生成类型
├── scanner/ # Python 安全扫描器
├── deploy/ # Kubernetes 清单
├── monitoring/ # Prometheus / Grafana
└── docker-compose.yml # 开发依赖
```
## 快速启动
```bash
git clone https://github.com/iflytek/skillhub.git
cd skillhub
make dev-all # 启动完整开发栈
# 或分别启动
make dev-backend # 仅后端
make dev-web # 仅前端
```
**前置要求**: Java 21+ / Node.js 20+ / Docker
## 架构亮点
### 治理模型
```
开发者 → 发布技能到命名空间 → 团队管理员审核 → 推广到全局
```
- 每个命名空间独立管理Owner/Admin/Member 角色)
- 所有治理操作记录审计日志
- 可见性规则确保用户只能看到有权访问的技能
### 安全设计
- **API 令牌**: 基于前缀的安全哈希,作用域控制
- **CSRF 防护**: 前端请求保护
- **多引擎扫描**: 上传技能包自动安全分析
- **数据主权**: 完全自托管,专有技能保留在防火墙后
## 与 OpenClaw/ClawHub 的关系
- SkillHub 兼容 **ClawHub 风格注册中心客户端**
- 可作为 OpenClaw 技能的**企业级私有注册中心**
- 提供与公共注册中心相同的体验,但完全可控
## 项目评价
**优点**
- ✅ 科大讯飞出品,企业级品质
- ✅ 完整治理模型(审核/权限/审计)
- ✅ 技术栈现代React 19 / Java 21 / PG 16
- ✅ 自托管,数据完全可控
- ✅ Apache-2.0 协议,商用友好
**适用场景**
- 企业内部 Agent 技能共享平台
- 团队私有技能注册中心
- 需要权限控制的技能分发场景

View File

@@ -0,0 +1,133 @@
# SuperSplat — PlayCanvas 3D 高斯泼溅编辑器
> 来源: https://github.com/playcanvas/supersplat
> 在线体验: https://superspl.at/editor
> 研究日期: 2026-05-06
> 协议: MIT推测PlayCanvas 通常 MIT
## 项目概览
- **名称**: SuperSplat
- **作者**: PlayCanvas
- **定位**: 免费开源的 3D Gaussian Splat高斯泼溅编辑器
- **运行方式**: 纯浏览器运行,无需下载安装
- **官网**: https://superspl.at/editor
- **用户指南**: https://developer.playcanvas.com/user-manual/gaussian-splatting/editing/supersplat/
## 什么是 3D Gaussian Splatting
3D 高斯泼溅是一种**从照片重建 3D 场景**的技术:
- 通过多张照片扫描真实环境
- 生成"云"状的高斯体oriented blobs
- 能实现**照片级真实感**的 3D 场景渲染
- 但原始 splat 没有三角面、碰撞体、导航网格、光照
## SuperSplat 核心功能
| 功能 | 说明 |
|------|------|
| **检查/浏览** | 在浏览器中查看 3D 高斯场景 |
| **编辑** | 裁剪、删除、优化高斯体 |
| **优化** | 压缩、减少高斯体数量 |
| **发布** | 分享和发布编辑后的 splat |
| **Walk Mode** | 第一人称视角漫步场景 |
| **Streamed LOD** | 流式加载不同细节层级 |
| **Studio 模式** | 添加标注、电影级后期效果 |
| **社交功能** | 用户主页、收藏、下载 |
## 技术栈
| 层级 | 技术 |
|------|------|
| **运行环境** | 浏览器WebGL/WebGPU |
| **开发环境** | Node.js 18+ |
| **构建工具** | npm |
| **国际化** | i18next支持多语言 |
| **本地开发** | `npm run develop` → http://localhost:3000 |
## 快速启动
```bash
git clone https://github.com/playcanvas/supersplat.git
cd supersplat
npm install
npm run develop
# 浏览器打开 http://localhost:3000
```
## PlayCanvas 高斯生态工具链
| 工具 | 类型 | 用途 |
|------|------|------|
| **SuperSplat** | 在线编辑器 | 可视化编辑 3DGS |
| **SplatTransform** | CLI 工具 | 命令行转换/优化 splat |
| **SOG 格式** | 压缩格式 | "高斯泼溅的 WebP",超压缩 |
| **PlayCanvas Engine** | 游戏引擎 | 在浏览器中运行 3DGS 游戏 |
## SOG 格式Spatially Ordered Gaussians
- PlayCanvas 开源的 3DGS 压缩格式
- 被称为"高斯泼溅的 WebP"
- 比 SOGS 格式更进一步的压缩
- 支持高效流式加载
## 应用场景
### 1. 房地产/建筑可视化
- 扫描真实建筑,生成照片级 3D 场景
- 客户可以"走进"未建成的房子
### 2. 电商产品展示
- 用照片扫描产品360° 展示
- 比传统 3D 建模成本低
### 3. 游戏/VR
- 快速创建真实感游戏场景
- 结合 PlayCanvas 引擎,可在浏览器运行 FPS 游戏
### 4. 文化遗产保护
- 扫描历史建筑/遗址
- 永久保存数字副本
### 5. 影视/虚拟制作
- 快速创建虚拟场景
- 替代传统绿幕拍摄
## 最新进展2026
| 日期 | 更新 |
| ------- | -------------------------------------- |
| 2026-04 | Walk Mode + Streamed LOD + Easy Upload |
| 2026-04 | 可下载 Splats + 许可证 + 社交链接 |
| 2026-04 | 将高斯场景变成可玩游戏FPS demo |
| 2026-03 | SuperSplat Studio 发布 |
| 2026-02 | Studio 支持标注 + 电影后期效果 |
| 2025-09 | SOG 压缩格式开源 |
| 2025-07 | SplatTransform CLI 工具发布 |
## 项目评价
**优点**
- ✅ 纯浏览器运行,零安装
- ✅ PlayCanvas 大厂支持,持续迭代
- ✅ 完整工具链(编辑器 + CLI + 压缩格式 + 引擎)
- ✅ 开源,可自托管
- ✅ 活跃的社区和文档
**局限**
- 🔧 浏览器性能限制,超大场景可能卡顿
- 🔧 编辑功能相比桌面专业工具仍有差距
- 🔧 原始 splat 缺少碰撞体等游戏元素(需手动添加)
## 与 AI 的结合
- **Voxelo.ai**: AI 驱动的 3DGS 产品可视化
- 未来趋势AI 自动生成 splat + SuperSplat 编辑优化
## 相关链接
- GitHub: https://github.com/playcanvas/supersplat
- 在线编辑器: https://superspl.at/editor
- 用户指南: https://developer.playcanvas.com/user-manual/gaussian-splatting/editing/supersplat/
- 博客: https://blog.playcanvas.com
- Discord: https://discord.gg/RSaMRzg

View File

@@ -0,0 +1,142 @@
# WeWrite — 公众号文章全流程 AI Skill
> 来源: https://github.com/oaker-io/wewrite
> 研究日期: 2026-05-04
## 项目定位
**一句话搞定公众号文章**:从热点抓取 → 选题 → 写作 → SEO → 视觉 AI → 排版 → 微信草稿箱推送
兼容 **Claude Code****OpenClaw** 的 skill 格式。
## 核心能力
| 能力 | 实现 |
|------|------|
| 热点抓取 | 微博 + 头条 + 百度实时热搜(`fetch_hotspots.py` |
| SEO 评分 | 百度 + 360 搜索量化评分(`seo_keywords.py` |
| 选题生成 | 10 选题 × 3 维度评分 + 历史去重 |
| 素材采集 | WebSearch 真实数据/引述/案例(不编造) |
| 框架生成 | 7 套写作骨架(痛点/故事/清单/对比/热点解读/纯观点/复盘) |
| 内容增强 | 按框架类型自动匹配策略 |
| 文章写作 | 真实信息锚定 + 风格注入 + 编辑锚点 |
| SEO 优化 | 标题策略/摘要/关键词/标签 |
| AI 配图 | 封面 3 创意 + 内文 3-6 配图9 provider 自动 fallback |
| 排版发布 | 16+ 主题 + 微信兼容修复 + 暗黑模式 |
| 效果复盘 | 微信数据分析 API 回填 |
| 风格飞轮 | 学习用户修改,越用越像用户 |
| 范文风格库 | SICO 式 few-shot从已发布文章提取风格指纹 |
## 5 套写作人格Writing Persona
| 人格 | 适合 | 风格 |
|------|------|------|
| midnight-friend | 个人号/自媒体 | 极度口语化、高自我怀疑、第一人称 |
| warm-editor | 生活/文化/情感 | 温暖叙事、故事嵌套数据 |
| industry-observer | 行业媒体/分析 | 中性分析、数据先行、稳中带刺 |
| sharp-journalist | 新闻/评论 | 犀利简洁、数据驱动、强观点 |
| cold-analyst | 财经/投研 | 冷静克制、逻辑链条、风险意识强 |
## 16+ 排版主题
| 类别 | 主题 |
|------|------|
| 通用 | professional-clean默认、minimal、newspaper |
| 科技 | tech-modern、bytedance、github |
| 文艺 | warm-editorial、sspai、ink、elegant-rose |
| 商务 | bold-navy、minimal-gold、bold-green |
| 风格 | bauhaus、focus-red、midnight |
全部支持微信暗黑模式。
## 微信自动修复
| 问题 | 自动修复 |
|------|----------|
| 外链被屏蔽 | 转上标编号脚注 + 文末参考链接 |
| 中英混排无间距 | CJK-Latin 自动加空格 |
| 加粗标点渲染异常 | 标点移到 `</strong>` 外 |
| 原生列表不稳定 | `<ul>/<ol>` 转样式化 `<section>` |
| 暗黑模式颜色反转 | 注入 `data-darkmode-*` 属性 |
| `<style>` 被剥离 | 所有 CSS 内联注入 |
## 安装
### OpenClaw
```bash
git clone --depth 1 https://github.com/oaker-io/wewrite.git ~/.openclaw/skills/wewrite
cd ~/.openclaw/skills/wewrite && pip install -r requirements.txt
cp config.example.yaml config.yaml
```
### Claude Code
```bash
git clone --depth 1 https://github.com/oaker-io/wewrite.git ~/.claude/skills/wewrite
cd ~/.claude/skills/wewrite && pip install -r requirements.txt
```
## 配置
```yaml
# config.yaml
# 微信公众号 appid/secret推送需要
# 图片 API key生图需要
# 不配也能用——自动降级为本地 HTML + 输出图片提示词
```
## 使用方式
```
你:写一篇公众号文章
你:写一篇关于 AI Agent 的公众号文章
你:交互模式,写一篇关于效率工具的推文
你:帮我润色一下刚才那篇
你:学习我的修改 → 飞轮学习
你:看看有什么主题 → 主题画廊
你:换成 sspai 主题 → 切换主题
你:检查一下 → 生成报告 + 质量自检
你:导入范文 → 建立风格库
```
## 目录结构
```
wewrite/
├── SKILL.md # 主管道Step 1-8
├── config.example.yaml # API 配置模板
├── style.example.yaml # 风格配置模板
├── scripts/ # 数据采集 + 诊断 + 构建
│ ├── fetch_hotspots.py # 多平台热点抓取
│ ├── seo_keywords.py # SEO 关键词分析
│ ├── humanness_score.py # 文章质量打分11项检测
│ ├── extract_exemplar.py # 范文风格提取
│ ├── learn_theme.py # 从公众号文章 URL 提取排版主题
│ └── fetch_article.py # 从公众号 URL 提取正文为 Markdown
├── toolkit/ # Markdown → 微信工具链
│ ├── cli.py # CLIpreview / publish / gallery
│ ├── converter.py # Markdown → 内联样式 HTML
│ ├── publisher.py # 微信草稿箱 API + 小绿书图片帖
│ ├── image_gen.py # AI 图片生成9 provider
│ └── themes/ # 16+ 排版主题
├── personas/ # 5 套写作人格预设
├── references/ # Agent 按需加载的参考文档
└── output/ # 生成的文章
```
## 与 OpenClaw 的关系
- 兼容 OpenClaw skill 格式,有专门的 `dist/openclaw/` 构建
- 可安装到 `~/.openclaw/skills/wewrite`
- 需要配置微信公众号 appid/secret我们已有`wxdbcccdac8e7c97be`
- 图片 API 可用百炼 qwen-image-2.0
## 核心设计理念
**不是"骗过 AI 检测",而是写出值得读的文章**
1. 内容增强 — 按框架类型自动执行不同策略
2. 素材采集 — 真实数据锚定,不编造
3. 编辑锚点 — 在 2-3 个关键位置标记"在这里加一句你自己的话"
4. 学习飞轮 — 每次编辑后学习,下次更接近用户风格
5. 范文风格库 — 导入已发布文章,写作时注入风格指纹
## MIT 许可证

View File

@@ -0,0 +1,118 @@
# everything-claude-code (ECC) 研究
> 来源: https://github.com/affaan-m/everything-claude-code
> 研究日期: 2026-05-04
## 项目概览
- **140K+ stars, 21K+ forks, 170+ contributors**
- Anthropic Hackathon 获奖项目
- 当前版本: **v2.0.0-rc.1**
- 定位: **AI Agent Harness 性能优化系统**(不只是配置文件)
## 核心能力
| 能力 | 说明 |
|------|------|
| Token 优化 | 模型选择、系统提示瘦身、后台进程管理 |
| 记忆持久化 | Hooks 自动跨会话保存/加载上下文 |
| 持续学习 | 自动从会话中提取模式生成可复用技能 |
| 验证循环 | Checkpoint vs 持续评估、grader 类型、pass@k 指标 |
| 并行化 | Git worktrees、级联方法、实例扩展 |
| 子代理编排 | 上下文问题管理、迭代检索模式 |
## 支持的 Agent Harness
Claude Code, Codex, Cursor, OpenCode, Gemini 等
## 规模
- **48 个 agents**(覆盖 10+ 编程语言)
- **182 个 skills**
- **68 个 legacy command shims**
- **12 种语言生态**TypeScript, Python, Go, Java, PHP, Perl, Kotlin/Android/KMP, C++, Rust 等)
## 安装方式
### 1. Claude Code 插件(推荐)
```bash
/plugin marketplace add https://github.com/affaan-m/everything-claude-code
/plugin install everything-claude-code@everything-claude-code
```
### 2. 手动安装
```bash
# 最小配置(不含 hooks
./install.sh --profile minimal --target claude
# 核心配置(不含 hooks
./install.sh --profile core --without baseline:hooks --target claude
# 完整版
./install.sh --profile full
```
### 3. npm
```bash
npx ecc-install --profile minimal --target claude
```
### 4. 咨询工具
```bash
npx ecc consult "security reviews" --target claude
```
## 关键架构
### 三个公共标识(不可互换)
- GitHub 源码: `affaan-m/everything-claude-code`
- Claude 插件: `everything-claude-code@everything-claude-code`
- npm 包: `ecc-universal`
### Hook 运行时控制
```bash
ECC_HOOK_PROFILE=minimal|standard|strict
ECC_DISABLED_HOOKS=...
```
### 新增 Harness 命令
- `/harness-audit` — 审计评分
- `/loop-start` — 启动循环
- `/loop-status` — 循环状态
- `/quality-gate` — 质量门禁
- `/model-route` — 模型路由
## ECC 2.0 特性alpha
- Rust 控制平面原型 (`ecc2/`)
- 新增命令: dashboard, start, sessions, status, stop, resume, daemon
- Dashboard GUI (Tkinter)
- SQLite 状态存储 + 查询 CLI
- Session adapters 结构化记录
- Skill evolution 自改进基础
## 安全
- **AgentShield 集成**: `/security-scan` 技能
- 1282 个测试102 条规则
- GitHub Marketplace: `github.com/marketplace/ecc-tools`
## 与 OpenClaw 的关联
ECC 的很多理念与 OpenClaw 的 AGENTS.md / SOUL.md / 技能系统类似:
- **Skills 系统** → OpenClaw 的 skills/ 目录
- **Instincts** → 类似 SOUL.md 的个性定义
- **Hooks** → 类似 OpenClaw 的 cron/heartbeat 机制
- **Agents** → 类似 OpenClaw 的 sub-agent 编排
## 注意事项
⚠️ **不要叠加安装方式** — 最常见错误:先 `/plugin install`,再跑 `./install.sh --profile full`,会导致重复技能/运行时。
⚠️ **插件无法自动分发 rules** — 安装插件后仍需手动复制规则文件夹。
## 相关项目
- **NanoClaw v2** — 模型路由、技能热加载、会话分支/搜索/导出/压缩/指标
- **AgentShield** — 安全扫描工具
- **ECC Tools** — GitHub App免费/专业/企业版)

View File

@@ -0,0 +1,178 @@
---
created: 2026-05-03
type: methodology
tags: [AI写作, 元模型, 技术方案, 投标, 约束驱动, RAG, 文档生成]
source: https://mp.weixin.qq.com/s/Po42W8VuLy1KvwbDzCdXdA
author: 人月聊IT
---
# 元模型驱动的 AI 技术方案写作
> 结构约束优先于内容生成,来源追溯优先于流畅表达
> 归档时间2026-05-03
---
## 📌 传统 AI 辅助写作的三大困境
| 问题 | 表现 | 根源 |
|------|------|------|
| **知识点孤立** | RAG 检索局部片段,忽略文档内部的隐性约束网络 | 片段间约束关系丢失 |
| **需求无映射** | AI 不知道哪段对应哪个评分点 | 没有需求→内容映射机制 |
| **缺乏约束** | AI"合理推断"编造数据、虚构案例 | 无结构化约束框架 |
**核心结论**AI 写作缺乏结构化的约束框架,导致结果不可控。
---
## 🏗️ 文档元模型三层架构
### Layer 1原子要素层最小可复用单元
**判定标准**:独立性 + 可复用性 + 参数化可能性
**7 类原子要素**
| 类别 | 名称 | 示例 |
|------|------|------|
| A | 背景叙述类 | 政策背景、行业痛点 |
| B | 技术能力类 | 产品功能、能力清单 |
| C | 架构方案类 | 架构图说明、部署方案 |
| D | 实施方法类 | 实施流程、风险策略 |
| E | 资源配置类 | 硬件测算、软件清单 |
| F | 案例数据类 | 客户案例、实施成果 |
| G | 合规声明类 | 技术偏离、服务承诺 |
每个要素包含:唯一 ID、内容摘要、知识库来源、参数化变量、可复用性评分1-5 分)。
**示例**`B-004`API 网关认证插件能力描述
- 来源:历史建议书 → 4.2 API 网关引擎
- 复用性5 分
- 参数化:`{{AUTH_METHODS}}`
### Layer 2组合块层章节填充模板
多个原子要素按逻辑组合成章节模板,每个组合块包含:
- 适用章节
- 要素组合逻辑
- 写作要点
- 外部约束映射(对应哪些评分点)
**示例**Block-04 实施方法论模块 = D-001~D-006 六个步骤要素
### Layer 3框架层文档骨架 + 约束图谱)
**章节骨架属性**
- 必要性分级:★★★(必须)/ ★★(建议)/ ★(可选)
- 核心定位、输入依赖、输出约束、关联组合块
**约束图谱**(核心价值):
| 约束 ID | 类型 | 规则 |
|---------|------|------|
| C-HR-01 | [H] 硬约束 | 组织架构每个岗位必须有具名人员 |
| C-TP-01 | [H] | 实施计划工期 ≤ 招标文件周期 |
| C-RF-01 | [H] | 功能方案 100% 覆盖需求分析列举的功能 |
| C-AF-01 | [H] | 产品架构组件必须在功能方案中有展开 |
| C-HW-01 | [H] | 硬件配置存储容量 ≥ 资源测算需求量 |
约束分级:硬约束[H] / 软约束[S] / 建议约束[R]
---
## 📋 七阶段工作流
### 阶段一:输入解析
**输出四张表**
1. 评分点提取表(评分 ID + 描述 + 分值 + 满分条件)
2. SOW 建设内容提取表(交付范围 + 优先级)
3. 项目变量提取表(`{{变量名}}` 格式)
4. 隐含约束识别表
同时输出**知识库覆盖度报告**。
### 阶段二:元模型提取
从知识库萃取三层元模型,标注覆盖缺口:
- ⬜ 部分覆盖 → 改写适配
- ❌ 未覆盖 → 标注缺口,**禁止虚构内容填充**
### 阶段三:知识点关联建模
**六类关联关系**
| 类型 | 约束强度 | 说明 |
|------|---------|------|
| →必须 | 最强 | B 必须基于 AA 不存在则 B 无效 |
| →引用 | 强 | B 引用 A 的数据,不一致则矛盾 |
| →覆盖 | 强 | A 必须完整覆盖 B 的所有条目 |
| →支撑 | 中 | A 为 B 提供论据背书 |
### 阶段四:文档生成准备
### 阶段五:需求映射与追溯
**双向追溯矩阵**
- **正向追溯**(需求→内容):给定评分点 → 找到响应章节
- **反向追溯**(内容→需求):给定章节 → 找到响应的评分点
**追溯完整性验证**(四指标):
- 需求覆盖率 = **100%**
- 高分需求响应质量分
- 章节利用率 ≥ **70%**
- SOW 必须项完全覆盖率 = **100%**
### 阶段六:一致性约束建模
通用约束7 条)+ 项目专属约束 → **约束验证清单**
### 阶段七:文档生成与验证
**执行顺序**
1. 生成前准备:确认变量赋值、缺口处理方案
2. **逐章生成**:标注组合块 ID + 原子要素 ID + 评分点编号
3. **约束验证QP-01**:硬约束通过率必须 **100%**
4. **最终质检QP-03**:追溯完整性 + 变量替换 + 章节编号
5. **归档QP-04**:新要素入库,专属约束入库候选
---
## 🛠️ 配套工具三件套
| 工具 | 格式 | 作用 |
|------|------|------|
| 元模型建模规范 | Markdown | 方法论主文件 |
| 提示词手册 | Markdown | System Prompt + UP-00~UP-05 + QP-01~QP-04 |
| 约束验证规则库 | 内嵌于规范 | 7 条通用硬约束 + 项目专属模板 |
---
## 📊 实际验证iPaaS 项目样本)
- **57 个**原子要素
- **6 个**标准组合块
- 覆盖全部 **65 分**评分点的双向追溯矩阵
- **12 条**约束验证规则
---
## 💡 核心价值
| 维度 | 解决方式 |
|------|---------|
| **内容层面** | 三层结构拆解到最小可复用粒度,每段内容都有出处 |
| **需求层面** | 双向追溯矩阵机械验证,确定性而非主观感觉 |
| **质量层面** | 约束图谱显式化隐性规则,硬约束 100% 通过才输出 |
| **知识积累** | 归档机制让知识库持续生长,越用越丰富 |
---
## ⚠️ 适用边界
-**最适合**:结构标准化、知识库充分的文档(投标响应文件等)
- ⚠️ **价值有限**:大量创新论述、结构不固定的内容(研究报告、创意提案)
---
*研究归档2026-05-03 | 基于"人月聊IT"公众号文章整理*

View File

@@ -0,0 +1,185 @@
---
created: 2026-05-02
type: source
tags: [Hermes Agent, Obsidian, 知识库, 内容生产, AI工作流, Agent Skill, 选题管理]
source: "https://mp.weixin.qq.com/s/ZJZGwdWUlj8-L2Lsp1Zyog"
author: 超级猛
---
# Hermes Agent 接入 Obsidian — 知识库内容生产线
> 来源:微信公众号 **超级猛**
> 链接:<https://mp.weixin.qq.com/s/ZJZGwdWUlj8-L2Lsp1Zyog>
> 归档时间2026-05-02
---
## 📌 核心理念
> **知识库最大的浪费不是"不够大",而是"存了不用"**
核心链路:
```
资料进来 → 判断价值 → 拆成选题 → 生成草稿 → 发布归档
```
> 一篇收藏没进过选题池,等于死了。
> 一个灵感没变成过大纲,只是心理安慰。
---
## 📂 目录设计(给 Agent 认路)
```
📁 01-Sources ← 外部资料入库
📁 02-Accounts
└─ 账号名
├─ Topics ← 选题池
├─ Drafts ← 草稿区
└─ Published ← 发布归档
📁 03-Frameworks ← 内容框架、写作规范、账号定位
```
**关键认知**:目录不是给人看的,是给 Agent 认路的。
最小流转链路:
```
Source Note → Topic Note → Draft Note → Published Note
```
---
## 🔧 五步实操
### Step 1入库判断让 Agent 当编辑)
**提示词**
```
判断这篇内容是否值得收入 Obsidian 内容中台。如果值得,生成 Source Note包含
- 核心摘要
- 关键观点
- 适合哪个账号
- 可延展成哪些选题
- 建议放入的目录和文件名
```
**价值**:不是简单的摘要,而是先过一遍"编辑台"——判断值不值得继续加工。低质量资料直接过滤掉。
### Step 2拆选题钉死"写什么"
**提示词**
```
基于这篇 Source Note为账号拆 3 个选题。每个选题包含:
- 一句话定义
- 目标读者
- 用户痛点
- 核心承诺
- 标题候选3 个)
- 简短提纲
判断哪个最适合近期发布。
```
**选题四标准**
1. 有明确的用户痛点
2. 有真实案例可引用
3. 能讲成可复现的工作流
4. 能给出可操作的方法
### Step 3生成草稿但别直接定稿
**提示词**
```
基于这个 Topic Note写一版长文草稿。要求
- 从使用场景和判断出发,不要写成工具说明书
- 结构清楚,但别像模板
- 每节都有具体做法
- 少用空泛形容词,多写真实问题和取舍
- 结尾给出下一步行动建议
```
**两轮人工润色**
- 第一轮:删掉正确但没信息量的话
- 第二轮:补上真实判断和使用细节
> AI 帮你铺结构,但文章有没有可信度,最后看你有没有自己的判断。
### Step 4沉淀为 Skill别每次都重新教
把稳定流程写成 Skill
- Source Note 生成规范
- Topic Note 字段模板
- 账号定位、选题偏好、表达风格
- 公众号 vs 小红书的差异化要求
**价值**Agent 越来越像工作流成员,而不是临时聊天窗口。最消耗人的不是某一次写作,而是每次都要重新启动上下文。
### Step 5发布归档形成反馈闭环
每条发布后补归档记录:
```yaml
标题:
发布时间: 2026-04-28
平台: 公众号
对应Topic: [[Topics/xxx]]
对应Draft: [[Drafts/xxx]]
链接:
封面文案:
数据复盘:
```
**反馈闭环**
```
Source → Topic → Draft → Published → Review → New Topic
```
> 只看草稿不看发布结果,永远没法判断什么标题有效、什么选题值得续写。内容系统不能只管生产不管反馈。
---
## 🚀 最小启动版本
不用一步到位,先搭这个:
```
📁 01-Sources
📁 02-Topics
📁 03-Drafts
📁 04-Published
```
**固定三个提示词**
1. **入库判断**:整理成 Source Note判断是否值得推进
2. **拆选题**:基于 Source Note 拆 3 个选题,推荐最适合的一个
3. **出草稿**:基于 Topic Note 写有真实场景、有方法、有判断的草稿
---
## 📊 适用人群
如果你中了三条以上,就很值得试试:
- 收藏大量文章但很少转成输出
- Obsidian 目录越来越复杂,打开频率越来越低
- 同时管多个账号,素材不知道该分给谁
- 想让 AI 不只是一次性写作工具,而是参与整个流程管理
- 已在用 Claude Code/Cursor/Codex/Hermes想把 Agent 接进真实工作流
---
## 🔑 最大洞察
> **别只把 AI 当写作工具,把它放进流程里。**
让它只写一篇文章,价值是一次性的。让它参与选题、归档、草稿、发布复盘,价值才会累积。
---
## 🔗 关联资源
- [[Skill自动化管理方法]](空格的知识库管理方案)
- [[程序员最常用10个AI提示词]](提示词工程)
- [[MapLibre Agent Skills研究]](垂直领域 Agent 技能化)
- [[Skyvern研究]](浏览器自动化 Agent
---
*研究完成2026-05-02 | 作者超级猛Hermes Agent + Obsidian 内容生产线,从仓库到生产线的转变*

View File

@@ -0,0 +1,116 @@
---
created: 2026-05-02
type: source
tags: [MapLibre, Agent Skills, WebGIS, AI编程, 地图开发, 开源GIS, PMTiles, Martin]
source: "https://mp.weixin.qq.com/s/C1V3fDBtBJuBG9qGBmfsnA"
author: WebGIS 公众号
---
# MapLibre Agent Skills v1.0.0 — AI 重构 WebGIS 开发
> 来源:微信公众号
> 链接:<https://mp.weixin.qq.com/s/C1V3fDBtBJuBG9qGBmfsnA>
> 官方仓库agentskills.io
> 归档时间2026-05-02
---
## 📌 一句话总结
> **MapLibre 官方为 AI 编程助手定制的专业技能库 v1.0.0 正式发布,解决大模型写地图代码「瞎编 API、配置出错、专业知识幻觉」的老问题。**
---
## 🏗️ 什么是 MapLibre Agent Skills
MapLibre 官方为 Cursor、Claude Code、Copilot 等 AI 编程工具定制的**专业技能库**,遵循 agentskills.io 开放标准,封装了:
- 官方 API 规范
- 最佳实践
- 避坑指南
- 瓦片服务配置
- 迁移方案
**核心价值**自然语言一句话AI 直接输出可上线的 MapLibre 标准代码。
---
## ✅ v1.0.0 核心能力2026 年 5 月)
### 1. 版本正式稳定
- 5 月 1 日 API 冻结
- 企业项目、生产环境可直接落地
### 2. 五大官方核心技能
| 技能 | 功能 | 解决痛点 |
|------|------|---------|
| **Mapbox 一键迁移** | 自动移除 Token、替换依赖、改写样式地址、适配插件 | 告别手动逐行修改 |
| **开源瓦片源大全** | 集成 OSM/PMTiles/MBTiles/Planetiler | S3/R2 无服务器托管 |
| **PMTiles 最佳实践** | 前端直接加载海量数据,内置缓存策略 | 无需搭建瓦片服务器 |
| **Martin 瓦片服务器** | 明确 YAML 配置、环境变量优先级、反向代理 | **AI 生成配置错误率从 78% → 5%** |
| **云原生数据直读** | 浏览器加载 COG/FlatGeobuf/GeoParquet | 无需后端预处理 |
### 3. 4-5 月迭代亮点
- 优化技能触发逻辑,减少误唤醒,降低 Token 消耗
- 新增专业基线测试机制,保证 AI 输出严谨合规
- 适配全主流 AI 编辑器:**Cursor / Claude Code / GitHub Copilot / Windsurf / Gemini CLI**
---
## 🔮 未来路线Q2-Q3 规划)
| 规划 | 说明 |
|------|------|
| 专业地图制图 | 图层排序、字体精灵、无障碍地图设计 |
| Google Maps 迁移 | 一键迁移至 MapLibre |
| 高阶可视化 | 热力图、分级设色、点聚合、3D 动画 |
| 跨端适配 | Web 端与 MapLibre Native 差异适配 |
---
## 💻 快速上手
```bash
# 安装全部官方技能
npx skills add maplibre/maplibre-agent-skills
# 按需安装单个技能(轻量化无侵入)
npx skills add maplibre/maplibre-agent-skills/pmtiles
```
**使用示例**
> "帮我把现有 Mapbox 项目迁移到 MapLibre用 PMTiles 托管矢量瓦片,配置 Martin 服务"
→ AI 自动调用官方技能,直接产出可运行的完整代码 + 配置文件。
---
## 📊 对 GIS 开发者的影响
| 维度 | 影响 |
|------|------|
| **提效** | 基础配置、项目迁移、瓦片服务搭建全交给 AI |
| **质量** | 官方规范约束,告别 API 幻觉 |
| **门槛** | 前端/后端开发者也能快速上手 WebGIS |
| **行业** | 垂直领域「官方 Agent 技能化」已成定局 |
---
## 🔗 行业趋势
MapLibre 是首个发布官方 Agent Skills 的开源 GIS 库。预计 **Cesium、OpenLayers 等开源 GIS 库必将跟进**
垂直领域的「官方 Agent 技能化」正在成为趋势——不仅是 GIS其他专业领域金融、医疗、法律也会出现类似模式。
---
## 🔗 关联资源
- [[Skyvern研究]](浏览器自动化 Agent
- [[Skill自动化管理方法]]Skill 基础设施管理)
- [[程序员最常用10个AI提示词]](提示词工程)
---
*研究完成2026-05-02 | MapLibre Agent Skills v1.0.0WebGIS 开发进入 AI 专业化时代*

View File

@@ -0,0 +1,99 @@
---
created: 2026-05-02
type: source
tags: [Obsidian, 微信公众号, 发布, 插件, 公众号发布助手, Markdown, HTML, BRAT]
source: "https://mp.weixin.qq.com/s/rQwjzPHY8oEW5RyLhwBEIg"
author: yoffie
---
# Obsidian 一键复制公众号HTML格式 — 插件方案
> 来源:微信公众号 **yoffie**
> 链接:<https://mp.weixin.qq.com/s/rQwjzPHY8oEW5RyLhwBEIg>
> 归档时间2026-05-02
---
## 📌 核心需求
在 Obsidian 里编辑好文章 → **一键预览公众号效果****一键发布到公众号草稿箱**
---
## 🔧 插件 1公众号发布助手obsidian-mp-publisher
### 安装方式
**通过 BRAT 插件安装**(尚未上架社区插件市场):
1. Obsidian → 设置 → 第三方插件 → 关闭安全模式
2. 搜索安装 **BRAT**(用于安装 Beta 版插件)
3. 复制插件地址:`https://github.com/joeytoday/obsidian-mp-publisher`
4. BRAT → "Add beta plugin" → 粘贴地址 → 确定
### 核心功能
| 功能 | 说明 |
|------|------|
| **一键发布** | 左侧工具栏发布按钮,配置公众号信息后直接发布到草稿箱 |
| **公众号预览** | 编辑器右侧顶部出现"公众号预览"按钮 |
| **主题编辑** | Ctrl+P 打开主题设置,支持自定义 CSS |
| **自定义样式** | 可复制预设主题 CSS让 AI 按需求调整 |
### 使用流程
```
Obsidian 编辑 Markdown
Ctrl+P 选择主题样式
右侧顶部"公众号预览"确认效果
左侧"发布"按钮 → 一键发布到草稿箱
```
---
## 🔧 插件 2Markdown 格式编辑助手obsidian-editing-toolbar
### 安装方式
**手动安装**(如社区插件市场打不开):
1. 下载 Release`https://github.com/PKM-er/obsidian-editing-toolbar`
2. 找到 `main.js``manifest.json``styles.css` 三个文件
3. 进入 `.obsidian/plugins` 目录
4. 创建文件夹 `editing-toolbar`
5. 将三个文件放入
6. 打开 Obsidian启用插件
### 核心功能
- 提供类似 Word 的富文本编辑工具栏
- 选中文字后点击工具栏按钮即可应用样式
- 不熟悉 Markdown 语法的用户的福音
---
## 💡 自定义主题技巧
**自定义主题 = AI 的主场**
1. 复制预设主题的 CSS
2. 发给 AI如 Claude/Cursor
3. 描述你想要的公众号样式效果
4. AI 帮你调整 CSS
5. 粘贴回 Obsidian 主题设置
---
## 🔗 关联资源
- [[微信公众号文章编写与发布]]md2wechat CLI 方案)
- [[Hermes Agent接入Obsidian内容生产线]]Obsidian + Agent 工作流)
- [[Obsidian多端同步方案]]Remotely Save + 坚果云)
- [[Obsidian图片整理术]]Image Converter 插件)
---
*研究完成2026-05-02 | Obsidian 一键发布公众号插件方案obsidian-mp-publisher + editing-toolbar*

View File

@@ -0,0 +1,128 @@
---
created: 2026-05-02
type: source
tags: [Obsidian, 图片管理, Image Converter, 插件, 笔记整理, 知识库]
source: "https://mp.weixin.qq.com/s/UrQ9cpX5342hhkOpLJXWjQ"
author: obsidian指南
---
# Obsidian 图片整理术 — Image Converter 插件工作流
> 来源:微信公众号 **obsidian指南**
> 链接:<https://mp.weixin.qq.com/s/UrQ9cpX5342hhkOpLJXWjQ>
> 归档时间2026-05-02
---
## 📌 核心问题
Obsidian 图片管理的两大痛点:
1. **文件名乱码** — 粘贴后变成一长串看不懂的字符
2. **体积太大** — 微信截图默认 PNG文件大且公众号不支持
---
## 🔧 四步解决方案
### 第一步:固定图片存放位置
**设置路径**:设置 → 文件与链接 → 附件默认存放路径
推荐选项:**当前文件所在文件夹下指定的子文件夹**
文件夹名:`images`
**效果**
```
写作总结/
└── images/ ← 这篇笔记的所有图片
项目计划/
└── images/ ← 这篇笔记的所有图片
```
每篇笔记的图片独立存放,再也不乱套。
### 第二步:安装 Image Converter 插件
- 社区插件市场搜索 `Image Converter`
- 安装并启用
### 第三步:自动命名图片
**Filename 格式设置**
| 格式 | 效果 |
|------|------|
| `{{noteName}}-{{timestamp}}` | 笔记名-时间戳 |
| `{{noteName}}-图片` | 笔记名-图片 |
| `{{year}}年{{month}}月-{{noteName}}` | 年月-笔记名 |
**效果**
```
公众号写作-1776250760498.png
教程大纲-1776250761234.png
```
### 第四步:自动压缩图片
**推荐设置**
- 输出格式:**JPEG**
- 压缩质量:**85%**
**为什么选 JPEG**
- ✅ 公众号文章支持
- ✅ 体积比 PNG 小很多
- ✅ 网页兼容性好
- 💡 如果主要本地使用,可选 WebP更省空间
---
## 📋 完整工作流
```
截图/Ctrl+C 复制图片
Ctrl+V 粘贴到 Obsidian
自动完成:
1. 图片存入对应笔记的 images 文件夹
2. 文件名变成"笔记名-时间戳.jpeg"
3. 格式从 PNG 优化为 JPEG
```
---
## 🏆 四大好处
| 好处 | 说明 |
|------|------|
| **管理方便** | 一看名字就知道是哪篇笔记的图片 |
| **节省空间** | PNG → JPEG体积减少 **50-70%** |
| **发布省事** | 公众号不用手动转格式,大于 2M 的情况少很多 |
| **查找快捷** | 文件名带笔记名,搜索一找一个准 |
---
## 💡 实用技巧
### 组合拳Image Converter + Excalidraw
```
Excalidraw 画图 → 导出图片
粘贴进 Obsidian → Image Converter 自动处理
```
### 配合模板使用
设置自动图片引用格式,让图片在笔记里显示更整齐。
---
## 🔗 关联资源
- [[Hermes Agent接入Obsidian内容生产线]]Obsidian + Agent 工作流)
---
*研究完成2026-05-02 | Obsidian 图片管理最佳实践Image Converter 插件配置指南*

View File

@@ -0,0 +1,100 @@
---
created: 2026-05-02
type: source
tags: [Obsidian, 多端同步, Remotely Save, 坚果云, WebDAV, 免费方案, 跨设备]
source: "https://mp.weixin.qq.com/s/RV2hWtg8Q46EeeKH_Cmzuw"
---
# Obsidian 多端同步 — Remotely Save + 坚果云 WebDAV
> 来源:微信公众号
> 链接:<https://mp.weixin.qq.com/s/RV2hWtg8Q46EeeKH_Cmzuw>
> 归档时间2026-05-02
---
## 📌 方案概述
**Remotely Save 插件 + 坚果云 WebDAV** → 实现 PC + PC + 安卓三端**免费实时同步**
**核心优势**
-**完全免费**(坚果云免费版每月 1GB 上传流量)
-**三端互通**(多台电脑 + 多部手机)
-**国内稳定**(无需科学上网)
-**操作简单**(注册坚果云即可)
---
## 🔧 四步配置法
### 第一步:准备工作
1. 所有设备安装 Obsidian
2. 注册**坚果云账号**(免费版即可)
3. 获取 WebDAV 信息:
- **服务器地址**`https://dav.jianguoyun.com/dav/`
- **账号**:坚果云手机号/邮箱
- **密码**WebDAV **专属密码**(不是登录密码!)
> 💡 在坚果云设置中获取**第三方 WebDAV 密码**
### 第二步:安装插件
- 打开 Obsidian → 设置 → 第三方插件
- 关闭安全模式
- 搜索 **"Remotely Save"**
- 安装并启用
### 第三步:配置同步
| 配置项 | 值 |
|--------|---|
| 远程服务 | **webdav** |
| 服务器地址 | `https://dav.jianguoyun.com/dav/` |
| Username | 坚果云账号 |
| Password | **WebDAV 专属密码** |
**同步频率设置**
- 保存时自动同步
- 启动时自动同步
- 离开编辑页时同步
- 首次同步可开到 100秒级同步
### 第四步:开启同步
- 笔记页面左上角点击**同步按钮**
- 首次同步完成后自动同步
---
## 📱 手机端配置
- 操作与 PC 端**完全相同**
- ⚠️ **重要**:所有新设备必须在**全新的知识库**里同步,不要用已有库覆盖!
---
## 🔐 隐私安全
- 数据通过 WebDAV 协议传输
- 加密/解密都在**本地设备**完成
- 云服务商无法查看笔记内容
---
## 💡 使用建议
- 坚果云免费版每月 **1GB** 上传流量,个人笔记完全够用
- 图片多了可用其他插件(如 Image Converter压缩处理
- 冲突检测:自动检测冲突文件,避免数据丢失
---
## 🔗 关联资源
- [[Obsidian图片整理术]]Image Converter 插件)
- [[Hermes Agent接入Obsidian内容生产线]]Obsidian + Agent 工作流)
---
*研究完成2026-05-02 | Obsidian 多端同步免费方案Remotely Save + 坚果云 WebDAV 配置指南*

View File

@@ -0,0 +1,78 @@
# 万豪数字化转型与 Harness 合作研究
> 来源: AWS 赞助演示文稿Harness 赞助)
> 研究日期: 2026-05-07
> 文件: 万豪的数字化转型与Harness携手打造未来.pdf
## 演示概述
- **标题**: Engineering the Future of Hospitality: Marriott's Global Digital Transformation
- **赞助商**: Harness + AWS
- **演讲者**:
- Jyoti BansalHarness
- Nick DurkinHarness
- Adnan HaqHarness
- Sean CorkumMarriott International
## Harness 公司简介
- **使命**: Enable the world's 37 million software developers to deliver code quickly, reliably, efficiently, and securely
- **定位**: 软件开发效能平台Software Delivery Platform
- **核心领域**: CI/CD、软件交付、DevOps、软件治理
## AI 对工程效能的影响数据
| 指标 | 变化 |
|------|------|
| AI 编程采用率 | **+25%** |
| 交付稳定性 | **-7.2%**(下降) |
| 交付吞吐量 | **-1.5%**(下降) |
> ⚠️ 有趣发现AI 采用率上升,但交付稳定性和吞吐量反而下降。可能原因:
> - AI 生成代码需要更多审查
> - 代码质量参差不齐
> - 团队还在适应期
## 万豪数字化转型背景
- **万豪国际**: 全球最大的酒店集团之一
- **转型范围**: 全球数字化
- **核心挑战**: 如何在大规模组织中提升软件工程效能
## 关键议题(推测)
基于演讲者和主题,演示可能涵盖:
1. **万豪的工程挑战**
- 全球分布式团队
- 遗留系统现代化
- 多品牌多系统的整合
2. **Harness 平台能力**
- CI/CD 管道优化
- 软件交付自动化
- 安全与合规
- 成本优化FinOps
- 软件目录与治理
3. **转型成果**
- 交付速度提升
- 部署频率增加
- 故障恢复时间缩短
- 开发者体验改善
## 与我们的关联
- **DevOps 实践**: Harness 是现代软件交付平台的代表
- **AI 编程影响**: 数据显示 AI 采用率↑但稳定性↓,值得关注
- **工程效能**: 大型组织数字化转型的参考案例
## 待补充
由于 PDF 无法完整解析,以下内容缺失:
- [ ] 万豪具体转型策略
- [ ] Harness 平台在万豪的具体应用
- [ ] 转型成果的具体数据
- [ ] 最佳实践和建议
> 注: 需要安装 pdftotext 或 PyPDF2 才能完整提取 PDF 内容。

View File

@@ -0,0 +1,215 @@
---
created: 2026-05-02
type: concept
tags: [布拉格散射, Bragg scattering, 雷达, 遥感, 海面, 多普勒, 无人机测流]
---
# 布拉格散射Bragg Scattering
> 电磁波与周期性结构相互作用产生相干散射的物理机制
> 归档时间2026-05-02
---
## 📌 基本原理
### 布拉格条件
当入射波的波长 λ 与散射体周期性结构的间距 d 满足特定关系时,会发生**相干增强散射**
```
nλ = 2d·sin(θ)
其中:
n = 散射级数(通常 n=1
λ = 入射电磁波波长
d = 散射体结构周期(如水面波纹波长)
θ = 入射角(波束与法线夹角)
```
**物理图像**:入射波被周期性排列的散射体散射,当各散射波的**相位差**为 2π 的整数倍时,发生**相长干涉**,回波信号显著增强。
---
## 🌊 在雷达海面测流中的应用
### 海面粗糙元与布拉格共振
海面存在**毛细重力波**capillary-gravity waves其波长与雷达波长匹配时发生布拉格共振
```
λ_雷达 / 2 = λ_水面波
即:雷达波长的一半 = 水面波纹波长
```
| 雷达波段 | 频率 | 波长 | 共振水面波波长 |
|---------|------|------|-------------|
| X波段 | 10 GHz | 3 cm | **1.5 cm** |
| C波段 | 5 GHz | 6 cm | **3 cm** |
| Ku波段 | 14 GHz | 2.1 cm | **1.05 cm** |
| Ka波段 | 35 GHz | 0.86 cm | **0.43 cm** |
### 多普勒频移与流速
布拉格散射的回波携带多普勒频移,与**沿雷达视线方向的水面波相速度**相关:
```
f_d = 2 × v_phase × cos(θ) / λ_雷达
其中 v_phase 是水面波的相速度
```
**关键关系**
```
v_phase = √(g·λ_w/(2π) + 2π·σ/(ρ·λ_w))
其中:
g = 重力加速度
λ_w = 水面波波长
σ = 表面张力
ρ = 水密度
```
---
## 🔍 布拉格散射的物理机制
### 1. 小扰动近似Small Perturbation Approximation
当海面粗糙度远小于雷达波长时σ_h << λ),可用一阶小扰动理论:
```
σ⁰ (归一化雷达截面) ∝ |R|² · S(k_Bragg)
其中:
R = 菲涅尔反射系数
S(k) = 海面波数谱wave spectrum
k_Bragg = 2k·sin(θ) = 布拉格波数
```
### 2. 双尺度模型Two-Scale Model
实际海面包含**长波**(重力波)和**短波**(毛细波):
```
长波(米级)→ 调制局部入射角和速度
短波(厘米级)→ 产生布拉格散射
```
**调制机制**
- **倾斜调制**Tilt modulation长波改变局部入射角
- **流体力学调制**Hydrodynamic modulation长波改变短波的能量分布
- **遮蔽效应**Shadowing长波波谷遮蔽部分散射体
### 3. 极化特性
| 极化 | 散射强度 | 特点 |
|------|---------|------|
| VV | 较强 | 对布拉格波敏感,适用于流速测量 |
| HH | 较弱 | 易受非布拉格散射干扰 |
| HV/VH | 很弱 | 交叉极化,主要来自非布拉格散射 |
**VV 极化是海面测流的首选**,因为布拉格散射在 VV 极化下最强。
---
## ⚡ 布拉格散射在测流中的误差来源
### 1. 非布拉格散射干扰
```
总回波 = 布拉格散射 + 非布拉格散射(白冠、破碎波)
非布拉格散射影响:
- 高风速(>7 m/s时显著增加
- 导致多普勒频移偏移
- 误差可达 0.2-0.5 m/s
```
### 2. 短波相速度与长波叠加
```
测量的多普勒速度 = 布拉格波相速度 + 长波轨道速度 + 水流速度
如果仅用布拉格波相速度反演,会引入系统误差
```
**修正方法**
- 使用双频雷达消除长波影响
- 建立经验校正模型
### 3. 风致偏移
风会使短波的相速度偏离静水面理论值:
```
Δv_wind ≈ 0.1-0.3 m/s风速 5-10 m/s 时)
```
### 4. 入射角敏感性
```
当 θ 接近布拉格角时,信号最强
偏离布拉格角时,信号按 cos⁴(θ) 衰减
```
---
## 📊 布拉格散射 vs 其他散射机制
| 散射机制 | 适用条件 | 散射体 | 多普勒特性 |
|---------|---------|--------|-----------|
| **布拉格散射** | 低-中风速,小入射角 | 毛细重力波 | 稳定,可预测 |
| **白冠散射** | 高风速(>7 m/s | 破碎波浪 | 随机,不可预测 |
| ** specular 反射** | 极低入射角 | 平静水面 | 零频移 |
| **体积散射** | 降雨时 | 雨滴 | 附加频移 |
---
## 🔧 应用要点
### 最佳测量条件
| 参数 | 推荐值 | 原因 |
|------|--------|------|
| 风速 | < 7 m/s | 避免非布拉格散射干扰 |
| 入射角 | 20-60° | 布拉格共振最佳 |
| 极化 | VV | 布拉格散射最强 |
| 海况 | 低-中等 | 毛细波稳定存在 |
### 频率选择
```
低频L/C波段
- 共振波长较长(几厘米)
- 对应较慢的相速度
- 适合低流速测量
高频X/Ku波段
- 共振波长较短(~1cm
- 相速度较快
- 对高流速更敏感
```
---
## 📝 与无人机雷达测流的关系
在无人机雷达波测流中,布拉格散射是**核心物理机制**
```
无人机搭载雷达 → 照射海面 → 毛细波产生布拉格散射
→ 回波多普勒频移 → 反演水面波速度 → 推算水流速度
```
**误差链路**
```
布拉格波相速度误差 → 多普勒频移测量误差 → 流速反演误差
```
控制布拉格散射的不确定性(风影响、非布拉格干扰、入射角偏差)是提高测流精度的关键。
---
*研究完成2026-05-02 | 布拉格散射物理机制与雷达测流应用整理*

View File

@@ -0,0 +1,222 @@
---
created: 2026-05-02
type: source
tags: [无人机, CAAC, 口诀, 高频考点, 理论考试, 多旋翼, 超视距, 机长]
source: "https://mp.weixin.qq.com/s/b0-OU4t851lkKk0TFMtFVQ"
---
# 无人机 CAAC 口诀 + 考点2026 最新版)
> 来源:微信公众号
> 链接:<https://mp.weixin.qq.com/s/b0-OU4t851lkKk0TFMtFVQ>
> 归档时间2026-05-02
---
## 一、操作与应急类1-20
### 🧭 答题技巧口诀
| # | 口诀 | 说明 |
|---|------|------|
| 1 | 看到**操纵**,选有操纵 | 操控类题 |
| 2 | 看到**链路**,选链路 | 通信类题 |
| 3 | 看到**平飞**,选平飞 | 飞行状态题 |
| 4 | **左坡** → 选**右压杆** | 坡度修正 |
| 5 | **右坡** → 选**左压杆** | 坡度修正 |
| 6 | **左侧滑****向左转** | 侧滑修正 |
| 7 | 看到**粗猛**,选**没有粗猛**的 | 操作规范题 |
| 8 | 看到**容器式发射装置**,选它 | 发射装置题 |
| 9 | **向右偏离****向左压杆** | 偏离修正 |
| 10 | **向左偏离****向右压杆** | 偏离修正 |
| 11 | **左偏力矩较大** → 选**右偏** | 力矩平衡 |
### ⏱️ 飞行时间口诀
| 场景 | 时间 |
|------|------|
| 山区飞行 | **20 分钟** |
| 平原飞行 | **30 分钟** |
| 晚上山区飞行 | **15 分钟** |
### 📏 农业/水域飞行高度
| 场景 | 高度 |
|------|------|
| 农业平原飞行 | **150 米** |
| 山区农业飞行 | **300 米** |
| 水域渔业飞行 | **200 米** |
### 🚨 应急口诀
```
信号丢失切姿态,逆风修正半杆量
电机失效稳速度,多旋靠余桨调整
电压骤降立即返,缩短航程不绕弯
```
---
## 二、法规与空域类21-40
### 📋 无人机分类
| 类型 | 空机重量 | 最大起飞重量 | 执照要求 |
|------|---------|-------------|---------|
| **微型** | ≤ 0.25 kg | - | 非商业无需 |
| **轻型** | ≤ 4 kg | ≤ 7 kg | 超视距需持证 |
| **小型** | ≤ 15 kg | ≤ 25 kg | 商业必须持证 |
| **中型** | ≤ 150 kg | - | 需对应等级执照 |
### 🛫 空域管理
| 空域 | 要求 |
|------|------|
| **管制空域** | 提前 **12 小时** 提交飞行计划并获批 |
| **适飞空域** | 平台实时报备即可起飞 |
| **机场净空保护区** | 限制飞行 |
| **军事禁区** | **严禁飞行**,违者追究法律责任 |
| **城市核心区** | 需提前申请并获得批准 |
| **边境地区** | 严禁越境飞行 |
### ⚖️ 法规要点
| 项目 | 要求 |
|------|------|
| 实名登记 | **250g 以上**必须实名登记 |
| 第三者责任险 | 商业飞行保额 ≥ **100 万元** |
| 视距内飞行 | 半径 ≤ **500 米**,高度 ≤ **120 米** |
| 超视距飞行 | 需持**机长执照**并申请空域 |
| 夜间飞行 | 需**开启灯光系统** |
| 农用无人机 | **150kg 以下**在农林适飞空域可**豁免执照** |
| 违规处罚 | 最高可处 **10 万元**罚款,情节严重行政拘留 |
### 🔴 "黑飞"行为
- 无证飞行
- 超视距飞行未报备
- 禁飞区飞行
---
## 三、飞行原理与系统41-60
### ✈️ 飞行原理
| # | 知识点 | 要点 |
|---|--------|------|
| 41 | 升力原理 | 伯努利原理 + 气流分离,迎角增大升力增大 |
| 42 | 推力与速度 | 油门推,速度提,推力大,飞得急 |
| 43 | GPS 定位 | 至少需 **4 颗卫星**实现三维定位 |
| 44 | 姿态模式ATT | 仅保持高度,需**手动控制水平位置** |
| 45 | 返航逻辑 | 低电量触发返航阈值通常为 **30%** 电量 |
| 50 | 重心调整 | 重心偏移会导致悬停时**持续漂移** |
| 51 | 风对飞行 | 逆风阻力大,顺风速度快 |
### 🔧 飞控系统
| 飞控 | 特点 |
|------|------|
| **多轴 KK** | 价格便宜,硬件结构简单 |
| **APM** | 配有地面站软件,**代码开源** |
| **DJI NAZA** | 稳定,商业软件,**代码不开源** |
### 🔋 电池与电机
| 知识点 | 要点 |
|--------|------|
| 电调 "30A" | 最大**瞬间电流** 30 安培 |
| 锂电池电压 | 3S = 11.1V4S = 14.8V |
| 电池存储 | 电量保持 **40%-60%** |
| 低温影响 | 容量下降,电机启动困难 |
| 电机规格 | **前两位**=定子直径,**后两位**=定子高度 |
### 🔄 多旋翼特性
- **对角电机转向相反** → 抵消反扭矩
- **六轴无人机**可承受单电机失效
- 桨叶具扭转特性 → 桨根升力系数 > 桨尖
---
## 四、气象与环境61-81
### 🌡️ 安全飞行条件
| 条件 | 标准 |
|------|------|
| 安全风速 | 多旋翼 ≤ **8 米/秒**,超过停飞 |
| 能见度 | 低于 **500 米**禁止飞行 |
| 轻型真高 | ≤ **120 米** |
| 微型真高 | ≤ **50 米** |
| 农业飞行最大高度2026 新规) | **30 米**,超出需特殊许可 |
### 🌦️ 天气应对口诀
```
雾天避障导航,起降选迎风
冷锋过境时选下降,避免颠簸
积云高,雨云低,层云平,飞要避
```
| 天气 | 应对措施 |
|------|---------|
| 高温 | 降低电池续航,影响电子设备 |
| 高湿度 | 易短路,加强防潮 |
| 沙尘 | 损坏电机和传感器,飞行后彻底清洁 |
| 雨天 | **严禁在雨中飞行** |
| 雷电 | **立即返航**,避免空旷区域停留 |
| 气压突变 | 调油门校传感,避免高度偏差 |
### 🏔️ 特殊地形
| 地形 | 要点 |
|------|------|
| 山谷 | 背风面逆风飞行易遇**乱流** |
| 山脊 | 气流不稳定,需保持高度 |
| 海拔升高 | 空气密度↓ → 升力↓ |
### 💨 风的影响
| 场景 | 应对 |
|------|------|
| 风中悬停 | 选**逆风**,保持稳定 |
| 侧风飞行 | 需**压杆修正**航向 |
| 乱流 | 保持油门稳定,**避免剧烈操作** |
---
## 📝 速记口诀汇总
### 坡度修正
```
左坡右压,右坡左压
左偏右压,右偏左压
```
### 应急处理
```
信号丢失 → 切姿态,逆风修正半杆量
电机失效 → 稳速度,多旋靠余桨调整
电压骤降 → 立即返,缩短航程不绕弯
```
### 天气口诀
```
雾天避障,起降迎风
冷锋下降,避开颠簸
积云高,雨云低,层云平,飞要避
```
---
## 🔗 关联资源
- [[无人机CAAC执照]](证书体系概览)
- [[无人机考证-中型多旋翼知识点]](完整知识点手册)
- [[CAAC无人机理论考试1300题讲解]]B站视频课程
- [[无人机CAAC执照理论基础知识]](法规+系统+安全完整版)
---
*研究完成2026-05-02 | 81 条口诀 + 高频考点,考前冲刺必备*

View File

@@ -0,0 +1,255 @@
---
created: 2026-05-02
type: source
tags: [无人机, CAAC, 多旋翼, 理论考试, 执照, 空域管理, 法规, 安全]
source: "https://mp.weixin.qq.com/s/ZCVxbd8hKuhb1qbaWO4L4A"
---
# 无人机 CAAC 执照理论基础知识(多旋翼)— 核心要点
> 来源:微信公众号
> 链接:<https://mp.weixin.qq.com/s/ZCVxbd8hKuhb1qbaWO4L4A>
> 归档时间2026-05-02
---
## 一、无人机分类
### 微型 vs 轻型
| 参数 | 微型 | 轻型 |
|------|------|------|
| **空机重量** | < 0.25 kg | ≤ 4 kg |
| **最大起飞重量** | - | ≤ 7 kg |
| **最大飞行真高** | ≤ 50 m | - |
| **最大平飞速度** | ≤ 40 km/h | ≤ 100 km/h |
| **执照要求** | 无需 | 无需 |
### 关键定义
- **空机重量**:机体 + 电池 + 燃料容器,**不含**燃料和任务载荷
- **最大起飞重量**:设计允许的最大正常起飞重量
- **飞行真高**:飞行器与地面投影的实时距离
---
## 二、操控员管理
### 执照要求
| 机型 | 是否需要执照 |
|------|-------------|
| 微型、轻型 | ❌ 无需 |
| 小型、中型、大型 | ✅ 需要 |
| 农用作业 | ❌ 无需(但需操作证书) |
### 责任保险
从事**经营性飞行**或使用**小型及以上**无人机从事非经营性飞行,**必须投保责任保险**。
### 未成年人限制
- 无民事行为能力人 → 只能操控**微型**
- 限制民事行为能力人 → 只能操控**微型、轻型**
- 必须有完全民事行为能力人**现场指导**
---
## 三、登记管理
### 登记类型
- **实名登记**:境内飞行必须
- **国籍登记**:境外飞行必须
- **不得双重国籍**
### 注销登记情形
1. 所有权/占有权变更
2. 退出使用、报废或失事
3. 所有权转移境外
---
## 四、空域和飞行活动管理 ⭐
### 管制空域(需申请)
真高 **120 米以上** + 以下区域:
| 区域类型 | 示例 |
|---------|------|
| 机场周边 | 机场及一定范围 |
| 军事区域 | 军事禁区、管理区 |
| 重要设施 | 发电厂、变电站、港口、铁路 |
| 敏感区域 | 核设施、易燃易爆品区域 |
| 边境 | 国界线、实际控制线 |
### 适飞空域(无需申请)
管制空域以外 = 适飞空域,微型/轻型/小型无人机在此飞行**无需申请**。
### 飞行活动申请
- 拟飞行前 **1 日 12 时前** 向 UOM 平台申请
- 管理机构 **1 日 21 时前** 作出决定
- **未经批准不得在管制空域飞行**
### 隔离飞行 vs 融合飞行
- **隔离飞行**:无人机与有人机**不同时**在同一空域
- **融合飞行****同时**在同一空域(需批准)
### 电子围栏
- 小型、中型、大型**必须安装**
- 重点地区和机场净空区的轻型**必须安装**
---
## 五、行为规范与避让规则
### 行为规范
1. 保持视距内飞行(微型)
2. 夜间/低能见度 → 开启灯光
3. **酒后 8 小时内**不得操控
4. 超视距飞行 → 掌握其他飞行器动态
5. 不得在药物影响下操控
### 避让规则
```
有人机 > 无动力航空器 > 地面/水上交通工具
单架 < 集群(单架避让集群)
微型 < 其他无人机
```
---
## 六、法律责任 ⭐
### 常见违规处罚
| 违规行为 | 处罚 |
|---------|------|
| 未经实名登记飞行 | ≤ 200 元,情节严重 2000-20000 元 |
| 无证操控(需持证机型) | 5000-50000 元,情节严重 1-10 万元 |
| 超出执照范围操控 | 2000-20000 元 + 暂扣 6-12 个月 |
| 管制空域内未经批准飞行 | ≤ 500 元,情节严重没收 + 1000-10000 元 |
| 改变出厂性能未更新信息 | 拒不改正 2000-20000 元 |
| 非法拥有/使用反制设备 | ≤ 5 万元,情节严重 5-20 万元 |
---
## 七、航空器知识 ⭐
### GNSS 系统
包括:**北斗BDS、GPS、GLONASS、伽利略GALILEO**
GNSS 信号弱的影响:
- 定位效果变差
- 光照充足时视觉系统可替代定位
### RTK实时动态测量技术
- 厘米级定位精度
- 由基准站 + 数据链 + 流动站组成
- 精度随距离增加而降低
### ADS-B 系统
- 广播式自动相关监视
- 实现飞行信息共享
- **不能**控制无人机刹停
### 通信频段
**2.4 GHz****5.8 GHz**,可智能切换
### 电池管理
| 参数 | 值 |
|------|---|
| 能量单位 | 瓦时Wh |
| 容量单位 | 毫安时mAh |
| 充电温度 | 5°C ~ 40°C |
| 存储电量 | 40% ~ 60% |
| 自放电保护 | 满电若干天后降至 60% |
### 姿态模式ATTI
GNSS 信号差 + 指南针受干扰 + 视觉不满足条件时进入:
- **水平方向漂移**
- **无法定点悬停**
- **无法自主刹车**
- → 尽快降落!
### 自动返航触发条件
- 电池电量不足
- 遥控器失联
- 图传信号丢失
- 操控员主动开启
### 返航高度设置
**必须高于周围最高建筑物的高度**
---
## 八、安全使用知识 ⭐
### 飞行前检查清单
1. ✅ 查询限飞禁飞区域
2. ✅ 查看天气(大风/雨雪/大雾不飞)
3. ✅ 等待良好 GNSS 信号
4. ✅ 检查机身/电机/电池/桨叶/遥控器
5. ✅ 选择开阔地面,对尾起飞
6. ✅ 移除保护罩
7. ✅ 确认电池电量
8. ✅ 检查螺旋桨安装正确且完好
### 特殊环境飞行
| 环境 | 注意事项 |
|------|---------|
| **夏季高温** | 飞行后**禁止立刻充电**(电池>40°C |
| **高原地区** | 减少载重、缓慢飞行、更换高原桨 |
| **山区** | 信号阻挡、乱流、磁场干扰指南针 |
| **低温环境** | 电池预热、悬停1分钟加热、抗风能力减弱 |
| **高压线附近** | 干扰信号、视觉系统可能失效 |
### 电池安全
- ❌ 鼓包/漏液 → **严禁使用**
- ❌ 摔落/撞击 → **不可再用**
- ❌ 接触液体 → **不可再用**
- ❌ 强静电/磁场 → 保护板失灵
- ✅ 长期存放40%-60%,每 3 个月充放电一次
### 指南针校准注意事项
- 校准时**不要携带铁磁物质**(手机等)
- 避开:磁矿、停车场、地下钢筋建筑区域
- 多次失败 → **转移位置**再校准
### 信号中断处理
- **遥控器信号中断** → 调整天线,等待返航,**不要胡乱打杆**
- **图传中断但数据还在** → 开启自动返航或手动操控返航
- **大风中** → 降低高度,尽快返航或就近降落
---
## 🔗 关联资源
- [[无人机CAAC执照]](证书体系概览)
- [[无人机考证-中型多旋翼知识点]](完整知识点手册)
- [[CAAC无人机理论考试1300题讲解]]B站视频课程研究
---
*研究完成2026-05-02 | CAAC 多旋翼理论基础知识完整整理*

View File

@@ -0,0 +1,191 @@
---
created: 2026-05-02
type: source
tags: [无人机, CAAC, 执照考试, 报考流程, UOM平台, 理论考试, 实践考试, 官方攻略]
source: "https://mp.weixin.qq.com/s/osybdMMCBVsvuDFc5vdXPg"
author: 陈右东(编辑)
---
# 一文读懂CAAC 无人机执照考什么?怎么考?(官方攻略)
> 来源:微信公众号
> 链接:<https://mp.weixin.qq.com/s/osybdMMCBVsvuDFc5vdXPg>
> 依据:《民用无人驾驶航空器操控员执照考试管理办法》
> 发布:中国民用航空局飞行标准司
> 归档时间2026-05-02
---
## 📌 两个核心考试
| 考试 | 内容 | 形式 |
|------|------|------|
| **理论考试** | 无人机航空知识 | 闭卷,全是选择题 |
| **实践考试** | 实操技能(综合问答、口试、实践飞行、地面站) | 现场操作 |
---
## 01 理论考试
### 一、谁可以考?
1. 持有效身份证件
2. 完成相应等级培训,由**授权教员**签字认可能力
3. 补考需教员再次签字证明已补训
### 二、怎么报名?
- 通过 **UOM 平台**(民用无人驾驶航空器综合管理平台)
- 自行或通过机构报名
- 至少提前 **5 天** 提交申请
### 三、考试当天注意
| 事项 | 要求 |
|------|------|
| 到达时间 | 提前 **30 分钟** |
| 证件 | 身份证/护照/户籍证明 |
| 草稿纸 | 不得自带,需向监考申请,考完留下 |
| 离场 | 中途离开视为**主动结束考试** |
### 四、考不过/缺考
| 情形 | 后果 |
|------|------|
| **缺考** | **28 天后**才能再约考 |
| **补考** | **28 天后**可重新报考同一科目 |
### 五、考什么?
**形式**:机考,选择题
**考试范围**
1. 航空法规
2. 无人机知识
3. 飞行性能
4. 气象
5. 操作程序
6. 飞行原理
7. 无线电
8. 应急处置
9. 教学法知识(**教员等级加考**
---
## 02 实践考试
### 一、谁可以考?
1. 完全民事行为能力 + 身份证件
2. 理论考试通过后 **24 个月内** 申请
3. 完成飞行训练,教员签字证明
4. 补考需重新完成补充训练并签字
### 二、报名与入场
- 同样通过 UOM 平台提前 **5 天** 报名
- 提前 30 分钟到
- 带身份证 + **对应无人机设备**供检查
### 三、考试顺序
| 等级 | 顺序 |
|------|------|
| **非教员** | 先综合问答 → 通过后考飞行/地面站 |
| **教员** | 先飞行 → 后口试 |
### 四、补考与有效期 ⭐
| 情形 | 间隔 |
|------|------|
| **缺考** | **14 天后**可再约 |
| **补考** | **14 天后**可申请 |
⚠️ **关键限制**
> 实践考试从**第一科通过起**,有效期只有 **60 天**
> 必须在这段时间内通过所有科目,否则**全部重考**。
### 五、考什么?
#### 综合问答(执照/超视距)
- **10 道选择题**
- **20 分钟**
- **7 分及格**
#### 口试(教员等级)
- 面对面问答
- **5 道题**,答对 **3 道**通过
#### 地面站(超视距)
分为四个阶段,**逐阶段通过**
1. 预先准备
2. 飞行前准备
3. 飞行实施
4. 飞行后讲评
**考试范围**
- 无人机系统基础知识
- 操控原理
- 动力系统选配
- 通用与应急操作程序
- 教学能力(教员等级)
---
## 📊 考试流程总览
```
报名UOM 平台,提前 5 天)
理论考试(机考,选择题)
↓ 通过后 24 个月内
实践考试(综合问答 → 飞行/地面站)
↓ 60 天内通过全部科目
获取执照
```
---
## 🔢 关键数字速记
| 项目 | 数值 |
|------|------|
| 报名时间 | 提前 **5 天** |
| 到场时间 | 提前 **30 分钟** |
| 理论缺考/补考间隔 | **28 天** |
| 实践缺考/补考间隔 | **14 天** |
| 实践考试有效期 | **60 天**(从首科通过起) |
| 理论成绩有效期 | **24 个月** |
| 综合问答题数 | **10 题** |
| 综合问答时长 | **20 分钟** |
| 综合问答及格分 | **7 分** |
| 口试题数 | **5 题**,对 **3 题**通过 |
| 地面站阶段数 | **4 个阶段**(逐阶段通过) |
---
## 🌐 官方资源
- **UOM 平台**:民用无人驾驶航空器综合管理平台
- **考点数量**83 个
- **培训机构**3149 个
> 所有考试安排、考点信息、认证培训机构名单,都可在 UOM 官网查询。
---
## 🔗 关联资源
- [[无人机CAAC执照]](证书体系概览)
- [[无人机考证-中型多旋翼知识点]](完整知识点手册)
- [[CAAC无人机理论考试1300题讲解]]B站视频课程
- [[无人机CAAC执照理论基础知识]](法规+系统+安全)
- [[无人机CAAC口诀与高频考点]]81条口诀
---
*研究完成2026-05-02 | CAAC 无人机执照官方考试攻略,报考全流程梳理*

View File

@@ -0,0 +1,219 @@
---
created: 2026-05-02
type: concept
tags: [无人机, 雷达波测流, 误差分析, 水文测量, 表面流速, 多普勒雷达]
---
# 无人机雷达波测流误差分析
> 无人机搭载雷达波流速仪进行水面流速测量的误差来源与控制
> 归档时间2026-05-02
---
## 📌 雷达波测流原理
**多普勒效应**:雷达波照射水面,水面粗糙元(波纹、微结构)反射回波,产生多普勒频移,频移大小与水面运动速度成正比。
```
f_d = 2 × v × cos(θ) / λ
其中:
f_d = 多普勒频移
v = 水面流速
θ = 雷达波束入射角
λ = 雷达波长
```
**流速计算**
```
v = f_d × λ / (2 × cos(θ))
```
---
## 🔍 误差来源分析
### 1. 几何误差(系统误差)
#### 1.1 入射角误差
雷达波束与水面法线的夹角 θ 测量不准会直接导致流速计算误差:
```
Δv/v = tan(θ) × Δθ
当 θ = 45° 时tan(45°) = 1
Δθ = 1° → 相对误差 ≈ 1.7%
Δθ = 3° → 相对误差 ≈ 5.2%
```
**控制措施**
- 高精度 IMU 测定姿态角(精度 ≤ 0.1°)
- 雷达安装角度标定
#### 1.2 波束展宽误差
雷达波束有一定宽度(通常 3-12°照射区域内的流速不均匀会导致测量值偏差
```
波束宽度 β = 6°
流速梯度大时,误差可达 2-5%
```
#### 1.3 飞行高度影响
无人机高度影响照射面积:
```
照射面积 A ≈ π × (H × tan(β/2))²
H = 10m, β = 6° → A ≈ 0.009 m²误差小
H = 50m, β = 6° → A ≈ 0.22 m²空间平均效应
```
### 2. 物理误差(环境误差)
#### 2.1 风对水面粗糙元的影响
风会改变水面粗糙元的运动速度,导致雷达测量的"表观流速"≠真实水流速度:
```
v_表观 = v_水流 + v_风影响
风速 5 m/s 时,影响可达 0.1-0.3 m/s
风速 10 m/s 时,影响可达 0.3-0.6 m/s
```
**控制措施**
- 选择无风或微风条件(<3 m/s
- 建立风-流速修正模型
#### 2.2 波浪影响
水面波浪会产生附加多普勒频移:
- 长波(>1m影响较小
- 短波(<0.5m)影响显著,误差可达 0.2-0.5 m/s
#### 2.3 水流垂直分量
雷达波仅测量沿波束方向的分量,垂直方向的流速分量无法测量:
- 适用于均匀流,误差小
- 湍流、漩涡区域误差大
### 3. 仪器误差
#### 3.1 多普勒频移测量精度
| 参数 | 典型值 | 对应流速误差 |
|------|--------|------------|
| 频率分辨率 | 0.1 Hz | ±0.01-0.02 m/s |
| 采样率 | 100 Hz | ±0.05 m/s |
| 信噪比 > 20 dB | 良好 | ±0.03 m/s |
| 信噪比 < 10 dB | 差 | ±0.1-0.3 m/s |
#### 3.2 姿态传感器精度
| 传感器 | 精度 | 对流速误差影响 |
|--------|------|-------------|
| IMU 倾角 | ±0.1° | ±0.5-1% |
| IMU 偏航 | ±0.5° | ±1-2% |
| GPS 定位 | ±1 m | 高度标定误差 |
#### 3.3 时钟漂移
采样时钟漂移会导致频率测量偏差,通常影响 < 0.1%。
### 4. 数据处理误差
#### 4.1 频谱分析误差
```
FFT 频谱分辨率Δf = fs / N
fs = 100 Hz, N = 1024 → Δf ≈ 0.1 Hz
对应流速误差±0.01-0.02 m/s
```
#### 4.2 平均时间选择
```
平均时间太短 → 统计不充分,误差大
平均时间太长 → 忽略流速变化,响应慢
推荐10-30 秒
```
---
## 📊 综合精度评估
### 典型误差预算
| 误差源 | 误差贡献 | 权重 |
|--------|---------|------|
| 入射角测量 | ±1-2% | 25% |
| 风影响 | ±0.1-0.5 m/s | 30% |
| 波束展宽 | ±1-3% | 15% |
| 频谱分析 | ±0.01-0.05 m/s | 10% |
| 姿态传感器 | ±0.5-1% | 10% |
| 波浪影响 | ±0.1-0.3 m/s | 10% |
### 总精度
```
低流速(<1 m/s相对误差 5-10%
中流速1-3 m/s相对误差 3-8%
高流速(>3 m/s相对误差 2-5%
```
**综合精度**
- **绝对误差**±0.05-0.3 m/s
- **相对误差**±3-10%(取决于流速大小)
---
## 🔧 误差控制建议
### 最佳测量条件
| 参数 | 推荐值 | 原因 |
|------|--------|------|
| 风速 | < 3 m/s | 减少风对粗糙元的影响 |
| 波浪高度 | < 0.1 m | 减少波浪附加频移 |
| 飞行高度 | 10-30 m | 平衡照射面积与信噪比 |
| 入射角 | 30-60° | 最佳几何条件 |
| 平均时间 | 10-30 秒 | 统计稳定 |
| 水面条件 | 有天然粗糙元 | 保证回波质量 |
### 标定与验证
1. **实验室标定**:静水槽中验证仪器精度
2. **现场比对**:与 ADCP/流速仪同步测量
3. **交叉验证**:多传感器(雷达+视频)交叉验证
---
## 📈 雷达波测流 vs 视频测流误差对比
| 维度 | 雷达波测流 | 视频测流LSPIV/ByteTrack |
|------|-----------|---------------------------|
| **系统误差** | 入射角、波束展宽 | 相机畸变、像素标定 |
| **环境误差** | 风、波浪 | 光照、反光、遮挡 |
| **仪器误差** | 频率分辨率、信噪比 | 帧率、分辨率、传感器 |
| **典型绝对误差** | ±0.05-0.3 m/s | ±0.02-0.1 m/s全局快门 |
| **典型相对误差** | 3-10% | 2-8% |
| **适用流速范围** | 0.1-5 m/s | 0.1-5 m/s |
| **是否需要示踪物** | ❌ 天然粗糙元即可 | ✅ 需漂浮物或投放示踪物 |
| **全天候能力** | ✅ 雨雾可用 | ❌ 雨雾不可用 |
| **夜间能力** | ✅ 可用 | ❌ 需补光 |
---
## 📝 行业标准参考
根据 **SL/T 246-2019**《水文测验规范》:
- 表面流速测量精度要求±5%
- 流量计算精度要求±8%
- 雷达波测流可满足要求,但需严格控制测量条件
---
*研究完成2026-05-02 | 无人机雷达波测流误差来源与控制方案整理*

View File

@@ -0,0 +1,157 @@
---
mindmap-plugin: markdown
---
# 无人机雷达波测流误差分析
> 无人机搭载雷达波流速仪Radar Surface Velocimeter利用多普勒效应测量水面流速存在多维度误差源
## 测量原理
- 雷达波束照射水面,利用**多普勒频移**计算表层流速0-5cm 深度)
- 需通过**表面流速系数 K**(通常 0.7~0.9)换算为垂线平均流速
- 结合断面测量推算流量
## 实测方案DJI M400 + X-PORT 增稳云台
### 硬件配置
| 组件 | 型号/参数 | 作用 |
|------|----------|------|
| 无人机平台 | 大疆 M400Matrice 400 | 四旋翼行业级旗舰平台RTK 定位IP55 防护 |
| 增稳云台 | X-PORT 三轴增稳云台 | 机械隔离振动 + 三轴主动增稳(俯仰/横滚/航向) |
| 载荷 | 雷达波流速仪 | 通过 X-PORT 标准接口挂载 |
### X-PORT 对平台误差的优化效果
| 原误差项 | 优化前 | X-PORT 优化后 | 优化原理 |
| ----------- | -------------- | ----------- | ---------------------------- |
| **悬停姿态角偏差** | 5°~10° 波动 | **<0.5°** | 三轴陀螺仪实时补偿,主动抵消横滚/俯仰 |
| **机身振动传递** | 螺旋桨振动直接传导 | **衰减 >90%** | 云台减震球 + 电机主动消振,隔离高频噪声 |
| **高度波动** | GPS 高度漂移 ±1~2m | **<0.3m** | RTK 定高 + 云台俯仰轴锁定照射点 |
| **波束指向偏差** | 随风向飘移 | **航向锁定** | X-PORT 航向轴Yaw主动稳像保持波束正对水流 |
### M400 平台自身优势数据来源DJI 官网)
| 特性 | 官方参数 | 对测流的增益 |
|------|---------|-------------|
| **四旋翼架构** | 4 电机四旋翼布局 | 结构简洁,维护成本低,飞行稳定性好 |
| **RTK 厘米级定位** | 水平 ±1cm + 1ppm垂直 ±1.5cm + 1ppm | 平台位移误差从 0.5~2m 降至 **<5cm**,流速叠加误差可忽略 |
| **59min 最大续航** | 空载无风环境 | 支持多断面连续测量,实际载荷下约 40~45min作业效率高 |
| **6kg 最大载重** | 可挂载 Zenmuse L3 等重型负载 | 雷达流速仪 + 激光测距仪/摄像头一次飞行完成多任务 |
| **IP55 防护等级** | 防尘防喷水 | 可在小雨环境作业,扩展了测量窗口 |
| **O4E 图传** | 行业增强版,支持空中中继 | 远距离作业实时监视图传画面 |
| **激光 + 毫米波避障** | 电线级精细避障 | 复杂环境(桥梁、电线附近)安全作业 |
### 综合精度提升对比
| 工况 | 优化前误差 | M400+X-PORT 优化后 | 改善幅度 |
| -------------- | -------- | --------------- | --------- |
| 理想条件(无风/平静水面) | 3%~8% | **2%~5%** | ↓ 30%~40% |
| 一般条件2~3级风 | 8%~15% | **4%~8%** | ↓ 40%~50% |
| 恶劣条件4~5级风/小雨) | 15%~30%+ | **8%~15%** | ↓ 40%~50% |
> 📌 X-PORT 主要解决**平台误差**(第 2 类),对表面系数 K 误差(第 1 类)和风生流误差(第 3 类)无直接改善。
## 五类误差来源
### 1. 雷达原理误差
| 误差项 | 说明 | 影响 |
| ----------- | -------------------- | ----------- |
| 表面流速系数 K 误差 | 表层→平均流速的换算系数取值不准 | ★★★★★ 最大误差源 |
| 布拉格散射偏差 | 无风/平静水面散射信号弱,低流速信号丢失 | ★★★★ |
| 波束展宽效应 | 波束张角 10°~30°斑区内流速不均 | ★★★ |
### 2. 无人机平台误差
| 误差项 | 说明 | 影响 |
| -------- | --------------------------- | ----- |
| 悬停姿态角偏差 | 横滚/俯仰导致入射角偏离5°偏差≈0.4% 速度误差 | ★★★★★ |
| 平台位移(漂流) | GPS 悬停精度 0.5~2m未补偿时叠加到流速中 | ★★★★★ |
| 机身振动 | 螺旋桨振动引入高频噪声,低流速时明显 | ★★★★ |
| 高度波动 | 改变照射面积和信号强度 | ★★★ |
### 3. 环境因素误差
| 误差项 | 说明 | 影响 |
| ------ | --------------------------- | ----- |
| 风场影响 | 风生流 + 改变散射强度3~4级风偏差 5%~15% | ★★★★★ |
| 水面波浪 | 波速与流速多普勒信号混叠 | ★★★★ |
| 降雨 | 雨滴冲击产生额外散射噪声 | ★★★ |
| 漂浮物/水草 | 运动速度≠水流速度 | ★★★ |
### 4. 几何与标定误差
| 误差项 | 说明 | 影响 |
|--------|------|------|
| 入射角标定误差 | 直接影响 cosθ 速度计算 | ★★★★ |
| 波束指向偏差 | 未正对水流方向,测到的是投影分量 | ★★★★ |
| 断面测量误差 | 流量=流速×断面积,断面不准放大误差 | ★★★★ |
### 5. 数据处理误差
| 误差项 | 说明 | 影响 |
|--------|------|------|
| 流速分布模型选择 | 对数律/指数律与实际不符 | ★★★★ |
| 采样时间不足 | 积分时间短导致随机波动大 | ★★★ |
## 综合精度
| 工况 | 综合误差 |
|------|---------|
| 理想条件(无风/平静水面) | 3%~8% |
| 一般条件2~3级风 | 8%~15% |
| 恶劣条件(大风/降雨) | 15%~30%+ |
## 减小误差措施
### 硬件级
1. **DJI M400 + X-PORT 增稳云台**(推荐方案)
- 三轴主动增稳将姿态角偏差降至 <0.5°
- 减震系统隔离 >90% 机身振动
- RTK 厘米级定位消除平台位移误差
- IP55 防护扩展小雨作业窗口
2. **大机型抗风**:无 M400 时选用 ≥2kg 级机型,提高悬停稳定性
3. **双载荷同步**:雷达流速仪 + 激光测距仪一次飞行完成流速+断面
### 软件级
1. **RTK + IMU 姿态补偿**:实时记录姿态角,软件修正入射角(无云台时必备)
2. **多断面多点测量**:减少单点偶然误差
3. **ADCP 同步比测**:定期标定表面系数 K
### 作业策略
1. **选择测量窗口**:避开大风大雨洪水剧烈变化期
2. **固定入射角作业**:预设标准入射角(通常 45°减少标定误差

View File

@@ -0,0 +1,169 @@
# Web3DGS 技术调研汇报总结
---
## 一、核心结论Executive Summary
**推荐方案SuperSplat / PlayCanvas**
综合数据处理效率、渲染性能、渲染质量、功能完整性四个维度SuperSplat 在各项对比中表现最优,建议作为项目的高斯泼溅渲染引擎。
---
## 二、技术背景
### 2.1 什么是 3DGS
3D Gaussian Splatting3DGS是一种革命性的实时辐射场渲染技术将3D场景表示为大量微小的"高斯形状斑点"Splat集合通过可微光栅化实现实时高质量渲染。相比 NeRF 方法3DGS 兼具训练速度和渲染速度的优势。
### 2.2 Web端核心挑战
| 挑战 | 说明 |
| ----- | -------------------- |
| 内存限制 | 浏览器可用内存远小于原生应用 |
| 带宽限制 | 百万级Splat数据传输成为瓶颈 |
| 渲染算力 | WebGL/WebGPU并行计算能力受限 |
| 跨平台兼容 | 桌面、移动、VR设备算力差异巨大 |
### 2.3 LOD 技术的关键作用
LOD细节层级是解决上述挑战的核心技术实现
- **场景规模扩展**使亿级Splat超大场景渲染成为可能
- **设备适配**:根据设备性能动态调整渲染负载
- **带宽优化**:通过流式加载减少初始等待时间
- **帧率稳定**:保持恒定渲染复杂度,避免性能抖动
---
## 三、主流方案对比
### 3.1 方案概览
| 方案 | 类型 | 技术栈 | 特点 |
| :-------------------------: | :------: | :------------------------: | :-------------------: |
| **Spark 2.0** (World Labs) | 开源Web渲染器 | Three.js + WebGL2 | 连续LOD、GPU虚拟显存、亿级Splat |
| **LCC** (XGRIDS) | 商业化SDK | 多平台SDK | 空间分块+LOD耦合、Cesium集成 |
| **SuperSplat** (PlayCanvas) | 开源编辑器+引擎 | PlayCanvas + WebGL2/WebGPU | SOG格式、碰撞检测、轻量易用 |
| **Visionary** | 学术研究 | WebGPU + ONNX | 每帧推理、插件式架构 |
| **gsplat.js** | 开源通用库 | 类Three.js API | 轻量级、基础LOD支持 |
| **FJD Trion** (丰疆) | 商业软件 | 专有格式 | 需授权,未试用 |
### 3.2 核心差异对比
| 维度 | Spark 2.0 | LCC | SuperSplat |
| --------- | ------------------------ | ---------- | ------------------ |
| **渲染预算** | 固定预算桌面2.5M/移动500K~1.5M | 分块LOD机制 | 全局预算管理 |
| **文件格式** | .RAD渐进式传输 | .lcc紧凑编码 | .sog空间有序 |
| **内存管理** | GPU虚拟显存分页 | 压缩+LOD优化 | gsplat.splatBudget |
| **LOD类型** | 连续LOD树切面 | 离散LOD+空间分块 | 离散LOD流式分块 |
| **碰撞检测** | 不支持 | 需自行实现 | 内置体素碰撞数据生成 |
| **最大场景** | 1亿+Splat | 80万㎡场景验证 | 千万级Splat |
---
## 四、实测数据
### 4.1 测试场景
| 场景 | 大小 | 来源 | 类型 |
| ---- | ----- | ------- | ----- |
| 西北大学 | 2.12G | LCC官方示例 | 外部大场景 |
| 书店 | 404M | LCC官方示例 | 内部小场景 |
| 教堂 | 776M | LCC官方示例 | 外部小场景 |
| 台阶 | 1.38G | 中海达数据 | 外部场景 |
### 4.2 测试设备
- **低性能台式机H**i7-9700 + AMD Radeon R7 430
- **高性能台式机**i9-10900K + RTX3070
- **笔记本W**i7-9700 + AMD Radeon R7 430
### 4.3 数据处理效率
| 方案 | 台阶场景处理时间 | 备注 |
|------|-----------------|------|
| Spark 2.0 | 较长Rust源码需二次开发 | 部分PLY兼容性有问题 |
| LCC | ~10秒LCCEditor | 存在视觉跳变问题 |
| SuperSplat | 需二次开发Node.js库 | 支持碰撞数据生成 |
**碰撞数据生成时间**笔记本W
- 书店场景:~2分钟
- 教堂场景:~3分40秒
### 4.4 渲染性能排名
**相同场景、相同模式、相同设备下:**
1. **SuperSplat** — 性能最佳
2. **LCC** — 与SuperSplat基本相当部分情况略逊
3. **Spark 2.0** — 性能表现最差
> LCC2在不同性能模式下表现基本无变化可能有额外处理逻辑。
### 4.5 渲染质量对比
| 问题 | Spark 2.0 | LCC | SuperSplat |
|------|-----------|-----|------------|
| 视觉跳变 | 无 | 有(旋转视角出现模型漏洞) | 无 |
| 性能模式模糊 | 正常 | 模糊 | 性能模式下模糊,标准及以上正常 |
| 放大细节 | 可加载清晰细节 | 模糊 | 可加载清晰细节 |
### 4.6 功能对比
| 功能 | Spark 2.0 | LCC | SuperSplat |
| -------- | --------- | ---------- | ----------- |
| 碰撞检测数据生成 | 不支持 | 需自行实现 | 内置支持(体素八叉树) |
| 第一人称行走 | 需自行实现 | 有API但需自行实现 | 内置支持 |
| 点云渲染 | 不支持 | 不支持 | 引擎支持 |
| Cesium集成 | 不支持 | 支持 | 不支持 |
---
## 五、技术趋势
1. **连续LOD替代离散LOD**:消除视觉跳变,实现无缝过渡
2. **流式传输标准化**:先展示低精度全局视图,再逐步细化
3. **WebGL向WebGPU迁移**计算着色器开启更复杂LOD算法可能
4. **空间分块与LOD深度融合**:特别适合大地图、城市级实景
5. **AI驱动智能LOD**神经网络动态预测最优LOD配置
---
## 六、推荐方案及理由
### 选择 SuperSplat 的核心理由
1. **渲染性能最优** — 实测FPS最高CPU/GPU耗时最低
2. **碰撞检测内置** — 支持体素碰撞数据生成+第一人称行走
3. **无视觉跳变** — 渲染质量稳定无LCC的旋转漏洞问题
4. **传输最快** — LOD数据最小场景初始化最快
5. **开源生态** — MIT协议PlayCanvas引擎成熟
### 待解决问题
| 问题 | 说明 |
| ------- | -------------------------------------------- |
| LOD生成效率 | @playcanvas/splat-transform 需二次开发当前为Node.js |
| 碰撞数据质量 | 生成数据质量需进一步研究优化 |
| 点云渲染 | 引擎支持但Demo未实现 |
| GIS大场景 | Cesium对3DGS LOD支持不足仅LCC支持Cesium集成 |
| 浏览器适配 | 不同手机和PC 浏览器兼容有差异 |
| | |
---
## 七、Hi-LiDAR 数据处理发布流程
已基于 @playcanvas/splat-transform 搭建3DGS在线数据处理和演示系统
1. **数据接收** — 接收Hi-LiDAR推送 / 支持模型上传
2. **LOD处理** — 支持自动/手动生成LOD数据
3. **模型管理** — 在线预览和发布管理
4. **分享能力** — 链接分享 + 二维码扫码在线查看
5. **用户管理** — 集成中海达会员系统
**Demo演示地址**http://172.16.36.73:8092/
---
*汇报完毕,请审阅。*

View File

@@ -0,0 +1,19 @@
---
mindmap-plugin: markdown
---
# 水文科研
## 粤港澳大湾区水利创新中心
- 2025-10月
## 团队协作
- 主体,协作单位
## 研究方向
- 水文
- 水利