CHAPTER 06 // RUNTIME SIMULATORS
六大可插拔模拟器插件详解
化学、物理、逻辑、物流、社会与语义桥接器如何通过共享属性黑板实现零耦合跨界涌现。
6.1 六大插件职责与共享属性矩阵
在 cyberpsychosis-plugins 中,没有任何两个插件互相 import。它们全部只实现 SimulatorPlugin 接口,并通过读写内核的通用标量属性(temp、integrity、panic、pressure)自然耦合:
| 插件名称 | 涌现类型 | 核心模拟机制 | 读写的共享属性/标签 |
|---|---|---|---|
| ChemistryPlugin | 化学/元素涌现 | 8 邻域热传导、85°C 燃点引燃、浓烟派生、冷水灭火 | temp, fuel, burning, hot, cool, smoke |
| PhysicsPlugin | 物理与结构涌现 | 135°C 超温爆炸冲击波、径向冲量速度积分、管道结构断裂 | temp, pressure, integrity, broken, exploded |
| LogicRulePlugin | 逻辑/规则涌现 | 同步激活的元规则 Override,持续驱动全局标签与属性映射 | hot, cool, calm, calmAura |
| LogisticsPlugin | 网络/物流涌现 | 有向管网流计算、冷却/热源输送、断管停流与上游背压累积 | temp, pressure, integrity, pipe edges |
| SocialAgentPlugin | 社会/叙事涌现 | 半径 4.5 危险/镇静感知、social_trust 关系网恐慌传染、效用 AI | panic, panicked, calmAura, social_trust edges |
| SemanticLlmPlugin | 语义涌现桥接 | 自然语言转受限 DSL、WorldFork 安全预览、离线确定性编译 | DeclarativeRule, GlobalTagOverride |
6.2 编写自定义模拟器插件
只需实现 SimulatorPlugin 接口并通过 kernel.usePlugin() 挂载,即可将你自己的领域模拟器接入涌现生态:
// TYPESCRIPT
CYBERPSYCHOSIS SDK
import { EmergenceKernel, SimulatorPlugin } from "cyberpsychosis-core";
export class WeatherPlugin implements SimulatorPlugin<EmergenceKernel> {
readonly id = "weather";
readonly name = "Dynamic Rain & Wind Simulator";
readonly tickInterval = 2; // 每 2 个主 Tick 执行一次
onTick(kernel: EmergenceKernel, tick: number): void {
for (const id of kernel.ecs.queryByTags(["burning"])) {
if (kernel.prng.next() < 0.25) {
kernel.ecs.removeTag(id, "burning");
kernel.causal.recordEvent({
tick,
domain: "chemistry",
type: "weather:rain_extinguished",
summary: `Rainstorm extinguished entity #${id}`,
subjectIds: [id]
});
}
}
}
}