Changelog
0.4.50
- Fix type signature
0.4.49
- Add
generateDesignhelper
Breaking Changes
API
The API class has been rewritten to remove dependencies and provide better type-hinting. Existing implementations will need to rework usage of the api.client property to calls directly to the api.fetch() method.
0.4.48
- Improve support detection w/
AdapterInterface.isSupported() - Various bug fixes
0.4.47
- Make
SceneInterfacemethods async - Add
SceneInterface.wait() - Fix up dependencies
0.4.46
- Upgrade three@0.177.0
- Implement WebGPU
0.4.45
- Update lighting rig and default environment map
- Switch environment map support from PNG to HDR
- Add
ModifierInterface.invalidate()andResourceInterface.invalidate()
0.4.44
- Ensure
Design.toJSON()returns a new object - Add
Design.reset() - Ensure
Design.load()reuses existing objects
0.4.43
- Implement
MaterialAssignment.getMatrix() - Fallback from
packedAlbedotobaseColorduring bakes
0.4.42
- Alter
ZoneAttachmentmaterial application strategy - Add force option to
ResourceInterface.render() - Bake with
getMatrix
0.4.41
- Improve reprojection (integrate API, update mapping structure)
- Implement
ZoneDataInterface.meshes(deprecatesZoneRecipientfeatures)
0.4.40
- Add
ScenePointerEvent.scene - Deprecate
ScenePointerEvent.nodesin favor ofScenePointerEvent.intersections - Add
MeshInterface.isZoneRecipient
0.4.39
- Expose
rotatePoint - Improve
AssignmentInterface.getMatrix() - Improve positioning logic, add tests
0.4.38
- Fix an issue where patterns appeared upside-down.
0.4.37
- Add handling for meshes without polygons
- Add logging for errors that occur in the modifier render listener
0.4.36
- Add retry capabilities to API client
0.4.35
- Ensure
ModelInterface.parserunsNodeInterface.load - Export additional resource and modifier option/source types
0.4.34
- Fix issue with
windowreference.
0.4.33
- Handle pass-throughs for zone intersections in
Tool
0.4.32
- Fix handling of
baseURLoption
0.4.31
- Fix
Design.apply()signature for patterns - Add point-and-click feature to
Tool
0.4.30
- Add
SceneInterfacecamera positioning helper options (b,f, and so on) - Add
MaterialResource.setColorconvenience method
0.4.29
- Fix some typing issues
0.4.28
- Emit
updatefromDesignfor internal changes, such as:- When the model is set
- When resources and modifiers are added or removed
- Immediately after
renderis emitted
0.4.27
- Add
update:startandupdate:endevents toResourceInterface - Add
render:start,render:end,update:start, andupdate:endtoModifierInterface - Improvements to events emitted by
DesignDesignemitsrenderfor itself andrender:endevents for resources and modifiers registered in the designDesignemitsupdateforupdate:endevents of resources and modifiers registered in the design
ToolcallsModifierInterface.render()directly instead ofDesign.render()to reduce emitter noise
0.4.26
- Disable
SceneInterfaceautoRotatewhenToolis active
0.4.25
- Fix
Tool"move" operation when modifier is rotated
0.4.24
- Add
Toolimplementation - Documentation updates, cleanup
- Ensure validators are exported
0.4.23
- Dynamically generate validators
Breaking Changes
Design Document Types
The types are now capitalized. If you were relying on import type { latest } from '@core3d/sdk'; it should be updated to import type { Latest } from '@core3d/sdk';. This is true for all explicit Design Document versions, as well (e.g. v0 -> v11).
Validators
Validation functions were excluded from this version (e.g. validateLatest, validateV0, etc.). These are internal utilities, but the missing exports will break builds if you relied on them.
0.4.22
- Improve docblocks for intellisense
- Deprecate some methods
0.4.21
- Update docs
- Integrate API types
- Add TTL to
Cache - Use
canvasinMaterialInterfaceTextureSources - Improve texture source types
- Updates to
ImagePacker
0.4.20
- Implement
NodeInterface.fetchMask - Implement
NodeInterface.fetchPolygons - Use new masks for bakes
0.4.19
- Load textures in parallel
0.4.18
- Fix issues with scene target configuration
- SceneOptions type improvements
- Add MeshInterface.hasDistinctIslands
0.4.17
- Fix mesh name preservation when groups have the same name
0.4.16
- Implement canny edge detection
- Auto-update scene on target render
- Ensure SceneInterface.camera does not contain undefined
- Fix intersections, prevent catchup animations
- Reinstate autorotate
0.4.15
- Deprecate SceneInterface.invalidate
- Fix depth type rendering
0.4.14
- Add Scene events
- Allow partial SceneOptions.camera
- Support more advanced env config
- Do not apply default material to models
- Expose SceneInterface.camera
0.4.13
- Handle missing meshes during GLTF import
- Add SceneOptions.environment
0.4.12
- Allow partial SceneOptions in create helpers
0.4.11
- Add SceneInterface.configure() w/ new options
0.4.10
- Add Canvas.getRootNode()
0.4.9
- Add missing @types/three where needed
- Roll back three@0.162.0
0.4.8
- Rework GLTFLoaderPreserveMeshNamesExtension matching algorithm
- Handle uncaught, bubbled exceptions during GL parsing
0.4.7
- Add SceneInterface.invalidate()
- Re-clone objects during scene invalidation
0.4.6
- Improve Three.js scene lighting
- Require three@^0.163.0
0.4.5
- Ensure Three.js textures are recreated when materials are copied
- Fix an issue where subsequent renders override earlier render parameters
- Add controls and autoRotate to SceneOptions, make createScene options optional
- Ensure Three.js GLTF plugins have names
0.4.4
- Move "default" export keys to last position
0.4.3
- Move @core3d/ devDependencies to peerDependencies
0.4.2
- Improve Resource render flow
- Add Design.move
- Implement Zone.contains
- Implement Model.findNodeByInternalObject
- Include src property in texture sources, expose MaterialInterface.src
- Handle generic Assignable/Attachble interfaces in Design.apply
- Add typed EventEmitter, emit "render" from Design
0.4.1
- Fix: prevent
AbstractResourcecache entry override duringAbstractResource.load()
0.4.0
Public release.
0.3.x
Public release preparation.
0.2.x
API refactor iteration.
0.1.x
Early development version of the SDK.