Open Source 3D Geometric Kernel

Build 3D with
Natural Language

LFlyGM 是一个基于 Three.js 的3D几何内核,支持完整 B-rep 拓扑结构。 通过自然语言指令,即可创建、编辑和渲染3D几何模型。

Modular Kernel Design

LFlyGM 采用分层模块化架构,从底层几何原语到上层建模操作,每一层职责清晰,相互协作。

Geometry

底层几何原语:点、向量、矩阵、坐标系、包围盒等基础数学对象

LGKPoint LGKVector3 LGKMatrix4D LGKBoundingBox

B-Rep Topology

完整的边界表示拓扑结构,8层层次模型维护实体间的邻接关系

Body Lump Shell Face Loop

Modeling

拉伸、旋转、SheetBody 建模构建器,以及欧拉操作算子

Extrusion Revolution SheetBody Euler

Rendering

Three.js 渲染管线:几何绘制器、建模绘制器、拓扑可视化器

GeometryDrawer ModelingDrawer TopologyDrawer

Algorithms

曲线/曲面离散化、求交算法、距离计算、投影算法

Discretizer Intersection Distance Project

AI Interface

自然语言命令解析器,支持中英文指令,智能识别绘图意图

CommandParser NLP SceneManager
60+
Kernel Modules
8
B-Rep Layers
14
Euler Operators
5
Analytic Surfaces

Complete B-Rep Structure

基于 Mäntylä 经典理论的边界表示法,从顶点到体的完整8层拓扑层次。

Body 体 — 根节点
Lump 连通区域
Shell 壳 — 外壳/内壳
Face 面 — 有界曲面片
Loop 环 — 外环/内环
CoEdge 共边 — 半边结构
Edge 边 — 曲线段
Vertex 顶点 — 3D点

Precision Topology

LFlyGM 的 B-rep 实现采用半边数据结构(CoEdge),精确维护拓扑元素之间的邻接关系。 每个 Face 由外环定义边界,内环定义孔洞,几何曲面定义形状。

  • CoEdge 半边结构,维护 next/prev 指针和配对关系
  • Face 支持外环 + 多个内环(孔洞)
  • Shell 区分外壳与内壳(通孔/盲孔)
  • 欧拉公式验证拓扑完整性
  • 实体属性(变换矩阵、颜色材质)与拓扑分离

Curves & Surfaces

支持解析曲线/曲面和B样条曲线/曲面,参数化表示,完整的求值与离散化算法。

Line

LGKLine

Circle

LGKCircle

Ellipse

LGKEllipse

B-Spline

LGKBsplineCurve

Plane

LGKPlane

Sphere

LGKSphere

Cylinder

LGKCylinder

Cone

LGKCone

Torus

LGKTorus

B-Spline Surface

LGKBsplineSurface

Euler Operators & Modeling

基于经典欧拉操作理论,提供从低层原子操作到高层组合建模的完整工具链。

euler-operators.js
// 创建立方体 — 基于欧拉操作 const result = LGKHighLevelEuler.MVFS( new LGKPoint(0, 0, 0) ); // 创建边和顶点 const v1 = LGKHighLevelEuler.MEV( result.vertex, new LGKPoint(1, 0, 0), result.loop ); // 创建面和边 const face = LGKHighLevelEuler.MFE( v1.vertex, result.vertex, result.loop, result.shell ); // 使用建模操作快速创建多边形 const body = LGKModelingOperators.makePolygon([ new LGKPoint(0, 0, 0), new LGKPoint(2, 0, 0), new LGKPoint(2, 2, 0), new LGKPoint(0, 2, 0) ]); // 拉伸生成3D实体 const extruder = new LGKExtrusionBuilder(); const solid = extruder.extrudeSheet({ sheetBody: body, direction: { x: 0, y: 0, z: 1 }, distance: 3 });

Low-Level Operators

局部原子操作,参考 GWB (Geometric WorkBench) 实现。灵活但需自行维护一致性。

LMVFS LKVFS LMEV LKEV LMFE LKFE LKEMRH LMFKRH

High-Level Operators

安全操作,自动验证欧拉公式,支持错误回滚。推荐日常建模使用。

MVFS KVFS MEV KEV MFE KFE KEMRH MFKRH

Modeling Builders

组合建模操作,从轮廓到实体的快速构建器。

Extrusion Revolution SheetBody makePolygon createCube

Built-in Primitives

5种基本体,均基于欧拉操作构建完整B-rep拓扑结构,而非简单的三角网格拼凑。

Cube
LGKCube
Sphere
LGKSpherePrimitive
Cylinder
LGKCylinderBody
Cone
LGKConePrimitive
Torus
LGKTorusPrimitive

Natural Language Interface

内置命令解析器,支持中英文自然语言指令,智能识别绘图意图并自动构建几何模型。

LFlyGM Command Parser
Input
Draw a point at (1, 2, 3)
Parsed
Type: point | Coords: (1.0, 2.0, 3.0)
Input
绘制一个圆,圆心(0,0,0),半径2
Parsed
Type: circle | Center: (0,0,0) | Radius: 2.0
Input
画一个椭圆,中心(1,1,0),长轴3,短轴1
Parsed
Type: ellipse | Center: (1,1,0) | Major: 3.0 | Minor: 1.0
01

Bilingual Understanding

同时支持中文和英文指令输入,如"绘制点"、"画圆"、"draw point"等,自动识别意图。

02

Smart Coordinate Extraction

从自然语言中自动提取坐标、半径、角度等数值参数,支持多种表达格式。

03

Point Reference System

支持通过"点1"、"点2"引用已有对象,实现"连接点1和点2"等关联操作。

04

Auto Scene Management

自动管理场景对象,实时更新对象树,支持撤销/重做操作。

Technology Choices

轻量级技术栈,零构建依赖,浏览器端即开即用。

Runtime

纯 JavaScript (ES6 Class),零构建工具,零依赖管理。浏览器端和 Node.js 双环境支持。

  • Vanilla JS
  • ES6 Class
  • No Build
  • No npm

3D Engine

Three.js 渲染引擎,支持 OrbitControls 交互。自研几何内核与 Three.js 场景无缝桥接。

  • Three.js r128
  • OrbitControls
  • WebGL

Deployment

Cloudflare Pages 静态部署 + Workers API 后端,KV 存储用户认证,全球 CDN 加速。

  • Cloudflare Pages
  • Workers
  • KV Storage
  • CDN