Skip to content

67js 0.16.0

Choose a tag to compare

@anxuanng anxuanng released this 08 Nov 06:18
bce0a97

Highlights

  • GPU path tracer: backend: 'gpu' renders the 1080p demo room in about 40 s, against 586 s on the CPU. The light bake can use it too (#302)
  • Outlines and toon shading with environment.lines (#285)
  • Subsurface scattering for skin, wax and leaves with the material subsurface block (#283)
  • 3D Gaussian splats from a standard PLY file, as an addon (#288)
  • environment.viewTransform picks ACES, AgX or neutral, and AgX now matches Blender 5.2 (#282)
  • Easing curves and cubic-bezier on keyframes, within 1e-4 of Blender (#286)

Agents and MCP

  • Recipes place catalog GLB assets next to terrain and procedural meshes, and render jobs draw them (#320)
  • A vegetation node plants one tree or a seeded forest over terrain, with seasons and wind (#321)
  • motion.drive drives a car model along a path with real steering, reverse and brake lights (#322)
  • Crowds of up to 1,000 walkers draw in one batch per material (#323)
  • Clips retarget between characters, feet stay planted, and morph targets key by name (#325)
  • Materials can play an image sequence as their colour map (#339)
  • The new scene_walkmap tool finds where a character can walk (#553)
  • The MCP schema now accepts every environment and node field the engine reads (#490)

Rendering

  • Up to 16 point, 8 spot and 7 area lights, from 8, 8 and 4 (#261)
  • Water got depth fade, soft shadows on the bed, refraction, and a reflection that survives rough water and costs less (#349)
  • Default fog fits the scene size, so the far side of a big world no longer fades out (#263)
  • volumeFog takes heightFalloff for valley mist that thins with height
  • Sunlit rooms get softer bounced light by default, and bake.irradianceGrid adds Cycles-like multi-bounce light (#506)
  • Far trees no longer pop darker when they switch level, and big forests can use impostor cards (#432)
  • Reversed-Z depth and a z-fighting warning that names both parts and the fix (#310)
  • Mesh blend softens the seam where a rock or a trunk meets the ground (#478)
  • Your own post passes and a GLSL hook on materials (#405)
  • Plain scenes draw faster, and far shadow cascades redraw less often (#388)

glTF

  • Many more real-world files load: meshopt, WebP, spec-gloss, optional extensions, skeleton-only clips and common Sketchfab defects (#496)
  • KTX2 textures stay GPU-compressed, about a quarter of the memory (#304)
  • Large texture sets scale down instead of throwing, and the default limits are higher (#260)

Animation and physics

  • Cloth follows moving characters, and steps live with pins and tearing (#326)
  • renderer.updateParts is about 6 times faster for matrix and colour updates (#299)

Tools, docs and site

  • Video export encodes in the browser: a 4,488-frame film took 21 s instead of 140 s (#301)
  • Path traced jobs can use Intel Open Image Denoise (#303)
  • The docs are now interactive learn pages with live examples, plus an API reference (#508)
  • The showcase worlds show their first frame sooner and stream the rest in (#445)
  • Agent benchmarks against three.js code and the Blender MCP on the same tasks (#31)

Breaking changes

  • Skin, morph, water, foliage, terrain, liquid and splat shaders moved into addons. A renderer that draws those parts without the import throws and names it. Recipes and loaders import them on their own (#281)
  • glTF limit errors are one RangeError that names every limit the file goes over. Match on the option name, not the old message (#458)
  • material.lightMask defaults to -1, every light (#261)
  • normalizeAgentLook returns fogDensity: null for fog that fits the scene (#263)

Install: npm install @codepawlhq/67js@0.16.0