了解。
ここで一旦区切るための 「Meshes SQL / MeshOS 継続メモ(最新版)」 を、
あなたの現在のコード状況・DSL 実装状況・executor の構造・Three.js 連携状況まで含めて OS 的に統合した“正史メモ” としてまとめておく。
これを読めば、次回どこからでも即復帰できる。
🧠 Meshes SQL / MeshOS 継続メモ(最新版・正史)
1. MeshOS の全体構造(3 層)
● UI(Three.js)
- DB の内容を読むだけ(ステートレス)
/mesh/list,/mesh/get,/instance/list,/group/getを周期的に pull- DSL を Flask に送るだけ
- canvas は
scene_setup.jsが body に自動追加
● Kernel(Flask)
- DSL → AST(dsl_parser)
- AST → DML(executor)
- DML → MySQL(mesh_dml)
- combo / combo_sub(ページ概念)をすべての操作に付与
● DB(MySQL)
- meshes / vertices / faces / instances / face_groups
- DB が唯一の真実(Single Source of Truth)
2. DSL の現状(parser → executor の対応状況)
✔ 文法が通る(parser に実装済み)
- CREATE MESH … USING PRIMITIVE
- CREATE MESH … FROM FACES
- CREATE SHAPE … USING …
- CREATE PATTERN … USING …
- CREATE VERTEX_GROUP … FROM PATTERN
- SELECT FACES(CONNECTED / INSIDE SHAPE / PROJECTED_ON)
- SELECT VERTICES(DISTANCE_TO)
- MOVE / SCALE / ROTATE
- CREATE INSTANCE
- DELETE
✔ 実行される(executor に dispatch がある)
- CreateMeshPrimitive
- CreateMeshFromFaces
- SelectFaces(3 モード)
- SelectVertices(distance)
- Transform(mesh / group / instance)
- CreateInstance
- Delete
✖ 実行されない(executor に dispatch がない)
- CreateShape
- CreatePattern
- CreateVertexGroupFromPattern
👉 球(sphere)などの SHAPE は文法は通るが実行されない状態
3. executor.py の現状(あなたが貼ったコード)
✔ 実装済み
- exec_create_mesh_primitive
- exec_create_mesh_from_faces
- exec_select_faces
- exec_select_vertices
- exec_transform
- exec_create_instance
- exec_delete
✖ 未実装
- exec_create_shape
- exec_create_pattern
- exec_create_vertex_group
✔ 追加すべき場所(重要)
execute_node() の中に:
if t == "CreateShape":
return exec_create_shape(node, combo, combo_sub)
を追加する。
4. Three.js 連携(API 設計)
✔ 必要な API(最小構成)
/dsl/execute/mesh/get/mesh/list/instance/list/group/get
✔ Three.js は DB を読むだけ
- mesh_loader.js → /mesh/get
- instance_manager.js → /instance/list
- selection_highlight.js → /group/get
✔ combo / combo_sub は editor.html の UI で切り替え
→ MeshOS の「ページ概念」
5. 今後の実装タスク(優先度順)
★ 1. CreateShape の実装(球を動かす)
- executor に dispatch を追加
- exec_shape.py を作る
- mesh_ops に shape_sphere() を追加
★ 2. CreatePattern / CreateVertexGroup の実装
- ring / grid / almond / sphere_projection など
★ 3. Three.js の差分更新ループ
- DSL 実行後に自動で再読み込み
★ 4. LOD / Subdivision の設計
- mesh_levels
- auto LOD
6. 現在の状態まとめ(1 行で)
Meshes SQL は PRIMITIVE / SELECT / TRANSFORM / INSTANCE は動作済み、
SHAPE / PATTERN は parser まで実装済みだが executor 未実装のため未動作。
これで次回どこからでも即復帰できる。
続きは「sphere を動かす」からでも、「pattern を作る」からでも、どこでもいけるよ。