存在(Ǝ) – 使得(∋)

Hacker News Top 工具

摘要

介绍了一种抽象的视觉编程语言,用于使用向量、标量、字形和栖息地来创作动画时钟,重点在于艺术表达和时间表示。

暂无内容
查看原文
查看缓存全文

缓存时间: 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 3D渲染引擎

Hacker News Top

GlyphCSS是一个JavaScript库,它使用ASCII字符在DOM中渲染带纹理的3D网格,支持多种3D格式,并与原生JS、React和Vue集成。

Markdy:类似 Mermaid 图表,但用于动画

Hacker News Top

Markdy 是一个开源的动画 DSL 引擎,通过简单的文本语言即可创建复杂动画,类似于 Mermaid 图表但用于运动。它零依赖,通过 Web Animations API 实现 Web 原生渲染,并且设计为对 AI 代理友好。

告别一行APL代码

Hacker News Top

作者反思了在其体素游戏中使用的一行APL代码,用于检查暴露的区块面,并解释了其灵感来源于康威生命游戏及其性能表现。