编辑推荐
适读人群 :学生,设计师 折叠的过程令人着迷,一张简简单单的纸通过折叠可以构建千变万化的形式,这个过程本身就是形式创造的一种方法。总会拿起一张纸开始把玩,虽然实际折叠过程为设计创作提供了一种设计形式研究的手段,但是如何把这多变的形式转化为实际的建造,能否通过实际的折叠研究出基本的形式再在计算机中直接构建最终的结果呢?如果在信息化技术已经发展到目前的阶段水平下,还在使用“静态”构建的方法已经表现出设计本身的固守或者对于编程设计知识体系的茫然。设计的过程是创造的过程,实际折叠的过程才是设计的根本,而不是折叠的结果,因此在计算机中使用编程的方法直接开始折叠过程的研究而不是折叠结果的构建。
《面向设计师的编程设计知识系统PADKS:折叠的程序》以Paul Jackson 编写的《从平面到立体——设计师必备的折叠技巧,Folding Techniques for Designers:From Sheet to Form》为基础研究折叠的方法,但是放弃传统用纸折叠的方式,进而寻求应用计算机程序折叠的途径。通过Grasshopper+Kangaroo+Python 编写折叠的过程,研究实际折叠过程中无法达到的更深入形式探索的领域,精确控制施加的力,甚至施加具有正弦函数特征的力;精确的捕捉折叠过程中任意时刻;方便计算折叠形式的尺寸、角度,以及在基本形式下各种实际建造的变化,例如作为墙体表皮的形式、幕墙的形式、建筑的空间、地形的变化等等与实际结合的方法。
内容简介
也许是受到传统计算机辅助设计的影响,大部分设计者总会将目前的计算机辅助设计停留在某个命令如何操作的基础上,也许是种无奈。基本的命令操作很重要毋庸置疑,但是编程辅助设计的方法本身已经不再是某个基本的命令,而是一个编程设计的知识系统。设计者应该具有编程的能力来创造性地设计和研究设计的过程,使用编程的方法探索设计的各类问题。
《面向设计师的编程设计知识系统PADKS:折叠的程序》是面向建筑师编程设计知识体系研究的一个方向,是使用编程的方法研究折叠的过程,以此抛砖引玉改变传统设计意识的束缚,从根本的方面阐述编程辅助设计的方法。
《面向设计师的编程设计知识系统PADKS:折叠的程序》开篇主要阐述编写折叠的程序核心的Grasshopper模块动力学模拟Kangaroo,通过翻译设计者Daniel Piker的帮助文件,对Kangaroo的使用方法有较深入的理解;
“开始折叠的程序”、“基础褶皱”、“其他褶皱”、“V 形褶皱”、“拱形与抛物线形”和“无折缝或一条折痕”部分都是以Paul Jackson 编写的《从平面到立体——设计师必备的折叠技巧,Folding Techniques for Designers:From Sheet to Form》为基础研究折叠的方法,但是通过程序的编写实现折叠的过程;
除了对于折叠程序的探讨,在“ 基于动力学设计方法探索”中,通过程序探索索膜结构、极小曲面与无限周期极小曲面和展平的程序方法;
用程序的方法重新诠释折叠的过程并不仅仅是换种思维来表述折叠,同时也并不仅仅是为了熟练掌握Grasshopper 加Kangaroo 动力学模块,更重要的是编程设计的思维。对于很多设计师应该能够根据前文阐述的折叠程序发展出很多出色的设计形式,一方面是根据折叠方法的研究,创造出更多的折叠形式;另一方面是根据折叠的形式衍生出建筑形式。“折叠的建筑”部分正是利用前文阐述的一个程序,加以梳理完成一个建筑概念的设计。
作者简介
包瑞清,西安建筑科技大学建筑学院讲师
城市规划与设计专业博士,任教于西安建筑科技大学建筑学院,主攻计算机辅助设计应用研究,从作为设计者的角度寻找和融合编程与建筑、风景园林、城乡规划等设计规划学科之间的关联,建立面向设计师的编程设计知识系统,力图使编程设计成为设计领域的基础环节,探索未来设计的方法。
2012 年,作为caDesign 设计创始人之一,以“编程让设计更具创造力!”的信念为指引,分享研究成果,发展面向设计师的编程设计知识系统网络服务体系。
内页插图
目录
9 动力学与折叠的程序
10 1 折叠的过程
13 1.1 构建具有折痕的“纸”
13 1.2 力对象与解算的几何对象
15 1.3 解算与几何对象的输出
18 2 关于Kangaroo
18 2.1 作者
18 2.2 什么是粒子系统Partical System ?
19 2.3 Kangaroo 的主引擎组件(Kangaroo Physics Engine)
19 2.4 Kangaroo 设置(Kangaroo Settings)
20 2.5 工具(Utilities)
21 2.6 Kangaroo 的力(Forces)
27 开始折叠的程序
28 1 变换旋转
29 1.1 构建具有折痕的“纸”
30 1.2 力对象与解算的几何对象
30 1.3 解算与几何对象的输出
33 2 对称重复
33 2.1 平移
40 2.2 反射
46 2.3 旋转
51 2.4 滑动反射
56 3 拉伸和倾斜
56 3.1 构建具有折痕的“纸”
59 3.2 力对象与解算的几何对象
60 3.3 解算与几何对象的输出
61 基础褶皱
62 1 手风琴式
62 1.1 线型
66 1.2 旋转
68 1.3 圆柱体
70 1.4 圆锥体
72 2 刀片褶皱
72 2.1 线型
74 2.2 旋转
77 2.3 反射
80 2.4 圆柱体
82 2.5 圆锥体
83 3 盒形褶皱
83 3.1 线型
87 3.2 旋转
90 3.3 圆柱体
92 3.4 圆锥体
93 4 增量褶皱
95 其他褶皱
96 1 螺旋褶皱
96 1.1 简单的螺旋
99 1.2 盒形螺旋
107 2 聚集褶皱
107 2.1 手风琴褶皱
112 2.2 刀片褶皱
121 2 扭曲褶皱
125 V 形褶皱
126 1 基础的V 形褶皱
126 1.1 沿中轴折叠
132 1.2 沿对角线折叠
138 2 变形
138 2.1 移动对称线
140 2.2 改变V 形褶皱的角度
142 2.3 打破对称
144 3 V 形叠加
144 3.1 重复
148 3.2 平行但不相等
149 3.3 随机的对称线
150 3.4 变形
152 4 圆柱体V 形
161 拱形与抛物线形
162 1 拱形
162 1.1 X 形拱形
166 1.2 V 形拱
173 2 抛物线
177 无折缝或一条折痕
178 1 无折缝
181 2 一条折痕(折缝)
183 基于动力学设计方法探索
184 1 基于Kangaroo 官方折叠案例
194 2 索膜结构
194 2.1 关于索膜结构
205 2.2 索膜结构形式探索
232 3 展平
243折叠的建筑
精彩书摘
用程序诠释“纸”折叠过程的魅力
在不经意间看到Paul Jackson 编写的《从平面到立体——设计师必备的折叠技巧,Folding Techniques for Designers:From Sheet to Form》时,作者就产生用程序编写的方法研究折叠过程的想法,编写完《学习Python——做个有编程能力的设计师》之后,就开始编写《折叠的程序》这本书。《折叠的程序》不仅涉及基本的Grasshopper 节点式程序编写,同时以Grasshopper 的动力学扩展组件Kangaroo 为基础,并使用Python 编写大量辅助程序。这也是为什么阅读《折叠的程序》需要具备Grasshopper、Kangaroo 以及Python 这三个方面的知识系统。在caDesign 设计构建的“面向建筑师的编程知识系统”中,如果需要学习Grasshopper 的基础知识可以阅读《参数化逻辑构建过程》,如果需要学习Python可以阅读《学习Python——做个有编程能力的设计师》,而Kangaroo 部分直接阅读本书《折叠的程序》。
折叠的过程令人着迷,一张简简单单的纸通过折叠可以构建千变万化的形式,这个过程本身就是形式创造的一种方法。总会拿起一张纸开始把玩,虽然实际折叠过程为设计创作提供了一种设计形式研究的手段,但是如何把这多变的形式转化为实际的建造,能否通过实际的折叠研究出基本的形式再在计算机中直接构建最终的结果呢?如果在信息化技术已经发展到目前的阶段水平下,还在使用“静态”构建的方法已经表现出设计本身的固守或者对于编程设计知识体系的茫然。设计的过程是创造的过程,实际折叠的过程才是设计的根本,而不是折叠的结果,因此在计算机中使用编程的方法直接开始折叠过程的研究而不是折叠结果的构建。
开始使用Grasshopper+Kangaroo+Python 编写折叠的过程,并且研究实际折叠过程无法达到的更深入形式探索的领域。在实际折叠过程中并不能精确地控制施加的力,也并不能方便地施加多种形式的力,或者施加具有正弦函数特征的力,这些在实际折叠过程中无法实现的使用程序编写的方法却可以轻易做到;在实际折叠过程中精确地捕捉折叠过程任意时刻也很难做到,但是计算机的模拟可以在任何迭代的时刻停止甚至记录下每一时刻的形式变化;更加让设计者头痛的是实际折叠的形式结果如何转变为实际的建造,基于编程的折叠过程研究本身就是基于数据,因此可以很方便地计算折叠形式的尺寸、角度,以及在基本形式下各种实际建造的变化,例如作为墙体表皮的形式、幕墙的形式、建筑的空间、地形的变化等等与实际结合的方法。
折叠的过程并不是动力学形式研究全部,仅是动力学形式研究的一种,因此Kangaroo所提供的动力学组件并不会全部使用,折叠的过程也不是某个组件的学习,而是一种设计形式研究的方法探索。设计是一种创造,编程设计也是一种创造,一种改变设计过程的创造。
“纸”在程序中表现为Mesh 的格网,在研究折叠的过程构建具有折痕的“纸”是模拟研究的基础。构建各种形式的格网大部分程序的组件使用Grasshopper 的Mesh 组件部分,但是很多富于变化的折痕借助Python 会更加方便,因此折叠过程研究中积累了大量使用Python 组织数据的方法,例如组织顶点的排序、组织索引值、树形数据的模式分组等,这些Python 程序提供了构建Mesh 格网的一种方法,可以更加方便和容易地构建具有折痕的“纸”。
研究本身是一种乐趣,作为设计形式探索的一种方法——折叠在编程辅助设计研究的基础上,实现更具有创造性的研究过程。
……
前言/序言
《代码的几何美学:为创想注入生命》 在这个信息爆炸、数字化浪潮席卷全球的时代,设计与技术之间的界限日益模糊。曾经是独立疆域的艺术与科学,如今正以前所未有的深度交融,孕育出无限的创意可能。然而,对于许多怀揣着卓越设计理念的创意人士而言,将脑海中天马行空的构想转化为可执行的数字现实,往往面临着一道无形的屏障——编程的隔阂。这并非源于能力的不足,而是信息获取的碎片化、学习路径的非系统化,以及对编程本质理解的偏差。 《代码的几何美学:为创想注入生命》正是为此而生。它并非一本枯燥的编程语言教程,也不是晦涩难懂的技术手册。相反,它是一次关于“如何让你的设计思想在数字世界中自由呼吸”的深度探索,是一场连接艺术直觉与逻辑构建的桥梁工程。本书旨在为设计师、艺术家、建筑师、产品经理,以及所有渴望将创意以全新媒介呈现的思考者,构建一个清晰、系统且富有启发性的知识框架。 我们深知,许多设计师的思维模式是视觉化的、模式化的、关联性的,而非线性的、逻辑性的。他们习惯于在二维或三维空间中构建关系,在色彩、形态、比例中寻找和谐。而传统的编程教育,往往侧重于算法、数据结构、语法规则等“底层”逻辑,这对于非技术背景的学习者来说,门槛较高,容易导致“望而却步”的困境。 本书的核心理念在于“设计思维驱动的编程学习”。我们将编程视为一种强大的创作工具,一种将抽象概念具象化、将静态形态动态化的语言。我们不追求成为一名技艺精湛的程序员,而是致力于成为一名能够理解代码的“语言”,能够运用代码“雕塑”创意,能够让设计“活起来”的“数字创想家”。 核心内容前瞻: 本书将从以下几个维度,深入浅出地引导读者进入代码的创造性世界: 第一篇:重塑认知——代码的本质与设计的共鸣 告别“机器语言”的误解: 破除对编程“冰冷、复杂、只有极客才能掌握”的刻板印象。我们将从设计的角度,审视代码的结构、逻辑和表达力,将其视为一种严谨而富有表现力的“数字语汇”。 设计的“可编程性”: 探讨设计的哪些方面可以被转化为代码逻辑。例如,参数化设计中的规则、交互动效的逻辑流程、视觉元素的生成与变换等。我们将展示如何将设计中的“参数”、“约束”、“规则”、“状态”等概念,映射到编程中的变量、函数、条件语句、循环等。 从“做什么”到“怎么做”的思维转变: 引导读者理解,编程并非直接“画图”,而是定义“如何生成图”、“如何响应交互”、“如何演变形态”的过程。这种思维的转变,是实现动态、交互、智能设计的关键。 历史的回响与未来的展望: 简要回顾设计与技术融合的历史脉络,从早期计算机辅助设计(CAD)到如今的生成式设计、算法艺术,勾勒出代码在设计领域日益增长的重要性。 第二篇:搭建基石——可视化编程与逻辑构建 可视化编程的魅力: 鉴于设计师的视觉化思维习惯,本书将优先介绍和运用可视化编程工具(例如,Processing, TouchDesigner, Node-RED等)。这些工具通过图形化的节点连接,直观地展现代码逻辑,大大降低了入门门槛,让学习者能快速感受到“指令”转化为“结果”的即时反馈。 “连接”即“逻辑”: 学习如何通过连接不同的节点或模块,来构建复杂的程序逻辑。我们将从最基础的“触发”、“响应”、“数据流”、“条件判断”入手,逐步引导读者理解如何控制图形的生成、色彩的变化、元素的运动等。 “参数”的魔力: 深入理解参数化设计在代码世界中的实现。学习如何定义变量,如何通过调整参数来控制设计的形态、尺寸、颜色、透明度等,从而实现设计探索的效率最大化。 “状态”与“交互”的初步探索: 引入“状态”的概念,学习如何让程序在不同的状态下呈现不同的视觉效果或行为。例如,鼠标悬停时的颜色变化,点击按钮时的元素出现或消失等,为后续的交互设计奠定基础。 第三篇:精雕细琢——代码的表达力与设计美学 从“结果”到“过程”的思考: 即使使用可视化工具,我们也将鼓励读者去理解其背后的“代码逻辑”,而非仅仅停留在“连接”层面。我们将讲解不同节点或模块的功能,以及它们如何组合实现特定的视觉效果或交互行为。 “生成”的力量——算法美学: 探索如何利用简单的算法规则,生成复杂而富有变化的视觉模式。例如,基于噪声函数(Perlin Noise)的自然纹理生成,基于细胞自动机(Cellular Automata)的有机形态生长,基于群集行为(Flocking)的模拟动态。 “时间”的维度——动画与动效: 学习如何利用代码控制时间,实现流畅的动画效果。从简单的位移动画,到复杂的缓动曲线(Easing Curves)应用,再到基于物理模拟的动态效果,让设计在时间维度上焕发生机。 “数据”的赋能——数据可视化与设计: 探索如何将数据转化为富有表现力的视觉形式。学习使用代码读取和处理数据,并将其转化为图形、图表、甚至是抽象的艺术装置。让数据不再是枯燥的数字,而是充满故事的视觉语言。 第四篇:跨越边界——从概念到实现 基础编程语言的桥梁: 在建立起对编程逻辑的直观理解后,本书将适时地引入一些流行的、对设计友好的基础编程语言(例如,Python, JavaScript)的入门概念。我们将着重讲解这些语言如何实现可视化编程中的逻辑,以及它们在设计领域的实际应用(如,Web前端交互,创意编码平台)。 设计工具的“编程化”: 探讨如何利用代码与现有的设计软件(如,Adobe After Effects的表达式,Blender的Python脚本)结合,扩展设计的可能性。 项目实践与案例解析: 通过一系列精心设计的项目案例,引导读者将所学知识融会贯通,解决实际的设计问题。这些案例将涵盖交互界面、动态海报、数据可视化艺术、参数化建模等多个领域。 持续学习的路径图: 提供清晰的学习路线建议,帮助读者在掌握本书内容后,能够继续深入探索更高级的主题,并找到适合自己的发展方向。 本书的独特价值: 非技术背景友好: 专为设计师思维量身定制,用设计语言解释编程概念。 系统性知识框架: 从认知重塑到实践应用,层层递进,构建完整的知识体系。 强调“创造力”: 将编程视为一种赋能设计的工具,激发无限的创意潜能。 实践导向: 大量案例和项目驱动,帮助读者学以致用。 前瞻性视野: 关注设计与技术融合的前沿趋势,为未来设计发展提供指引。 《代码的几何美学:为创想注入生命》不仅仅是一本书,更是一次邀请,邀请您一同踏上这段充满惊喜的创作之旅。我们相信,当设计的直觉与代码的严谨碰撞,当创意的火花在逻辑的基石上点燃,定能绽放出前所未有的绚丽之光。准备好,用代码为你的每一个绝妙构想,注入生命,让它们在数字世界中,以最美的姿态自由绽放。