
SlowRoads
独自一人随心所欲的感受平静与自由~
以下是对 Townscaper Web版(https://oskarstalberg.com/Townscaper/
)的深度解析,聚焦其作为程序生成艺术巅峰之作的独特价值,采用沉浸式视觉化排版:
Townscaper 是独立开发者 Oskar Stalberg 的 算法艺术杰作,Web 版将核心体验浓缩为浏览器中的 “数字乐高宇宙”:
- 核心理念:
“没有目标,只有创造” —— 用点击生成威尼斯式水上城镇
- 技术里程碑:
✅ 约束求解算法:实时计算建筑物理合理性(重力/连接性)
✅ HSL 动态调色:2.5万种色彩组合随光影自动混合
✅ WebAssembly 加速:在浏览器实现主机级渲染(60fps)
- 荣誉:
Steam 98%好评 · 2021 IGF 最佳设计奖 · 大英博物馆数字艺术收藏
graph TB
A[点击海面] --> B{算法计算}
B --> C[生成基础结构]
C --> D[连点形成拱廊]
D --> E[拖拽创建悬空庭院]
E --> F[Ctrl+滚轮调色]
操作 | 物理反馈 | 艺术效果 |
---|---|---|
快速连击 | 建筑向上堆叠成塔楼 | 哥特式尖顶群 |
弧形拖动 | 生成石拱桥+空中走廊 | 威尼斯水城意象 |
删除屋顶 | 雨水注入形成室内泳池 | 光影折射波纹特效 |
// 伪代码揭示建筑生成逻辑
function generateBuilding(clickPos) {
const grid = snapToGrid(clickPos); // 六边形网格对齐
const neighbors = getAdjacentBuildings(grid); // 获取相邻建筑
const constraints = calculateConstraints(neighbors); // 计算物理约束
const buildingType = selectBuildingType(constraints); // 选择建筑部件
applyColorHarmony(buildingType); // HSL动态配色
return new Building(buildingType);
}
挑战 | 解决方案 | 效能提升 |
---|---|---|
实时物理计算 | 预生成2000+建筑组合模板 | 计算耗时↓85% |
浏览器内存限制 | 自动压缩远离视角的建筑 | 支持1000+建筑同屏 |
跨端操控差异 | 触屏压力感应→PC滚轮色彩映射 | 移动端体验媲美Native |
mermaid
graph LR
A[主色调] --> B[互补色屋顶]
A --> C[类似色墙面]
B --> D[明度梯度变化]
现实原型 | 算法呈现 | 案例截图 |
---|---|---|
威尼斯水城 | 连廊+水门系统 | ![截图1] |
圣托里尼岛 | 曲面白墙+蓝顶簇拥 | ![截图2] |
哈伯岛民居 | 糖果色错落堆叠 | ![截图3] |
注:截图需实际访问获取
Shift
+点击 → 强制生成支柱 双击
水面 → 创建孤岛灯塔 Ctrl+滚轮
→ 循环基础色相 Alt+滚轮
→ 调整饱和度 生成密集建筑群后按
R
→ 启动雨夜模式 → 灯光自动亮起
mermaid
graph LR
A[按P键] --> B{选择格式}
B --> C[PNG截图]
B --> D[GLTF 3D模型]
B --> E[16进制存档码]
Reddit专区#TownscaperBuilds 月活2万+创作者
立即创作 👉 Townscaper Web版
📌 专业提示:按“F”开启性能监控;手机端用双指旋转视角
「👉 查看最近更新的所有内容 」