我将 Linux 移植到 PS5 并将其改造成了 Steam Machine。运行带有光线追踪的增强版 GTA 5。🤯 2026年3月6日 · 晚上8:02 UTC 443 1,617 17,485 2,005,204
我将 Linux 移植到 PS5 并将其改造成了 Steam Machine。运行带有光线追踪的增强版 GTA 5。🤯 2026年3月6日 · 晚上8:02 UTC 443 1,617 17,485 2,005,204
## WigglyPaint:病毒式传播及其阴暗面
WigglyPaint 是一款于 2023 年 12 月创建并在 Itch.io 上发布的绘画程序,意外地在亚洲社交媒体上走红。该程序的核心功能是自动“线条抖动”——一种通过操纵多个图像缓冲区和随机绘图工具实现的生动动画效果。与 Photoshop 等复杂程序不同,WigglyPaint 优先考虑简洁性,具有有限的调色板、单个撤销按钮以及一种独特的“标记”绘制在线条图下方的操作流程。
WigglyPaint 构建在开源 Decker 环境中,其灵活性使其易于定制,并且其有意的设计选择受到欢迎,帮助艺术家克服了创作瓶颈。然而,这种成功却被广泛的盗窃行为所掩盖。许多网站涌现出来,提供修改过的、通常虚假宣传的 WigglyPaint 版本(特别是 v1.3)——有时甚至声称与原始创建者有关联并募集捐款。这些网站借助 LLM 构建,经常包含错误信息和被盗艺术品。移动“移植”版本进一步限制了程序的自定义功能。
该创建者对这种剥削感到沮丧,强调了作者身份的重要性以及围绕 LLM 生成内容所产生的伦理问题。尽管存在侵权行为,WigglyPaint 仍然是免费且开源的,是献给创意社区的一份礼物。
## Eyot:无缝GPU卸载 Eyot是一种新的编程语言,旨在简化GPU加速,目标是使利用GPU像使用CPU上的后台线程一样容易。它通过允许代码透明地编译为CPU和GPU版本来实现这一点,运行时管理它们之间的通信——消除了GPU编程中传统上所需的、手动内存管理、内核编译和调度的复杂性。 Eyot面向游戏开发、数值分析和人工智能等领域,允许开发者使用简单的关键字(`cpu`或`gpu`)指定函数在CPU或GPU上执行。该语言处理底层的复杂性,从而提供统一的编码体验。 目前Eyot处于早期开发阶段,优先考虑CPU/GPU交互等核心功能。未来的计划包括通过Vulkan添加渲染支持,扩展语法(目前保持最简以确保兼容性),以及改进GPU内存管理。目标不是*取代*现有的GPGPU库,而是提供一种更方便、更易于访问的方法,即使这意味着为了易用性而接受轻微的性能折衷。Eyot可通过playground和安装方式进行实验,开发者欢迎反馈。
观察人士认为,这归因于良好的骑行天气、经济实力雄厚的父母——最受欢迎品牌中最便宜的型号零售价至少为3000澳元(2110美元,1579英镑)——以及缺乏可靠的公共交通。
## 奧德賽:突破沉浸式边界的里程碑LARP
奧德賽是一款广受好评的科幻LARP,灵感源自《太空堡垒卡拉狄加》,在2019年首次成功后,最近又复活并连续举办了三场售罄的活动。超过200名玩家在持续50小时内居住在一个庞大的宇宙飞船环境中——由200多名志愿者以19万欧元的成本建造,拥有精细的布景,并由定制软件驱动,用于战斗、工程和通信。
这款LARP以其“钟表式”游戏玩法而闻名,要求玩家在严格的时间压力下完成相互依赖的任务,从而反映了电视剧《33》的紧迫感。除了复杂的游戏机制外,奧德賽还以其探索悲伤、决心甚至种族灭绝等主题的复杂叙事而著称——这与更乐观的沉浸式体验形成了鲜明对比。
虽然门票(每张550欧元)几乎无法覆盖制作成本,但该项目的成功引发了关于创建一个财务上可持续、专业运营的LARP的讨论。目前,奧德賽在芬兰游戏博物馆举办的主要展览中展出,正在突破沉浸式艺术的边界,挑战对LARP的传统观念,吸引了潜在投资者的关注,并巩固了其在该领域作为开创性成就的地位。
## 龙虾:一种简洁而强大的编程语言
龙虾是一种开源、静态类型编程语言,专为速度和易用性而设计,尤其适用于游戏开发和图形处理。它旨在结合静态类型和编译时内存管理的优势,同时采用轻量级、简洁的语法,最大限度地减少样板代码。
主要特性包括:基于流的类型推断、编译时引用计数/借用检查,以及轻量级的块/匿名函数。龙虾支持向量运算、统一的重载和动态分发,以及用于零开销性能的不可变内联结构体。它拥有无GIL、无竞争的多线程模型。
实现提供了一个JIT编译器用于快速迭代,以及编译到C++以获得优化的速度。包含了一个完全图形化的调试器和动态代码加载功能。龙虾相对较快——比Python和Lua更快——并且内存使用经济。
该语言具有可移植性,可在Windows、Linux、macOS、iOS、Android和WebAssembly上运行,并提供对OpenGL的高级接口,包括2D/3D图元、着色器和精确的文本渲染。它还提供了一个简单的声音系统和ImGui支持,以及A*寻路等实用库。
更多信息、文档和源代码可以在[GitHub](https://github.com/lobster-lang/lobster)上找到。
## Sem:语义版本控制与差异分析
Sem 是一款工具,它通过**语义差异**增强 Git 的功能,超越了基于行的更改,从而识别出*哪些*代码被更改——例如,添加或修改了一个函数——而不是*哪里*。它为 13 种编程语言(TypeScript、Python、Go、Rust、Java 等)以及结构化数据格式(JSON、YAML、TOML)提供实体级别的差异。
**主要特性:**
* **实体识别:** 检测函数、类和其他代码实体的添加、修改和删除。
* **重命名/移动检测:** 使用结构化哈希和模糊相似性识别重命名或移动的实体。
* **影响分析:** 确定实体更改可能造成的破坏。
* **多功能用法:** 直接在 Git 仓库中使用,支持暂存的更改、特定的提交,甚至 stdin 输入。
* **JSON 输出:** 支持与 AI 代理和 CI 管道集成。
Sem 提供 CLI 版本(可通过 Rust 或预构建的二进制文件安装)和 Rust 库版本,以便集成到其他工具中,例如 weave 和 inspect。它利用 tree-sitter 进行解析,并使用 git2 进行 Git 操作。
## Rust & Wasm 与 `wasm-bindgen`: 实用模式 使用 Rust 和 WebAssembly (Wasm) 通过 `wasm-bindgen` 进行开发可能具有挑战性,但采用特定模式可以显著改善体验。 本摘要概述了更流畅开发的 key 策略。 **核心原则:** 主要通过引用 (`&`) 传递数据跨越 Wasm 边界,利用 `Rc<RefCell<T>>` 或 `Arc<Mutex<T>>` 实现可变访问和共享所有权。 避免在导出类型上派生 `Copy`,以防止意外复制 Wasm 资源。 使用 `wasm_refgen` 处理包含需要跨越边界的类型(如 `Vec`)的集合。 **命名约定:** 在 Rust 导出的类型前加上 `Wasm*` 前缀(例如 `WasmFoo`),并使用 `js_name` 以未加前缀的名称暴露给 JavaScript。 相反,在 JS 导入的类型前加上 `Js*` 前缀。 **错误处理:** 使用 `js_sys::Error` 为 `JsValue` 实现 `From<YourError>`,以便在 JavaScript 端提供详细的错误信息。 **关键考虑因素:** `wasm-bindgen` 管理 JavaScript 的垃圾回收环境与 Rust 的所有权模型之间的通信。 使用 `js_sys` 进行手动绑定是一种选择,但依赖 `bindgen` 的胶水代码可以提供更好的编译时反馈。 **构建过程:** 使用 `build.rs` 脚本在 Wasm 构建中包含 Git 哈希和构建状态,以帮助调试和版本跟踪。 这些模式可以促进在 Wasm 中桥接 Rust 和 JavaScript 时提高清晰度、安全性和可维护性。
作者认为,即使通过像LLM这样的工具实现*完美*的信息检索(想象成一个无懈可击的“我感觉幸运”谷歌按钮),最终也会*阻碍*智力发展。虽然提供了答案,但它会剥夺研究过程中至关重要的*经验*——接触不同的观点,应对矛盾,以及培养批判性思维能力。 然而,LLM甚至并非完美有效。它们擅长模仿在*我们*缺乏专业知识的领域的理解(盖尔-曼失忆症),常常自信地呈现看似合理但可能存在缺陷的信息。这种“流畅性”掩盖了潜在的不确定性,阻碍了培养关键的“认识论嗅觉”——直觉地检测不准确的能力。 真正的智慧并非建立在获得正确答案之上,而是建立在理解*为什么*某事可能是错误的,以及驾驭知识的复杂性之上。因此,仅仅依赖高效的LLM会带来“智力腐烂”的风险,因为它优先考虑结果,而非成为的关键过程。