Skip to content

1.6.1

Choose a tag to compare

@matas-bitbybit-dev matas-bitbybit-dev released this 08 Nov 20:52
· 21 commits to master since this release
f17031d

Release Notes v1.6.1

A small release on top of 1.6.0, about how shapes mesh and look:

  • Meshing can size its precision by each shape's bounding box (precisionShare).
  • Drawing options gain edge widths that follow the model's size and a wire colour.
  • The BabylonJS context takes drawing defaults for anything drawn without options of its own, and the skybox gains nine photographed environments.
  • Manifold recipe cuts now reach through walls they stop just short of.
  • The documentation site's sources leave this repository.

No function was added or removed (2,205 in all), and no default changed, so a script draws as it did in 1.6.0 until it sets one of the new options. The OCCT kernels and engine versions are the same as in 1.6.0, so upgrading is a version bump.


Upgrading from 1.6.0

  • Nothing to change. Every new option is optional, and left out keeps 1.6.0's behaviour: precisionShare 0, edgeWidthBySize false, no wireColour, no drawDefaults.

  • One output changes: a Manifold recipe cut whose tool ends within the recipe's tolerance of the solid's face now cuts through it. In 1.6.0 that left a skin a rounding error thick over a window, or a sliver under a door. See Manifold recipes.

  • core's defaultEdgeColor takes two more optional parameters, wireColour and facesDrawn. Existing calls are unaffected.

  • Links into docs/:

    • the agent guides are in guides/;
    • the API overview is API.md at the root;
    • the CAD Cloud OpenAPI document is packages/dev/cad-cloud-sdk/openapi.json.

    learn.bitbybit.dev keeps every address.


Meshing: a precision share

  • precisionShare raises precision to that share of the longest side of each shape's bounding box. Large shapes mesh coarser and small ones keep precision, so one setting suits a single part and a whole assembly. It runs from 0 to 1 and is ignored with relativeDeflection.
  • It is on shapeToMesh, shapesToMeshes and the OCCT drawing options. The CAD Cloud SDK's pipeline types carry it too.

Drawing

  • edgeWidthBySize: edgeWidth scales with the diagonal of what is drawn, as if it were 10 model units, so edges look alike at any size. It is not meant for design builds.
  • wireColour: the colour of edges drawn without faces (a wire, an edge, or drawFaces off), used in place of edgeColour and edgeContrast. Appearance edge colours still win.
  • Both work in the BabylonJS, three.js and PlayCanvas renderers.
  • BabylonJS, drawDefaults on the context: the look bitbybit.draw gives anything drawn without options of its own.
    • It holds defaults for OCCT shapes, Manifold solids and cross sections, JSCAD meshes and lines, plus the metallic and roughness of materials made from colours.
    • Options a script passes are used as they are.
  • BabylonJS, nine photographed skyboxes in skyboxEnum: studio, partlyCloudy, sunset, clearDay, fairWeather, overcast, morning, dusk and night. They load prefiltered environments from the Bitbybit CDN and light the model as well as filling the background.

Manifold recipes

  • A cut reaches through within the recipe's tolerance. Manifold has no fuzzy boolean, so before each cut, any side of the tool that lies within tolerance of the same side of the solid is moved tolerance out through it.
    • Only those vertices move. A niche keeps its depth, and an opening keeps its outline.
    • An opening made of several parts is reached part by part.
  • Not reached: a face inside the solid's box (the inner corner of an L-shaped wall), and solids whose sides do not run along the cut's axes.

Tooling and docs

  • The documentation site's sources are no longer in this repository. learn.bitbybit.dev is unchanged.
    • The guides that the MCP server serves and the package tests run are in guides/, under CC BY 4.0 like API.md.
    • Earlier versions of the docs keep the licence they were published under.
  • The IFC corpus compares surface areas and holds agreement to per-file floors.

Dependencies

  • No engine or kernel changes: Babylon.js 9.32.0, three.js 0.186.1, PlayCanvas 2.23.3, manifold-3d 3.5.4, JSCAD 2.13, and the same OCCT kernels as in 1.6.0.