Skip to content

Releases: bitbybit-dev/bitbybit

0.19.1

04 Dec 16:15
85b66a3
Compare
Choose a tag to compare
  • Set up github actions to run unit tests and build commands of all packages on each commit
  • Update babylonjs to v7.37.1
  • Update threejs to v0.171.0
  • refactored some babylonjs imports so that lite runners would be able to take in dependencies from window objects
  • check app-examples of how to use new threejs and babylonjs runners which allow you to include bitbybit via single javascript file in your projects

0.19.0

27 Nov 12:26
Compare
Choose a tag to compare

KABOOM with Manifold integration, 5 new NPM packages, monorepo setup

Big update with a lot of new features, surrounding manifold-3D geometry kernel integration. Check out their repo here: https://github.com/elalish/manifold

  • We integrated manifold in two npm packages - @bitbybit-dev/manifold and @bitbybit-dev/manifold-worker. One is meant to be used in synchronous backend or frontend apps, the other executes all algorithms in web worker and communicates with main thread via hashed pointers, similar to how our OCCT and JSCAD kernels work.
  • bitbybit.occt layer now has new algorithm to project points on shapes by a given vector.
  • We refactored our @bitbybit-dev/core package by adding 3 new npm packages, namely

@bitbybit-dev/base - Algorithms for math, vectors, transforms and other basic stuff needed to build geometry. Idea is to keep this package as lightweight as possible and not to include dependencies to other packages as long as possible. This base package will potentially be included as dependency to all of our higher level CAD packages.
@bitbybit-dev/jscad - Our JSCAD kernel integration lived in the core layer, now it is separated into this stand-alone package. This allows users to only use this package in their apps if needed.
@bitbybit-dev/jscad-worker - JSCAD webworker implementation is also separated into a stand-alone package. Having it integrated in the core was not very convenient for people who do not need to use it for example.

Monorepo update

We started the transition to monorepo setup in v0.18.0. With v0.19.0 this transition is more or less over. All of our npm packages that are shared publically will, from now on, be developed in this repository.

Here's the picture explaining the architecture of the packages in this repo
NPM package architecture

0.18.0

07 Nov 06:15
Compare
Choose a tag to compare

THREEJS support imlemented.

This git repo has become monorepo for core, threejs and babylonjs npm packages. Core has been split into game engine independent layer. It was previously coupled with BabylonJS.

We introduced draw helpers that construct ThreeJS meshes from bitbybit geometry types.

This repo will potentially host more packages in the future.

0.17.3

27 Oct 15:44
Compare
Choose a tag to compare
  • jsonpath replaced with jsonpath-plus, which seems to be better maintained under MIT license
  • Update to Babylonjs 7.31.0
  • Update to latest JSCAD
  • Exposed JSCAD export to 3MF

0.17.2

27 Oct 12:25
Compare
Choose a tag to compare
  • ease functions for math and vector categories
  • gaussian splat now supports compressed ply files from supersplat editor and uses default import method
  • fixed shadows for meshes that do not contain metadata

0.17.1

11 Oct 05:35
Compare
Choose a tag to compare
  • Creating simple WebXR experiences exposed to Rete editor, including immersive-ar
  • Scale ratio implemented for gizmos
  • Lists extended to have random get and remove functions
  • Included earcut into library to fix dependency issue

0.17.0

03 Oct 05:43
Compare
Choose a tag to compare
  • BabylonJS GUI exposed - basic support for advanced dynamic texture, stack panel, control, container, button, color picker, input text, text block, slider, checkbox, radio button, image
  • BabylonJS Gizmos exposed with manager
  • BabylonJS MeshBuilder expanded to support more geometries
  • Simple JSON array search functionality
  • Text formatting function implemented with placeholders {i}
  • Method to invert hex colors to their opposite or to the black & white variant (useful for labels)
  • New function to clone BabylonJS mesh to multiple positions
  • BabylonJS updated to v7.27.3

0.16.8

25 Sep 19:10
Compare
Choose a tag to compare
  • new function createFaceFromWiresOnFace, fixed subdivideToRectangleHoles and subdivideToRectangleWires
  • made uv offsets work for rectangle wires on face
  • lists extended
  • lights support shadow properties

0.16.5

20 Sep 20:03
Compare
Choose a tag to compare
  • bitbybit.babylon.lights.shadowLight.setDirectionToTarget - sets target to shadow light
  • bitbybit.babylon.lights.shadowLight.setPosition - sets position to shadow light
  • bitbybit.babylon.materials.skyMaterial - new methods for creating sky material and manipulating its properties
  • bitbybit.vector.removeAllDuplicateVectors - removes all duplicates in vector list
  • bitbybit.vector.removeConsecutiveDuplicateVectors - removes consecutive duplicates in vector list
  • bitbybit.point.translatePoints - translates points
  • bitbybit.point.translatePointsWithVectors - translates points with multiple vectors for each point
  • bitbybit.point.translateXYZPoints - translates points by xyz
  • bitbybit.point.scalePointsCenterXYZ - scales points around center in xyz factors
  • bitbybit.point.rotatePointsCenterAxis - rotates points around the axis
  • bitbybit.point.removeConsecutiveDuplicates - remoces consecutive duplicate points
  • mesbuilder method inputs accept enableShadows property now
  • bitbybit.lists.removeDuplicateNumbers - removes duplicate numbers that match exactly
  • bitbybit.lists.removeDuplicateNumbersTolerance - removes duplicates by using the tolerance value for comparisons
  • bitbybit.lists.repeatInPattern - repeats provided list members in pattern till certain length is reached in the result list
  • bitbybit.lists.sortNumber - sorts the number list asc or desc depending on options
  • bitbybit.lists.sortTexts - sorts the text list asc or desc depending on options
  • bitbybit.lists. sortByPropValue - sorts the json list asc or desc depending on options
  • bitbybit.occt.shapes.vertex.vertexFromXYZ - creates vector from xyz values

0.16.4

19 Sep 14:06
Compare
Choose a tag to compare
  • babylonjs update to v7.26.0
  • new grey gradient skybox
  • bitbybit.occt.shapes.face.createFacesFromWiresOnFace - creates faces from wires on the face so that orientation would match the guide
  • bitbybit.occt.shapes.face.createFaceFromWireOnFace - creates face from wire on the face so that orientation would match the guide
  • bitbybit.occt.shapes.face.subdivideToWires - subdivide face to the given number of divisions and place wires on the subdivision limits - users can choose u or v direction
  • bitbybit.occt.shapes.face.subdivideToRectangleWires - creates rectangular wire cells on the face - patterns for uv scale, inclusion and fillet radius can be provided
  • bitbybit.occt.shapes.face.subdivideToRectangleHoles - creates rectangular face cells on the face - patterns for uv scale, inclusion and fillet radius can be provided (can be used to pucnh holes in the face)
  • bitbybit.occt.shapes.face.wireAlongParam - create a single wire along parameter
  • bitbybit.occt.shapes.face.wiresAlongParams - create multiple wires along parameters