用途:构建可移植的第一人称彩色 ASCII 城市体验,分三层——引擎、城市提供者契约、城市包,城市专属事实不进入引擎代码。
主要能力:定义城市包边界与本地米制 CRS;从公开来源获取高程、建筑、道路/路径数据;校验下载内容、许可、单位与来源;将几何重投影到本地米并输出清单与世界瓦片;离线校验城市包;在引擎中加载首个瓦片测试移动、坡度跟随与实体足迹。
使用方式:先按工作流定义包边界与本地米制 CRS,获取并核验 GIS 数据,重投影后生成清单与瓦片,再运行 python3 scripts/validate-city-pack.py path/to/city-pack 离线校验,通过后在 assets/ascii-city-engine.html 中加载首个瓦片测试移动、坡度跟随与实体足迹,最后记录数据限制与人工验收证据。引擎为独立 HTML 文件,现代浏览器直接运行,无需构建或服务器;校验器仅需 Python 3 标准库。
必要不变量:feet_z 由地形计算,eye_z 为 feet 加眼高;拒绝空地形、过陡台阶及触碰实体足迹的移动;建筑颜色确定,每帧清除未命中射线;v1 每个 (x, y) 列仅一个地面高度,预留但不实现表面图;引擎独立于任何城市、厂商、智能体框架或私有基础设施;不提交大型或全分辨率源数据,仅提交小型可再分发样本并记录其余数据获取方式。
参考路由:世界数学、渲染、碰撞与脚手架契约见 references/engine-architecture.md;创建或校验提供者见 references/city-provider-contract.md;下载或转换 GIS 来源前见 references/gis-ingestion.md;可复现 Raleigh 概念验证见 references/raleigh-poc.md;数据契约以 templates/city-pack-manifest.schema.json 与 templates/world.schema.json 为准。
限制:v1 每列仅一个地面高度,不支持室内、下方可通行空间的桥梁、隧道或多层几何;引擎为 CPU canvas 软件渲染,无 WebGL/GPU 渲染或移动端控制;不含全分辨率 GIS 归档;校验器为离线结构性检查,通过后仍需人工在引擎中测试移动。WebGL/GPU 渲染、移动端控制、战斗、室内、下方可通行桥梁、隧道或通用地理空间分析应改用其他技能或实现方式。