@felbrasil/dreamy

中文文档
0.15.0发布于 2026/11/13MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2555

Dreamy:为React(WASM mesher,Tree.js Viewport,被克特后卫所保存)制作的花瓶生物雕塑工作室.

中文使用文档
文档目录7 节
  1. 安装
  2. 用整个工作室
  3. 道具
  4. 使用块
  5. 烤丝
  6. 所需资源
  7. 许可证

梦想

一个用于反应的花瓶生物雕塑工作室: 印章和涂抹雕塑, 涂漆, 用预先制作的 骨架和标记,并使其成为正常的3D或像素艺术. 在网络工人内部使用Rust/WASM进行计量; 3D视图为Tree.j. 创建保存在浏览器(IndexedDB)中,可以同步到一个GitHub或GitLab寄存器.

现场演示 : https://dreamy-poc-c89175.gitlab.io (英语)

安装

npm install @felbrasil/dreamy react react-dom three

react, (中文(简体) ), react-dom (19个)和 three 是同伴的依赖关系。 没有其他可配置的:工人和 它的WASM在包件中被内置,因此Vite,Next.js(webpack或Turbopack)和其他捆绑机一样工作.

用整个工作室

import { DreamyStudio } from "@felbrasil/dreamy";
import "@felbrasil/dreamy/styles.css";

export function App() {
  return <DreamyStudio onReady={() => console.log("studio ready")} />;
}

工作室会填充页面(被固定,全取景口),因此使一页一出. styles.css 还装上工作室的 图标(Font Authority)和字体(Nunito),来自其CDN.

单位 下一个.js 您可以从服务器组件直接渲染:软件包条目是一个客户端模块. 导入 styles.css 在您的根布局中.

道具

Prop默认
database此浏览器的索引DB创作图书馆的所在地(LibraryDatabase: 列表/ 已读/ 已写/ 删除/ 已写).
storagelocalStorage用于视图偏好和 git 设置的密钥值存储 .
gitSynctrue提供 Scenes → Git: 与一个 GitHub 或 GitLab 仓库同步库( ken 保存在其中) storage) (中文(简体) ).
onReady一旦mesher被装入后即被调用,创作开放,工作室也已经作画了.

使用块

导入什麽
@felbrasil/dreamyDreamyStudio,索引DB 库,持续、同步、首选项
@felbrasil/dreamy/corecreateCreationApi: 事件源创建模式、命令、撤销、预制
@felbrasil/dreamy/viewportcreateViewport({ evaluator }): 三.js 渲染器和相互作用
@felbrasil/dreamy/evaluatorcreateEvaluator(): WASM mesher in a Worker(英语:TypeScript fallback)中的WASM mesher(英语:TypeScript fallback) 互联网档案馆的存檔,存档日期2013-12-02
@felbrasil/dreamy/api类型:模型、命令、事件和端口
@felbrasil/dreamy/bakecreateSpriteBaker(): 以调色板角色的形式创建的像素艺术图案, 没有工作室 UI
import { createCreationApi } from "@felbrasil/dreamy/core";
import { createEvaluator } from "@felbrasil/dreamy/evaluator";
import { createViewport } from "@felbrasil/dreamy/viewport";

const api = createCreationApi({ ids, clock, log });
const viewport = createViewport({ evaluator: createEvaluator() });
viewport.mount(hostElement, callbacks);

烤丝

import { createCreationApi } from "@felbrasil/dreamy/core";
import { createSpriteBaker, spriteColors } from "@felbrasil/dreamy/bake";

const api = createCreationApi({ ids, clock, log });
api.dispatch({ type: "GenerateCreature", payload: { seed: 42, chimera: false, variety: 0.7, target } });

const baker = createSpriteBaker();
const [front, back] = await baker.bake(api.creation(), [
  { view: { yaw: 15, pitch: 15 }, size: 256 },   // degrees around the creature's front
  { view: { yaw: 180, pitch: 30 }, size: 256 },  // its back, from above
  { view: { yaw: 15, pitch: 15 }, size: 64, dither: 0.2, normalStrength: 0.5 }, // less tone dither, flatter relief
]);
// front.roles: one palette role per pixel (0 transparent, 1 ink, 2–28 slot × tone); front.colors draws them,
// spriteColors(otherPalette) recolors them. front.anchor: the feet row and the silhouette's centre.
// front.bones: the skeleton (parent index, world position, sprite x / y, depth) for a bone or x-ray view.

只画出烤宝石的游戏导入光线 @felbrasil/dreamy/sprite 条目( 没有 WebGL、 mesher 或 React) :

import { decodeSpritePng, encodeSpritePng, spriteColors, spriteRgba } from "@felbrasil/dreamy/sprite";

const png = await encodeSpritePng(front);              // 8-bit indexed PNG: pixel = role, PNG palette = role colors
const { width, height, roles } = await decodeSpritePng(png);
const pixels = spriteRgba(roles, spriteColors(palette)); // ImageData pixels in any creature's colors

GenerateCreature 使用一个 stage (单位:千美元)"chibi", (中文(简体) ), "young" 或者说 "adult":同种是同一种生物 大头宝宝,在中间, 或者长大了.

面包师不需要反应 它使出屏幕,并在有WebGL 2的隐藏页面或无头浏览器中工作.

所需资源

一个带有WebGL 2,Web Workers and Web Assembly的浏览器. 只有客户端(没有服务器渲染工作室).

许可证

麻省理工学院

版本与发布记录

@felbrasil/dreamy 共发布 20 个版本,首次发布于 2026/10/20;过去 12 个月发布了 20 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.15.0latest2026/11/131 天前
0.14.02026/11/131 天前
0.13.02026/11/121 天前
0.12.02026/11/122 天前
0.11.02026/11/095 天前
0.10.02026/11/059 天前

关于 @felbrasil/dreamy 的常见问题

@felbrasil/dreamy 是什么?

Dreamy:为React(WASM mesher,Tree.js Viewport,被克特后卫所保存)制作的花瓶生物雕塑工作室.

如何安装 @felbrasil/dreamy?

在项目目录运行 npm install @felbrasil/dreamy,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^19.0.0)、three(>=0.180.0)、react-dom(^19.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@felbrasil/dreamy 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@felbrasil/dreamy 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@felbrasil/dreamy 可以商用吗?

@felbrasil/dreamy 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@felbrasil/dreamy 的下载量有多少?

根据 npm 官方下载统计,@felbrasil/dreamy 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,555 次,日均约 85 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@felbrasil/dreamy 还在维护吗?

最新版本 0.15.0 发布于 2026/11/13(1 天前);至今共发布 20 个版本,其中过去 12 个月发布了 20 个;首次发布于 2026/10/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。