用途
本技能用于搭建「哈希种子生成艺术系列」(fxhash 或 Art Blocks 风格)。核心目标:一份代码(sketch)为每个哈希产出一件独一无二的作品,且同一哈希永远产出同一件作品。所有随机性都必须来自由哈希派生的单一带种子随机数生成器(RNG)。
主要能力
1. 从哈希派生确定性 RNG
绝不调用 Math.random(),而是用 token 哈希为一个小型 PRNG 播种。
fxhash 提供 $fx.rand()(0..1 均匀分布,由 token 确定性派生),可直接包装:
// fxhash: $fx.rand() is already deterministic per token
const R = () => $fx.rand()
通用 / Art Blocks 风格(哈希 → 带种子 PRNG):
function mulberry32(a){ return function(){ let t=a+=0x6D2B79F5; t=Math.imul(t^t>>>15,t|1); t^=t+Math.imul(t^t>>>7,t|61); return ((t^t>>>14)>>>0)/4294967296 } }
function seedFromHash(hash){ let h=1779033703^hash.length; for(let i=0;i<hash.length;i++){ h=Math.imul(h^hash.charCodeAt(i),3432918353); h=h<<13|h>>>19 } return h>>>0 }
const R = mulberry32(seedFromHash(tokenData.hash)) // Art Blocks: tokenData.hash
所有随机性都使用 R(),并派生辅助函数:
rint=(a,b)=>Math.floor(a+R()*(b-a))
pick=arr=>arr[Math.floor(R()*arr.length)]
2. 定义特征 / 属性(traits)
用 R() 做出高层选择,并暴露出来,以便平台索引稀有度:
const PALETTES = { Ember:['#ff6b5c','#ffb347'], Tide:['#3ad6c5','#5b8cff'], Orchid:['#e85aff','#7c5cff'] }
const paletteName = pick(Object.keys(PALETTES))
const density = pick(['Sparse','Balanced','Dense'])
const technique = R() < 0.15 ? 'Rare-Variant' : 'Classic' // rarity via thresholds
// fxhash:
$fx.features({ Palette: paletteName, Density: density, Technique: technique })
// Art Blocks: expose window.$generativeTraits or log for the script
再根据这些特征 + R() 确定性地绘制作品。
3. 确定性预览
平台会截取静态图。确保画布能快速到达最终稳定帧(或发出就绪信号):
// fxhash: call when the artwork is rendered and ready to capture
$fx.preview()
4. 项目工程规范
- 自包含打包;固定库版本(避免 CDN 漂移)。
- 固定宽高比;所有尺寸相对画布缩放,使其在任何分辨率下都能渲染(缩略图 → 印刷品)。
- 测试确定性:同一哈希渲染两次 → 像素完全一致。渲染大量随机哈希 → 有变化但不出现难看的离群值(对参数空间的坏区域做钳制)。
- 保留 ?seed= / hash 覆盖参数用于本地测试,以便浏览整个参数空间。
5. 铸造前检查清单
- 任何地方都没有未播种的随机性(搜索 Math.random)。
- 同一哈希 → 相同输出(已验证)。
- 特征已暴露,且在约 100 个样本哈希上稀有度感觉合理。
- 在低分辨率和极高分辨率下都能干净渲染。
- 预览/截图在正确时机触发。
交接
- 美术本身 → generative-systems / p5-sketch-engine / shader-artist
- 作为特征的配色 → color-composition
- 高分辨率/视频捕获 → art-export-engineer(/export-art)
适用场景
适用于在 fxhash、Art Blocks 等平台上发布生成艺术系列,需要保证每个 token 哈希对应唯一且可复现作品、并需要暴露特征用于稀有度索引的场景。
限制
资料未提供关于收费、价格、平台支持范围、具体效果或性能指标的信息。