存在(Ǝ) – 使得(∋)
摘要
介绍了一种抽象的视觉编程语言,用于使用向量、标量、字形和栖息地来创作动画时钟,重点在于艺术表达和时间表示。
暂无内容
查看缓存全文
缓存时间: 2026/06/15 08:57
# 存在(Ǝ)—— 使得(∋)
来源:https://www.fractalkitty.com/there-is-3-such-that/
让我为你讲述一门语言。不过如果你想直接去玩,可以点这里 (https://te-st.ing/)。下面会有点抽象。
带有类原子轨道的桃花时钟
带有对称性的紫色时钟
### 有一块可作画的画布
画布是一个正方形,其内包含一个半径为 ρ 的最大圆。
### 存在时间的向量
Ǝ 一只渡鸦 ∋ 小时向量。
一张张开喙、面朝右的渡鸦简图Ǝ 一只乌鸦 ∋ 分钟向量。
一张面朝右的乌鸦简图Ǝ 一只喜鹊 ∋ 秒向量。
一张面朝右的喜鹊简图Ǝ 一个原点 ∋ 零向量。
### 这些向量可以构成:
**标量**
表示从向量归一化为标量的符号。从左到右依次为:向量变为单一数值的地方。
- ./ρ2 – 两个向量的归一化点积
- || ˙||/ρ – 归一化模长
- →/ρ – 归一化水平分量
- ↑/ρ – 归一化垂直分量
以鸟类图形表示的向量连接到标量(所有标量均已用画布半径 ρ 归一化)
一旦你有了标量,它们还可以构成*新的标量*:加、减、乘、除。
一行显示的方形、短横线、叉方形、点方形符号。- ⊞ 加
- − 减
- ⊠ 乘
- ⊡ 除
**修改后的向量**
向量可以相加、相减、旋转和相乘
向量和修改后的向量都有水平和垂直分量,就像点或位置一样。
### 字形
让事物可见。它们接收向量并输出到画布。太阳、月亮和星星位于向量的坐标处,线条连接两个向量。
作为按钮的太阳、月亮、星星和线条每个字形都可以调节。
一个带有滑块和颜色的线条字形,在弹出窗口中显示。### 栖息地
增添构图,可接收向量输入。
栖息地描绘画布——不仅仅是画一个点。
- 草
- 树
- 星云
- 元轨迹
- 蛋
- 焦点(舷窗)
- 苔藓
向量输入会稍微改变它们的移动方式。
### 调节 ◍
参数可以改变整个构图的呼吸节奏。
- 每天循环次数——时钟在24小时内循环的次数
- 每循环小时数——渡鸦循环的基础
- 默认呼吸深度和速度——所有元素继承的静止节奏
- 线条和形状的默认描边粗细
- 主题——氛围、单色、对比、萧氏、三色、植物
- 背景颜色、默认线条颜色、默认形状颜色
- 帧率
### 构图
使用所有类型的组件并连接它们来构成一个时钟。
前往 https://te-st.ing/ 为自己制作一个时钟,然后导出保存。
左侧为节点构图,右侧为圆形时钟构图的网站## 如何实现?
我目前在 Recurse Center (https://www.recurse.com/) 参加一个为期6周的项目。我想为“不可能之日”制作一种能生成时钟的语言。在起草了一个原型后,我稍微完善了想法,并制作了第二个原型。
### 从类型开始
有向量、修改后的向量、标量、标量修饰符、字形和栖息地。
### 形状
该工具有几个主要组件:
- **织机** 保存构图——节点、箭头和全局变量。- 类型表示为节点。 - 你可以从调色板将一个节点拖到织机上。 - 节点可以用箭头连接。
- **织造** 将构图编译成预览 iframe 内的一个 p5 草图。- 织机中的每次更改都会重新织造预览中的时钟
- 每个时钟都可以作为独立的 HTML 文件下载。
### 组件碎片
- **Svelte 5**——runes、snippets、事件属性。
- **TypeScript**,配合 `svelte-check` 和 ESLint。
- **Vite** 用于开发和构建。
- **Svelte Flow** (https://svelteflow.dev/) 用于节点图(织机)
- **p5.js** (https://p5js.org/) 用于画布上渲染的时钟- 内联到导出的 HTML 中,这样文件是自包含的——离线也能打开,拖放到斜杠页面(也许 /clock 放在博客上不错——暗暗示意)
- **`localStorage`** 用于自动保存、撤销历史、节点位置和一些偏好设置。
所有内容都在你的浏览器中运行。
### 选择
**编辑器是无文字的**(大部分)按钮上使用符文,节点上手绘图标,界面简洁。只有头部操作保留了文字标签。工具提示可以切换开启或关闭(根据 IndieWeb (https://indieweb.org/) 聚会的反馈)
**时钟是程序化的**调色板中的节点和画布上的节点主体使用符号或手绘 PNG。但导出的时钟用 p5 图元配合随机性绘制所有内容。
**时间只有一个来源。**编织草图中的一个 `dayFraction` 函数返回我们处于一天的什么位置,每只鸟的角度都由此推导。改变 `cyclesPerDay` 或 `hoursPerCycle`,时钟的节奏就会重新调整。
**调试模式是可视化的**切换 `⌖` 开启调试模式。出现一个滑块,可以划过一整天。在此模式下,选中的节点会高亮。
**画布**根据 IndieWeb 的一些反馈,空白画布上会有一些示例时钟。图层面板已起草,但仍在完善中。
### 命名
头部符文 `Ǝ` 和 `∋` 读作*存在*/*使得*——对应编辑侧和渲染侧。“织机”承载线程;“织造”将它们变成可见的东西(`∋` 使得)。
相似文章
Show HN:花的园 – ASCII艺术之前的图像排印档案
一个来自世界各地的图像排印作品档案,展示ASCII艺术之前的排印设计,可按地点和年份筛选。
Show HN:一个ASCII 3D渲染引擎
GlyphCSS是一个JavaScript库,它使用ASCII字符在DOM中渲染带纹理的3D网格,支持多种3D格式,并与原生JS、React和Vue集成。
Markdy:类似 Mermaid 图表,但用于动画
Markdy 是一个开源的动画 DSL 引擎,通过简单的文本语言即可创建复杂动画,类似于 Mermaid 图表但用于运动。它零依赖,通过 Web Animations API 实现 Web 原生渲染,并且设计为对 AI 代理友好。
告别一行APL代码
作者反思了在其体素游戏中使用的一行APL代码,用于检查暴露的区块面,并解释了其灵感来源于康威生命游戏及其性能表现。
它是如何做到如此出色的?(DALL-E 解析 第二部分)
本文介绍了 DALL-E 的架构,重点阐述其 Transformer 组件如何将语言与离散图像表示相关联,从而根据文本提示生成高质量图像。