The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
We generally group weekly changes into one dated entry on Fridays.
- Support a GLB model with KTX2 texture.
- Add stopFalling message to AvatarModel to programmatically stop falling to ground.
- removeRigidBody should check if the physicsWorld is valid.
- GLB URL is inferred when ReadyPlayerMe gallery image link is pasted.
- Some examples are moved out to individual example repos.
- Migrate to Three.js 152. A migration doc is addded.
- GLB loading from the Import menu now works.
- ReplaceWorld can take avatar data across transition.
- alphaTest property for 2D card to support translucent PNG.
- 2D image card with depth 0 can be used.
- Default csmLight.js properly publishes synchrnousCardLoaded event.
- Mention npm create croquet-microverse in the README to indicate that this is the standard way to start a project.
- WalkManager.findIndex now uses the right format of data.
- Add support for High pixel density displays
- Add the hidden property for a card that makes it invisible in the scene and ignore pointer events.
- Transfering, or ctrl-click on a different card while another already has gizmo, is fixed.
- assetLoadError takes a serializable object as argument.
- github workflow cleaned up.
- Include a version of Worldcore in the repo.
- Use Croquet OS 1.1.0-22.
- Make video saveable as vrse.
- Some vector functions.
- Some issues around full body avatars are ironed out.
- Sets can be stored in the persistent data.
- the instanceId property is added to user events.
- assetLoadError Behavior can show a load error image when asset file is not available.
- Use THREE.js version 149.
- publish a message when asset loading fails
- Ready Player Me full body avatar support is added.
- use fillCacheIfAbsent more thoroughly
- use terser and not uglify
- wasd key down also make avatar start falling.
- user input event handlers are made immediate.
- Gizmo rotation is made sane.
- Dolby.io echo cancellation is fixed by calling getUserMedia() carefully.
- View side user event handling uses immediate event handling.
- Some documentations added.
- show hit point in XR
- user count now says "visitors"
- make pointer up/down/move events work again in XR
- log errors during event handlers instead of crashing
- clean up some demo files (and create library version 0.3.9).
- use jsdelivr instead of unpkg as the former is more stable.
- Tweak Joystick behavior.
- log some information when shift-click the property sheet.
- An option to specify scalar for rotateBy (to rotate around Y).
- Don't try to tear down Dolby audio when it was not built (when running on http).
- double down jump properly display the avatar at the new position.
- DRACOLoader is loaded once per session, instead of every model load.
- Don't try to start Dolby audio when running on http.
- Remove some log messages
- THREE.js based PositionalAudio (ongoing).
- Make "Enter VR button position customizable.
- 3D models handle fullBright property.
- turn on anti-aliasing for FireFox
- changed position update frequency in Dolby spatial audio.
- Buttons for PDF viewer and video player.
- Infer modelType from the suffix of a file name, if it is not .zip
- Use Worldcore 1.3.2 and Croquet 1.1.0-14
- Enable anti-aliasing for Safari
- Stop using cascading shadow map for a closed room like gallery.
- loadSynchronously property controls what to do until all objects with the flag are loaded.
- VideoPlayer for synchronous video playback work on Safari
- Joystick gets mini arrows.
- Some documentation
- VRMLLoader (modelType: "wrl") is added.
- A way to support different start up logic is being added.
- A way to disable the persistent data saving is added.
- Make sure that wonderland avatars can be used when voiceChat is enabled in a different way.
- Dolby.io can be used for voice chat.
- A mechanism to allow switching object manipulator interface, and a different manipulator (pedestal) was added.
- perform a sanity check on the URL entered for avatar URL.
- Home button works for spectators.
- Clean up settings panels so that they fit within landscape phone screens.
- The "ENTER VR" button does not overlap with joystick.
- WalkManager is added, and the way the avatar can be more customizable.
- A simple synchronized video playback behavior is added.
- PDFView supports replacement of viewed document.
- Open property sheet button is iconic.
- Pressing the gather button does not close the world menu
- The microverse-library installation deletes old lib directory first.
- Property Sheet can be simply dragged.
- Gizmo look is updated. in particular tools are rendered in front of other objects.
- The user count is displayed at the top. Gather is now in the world menu.
- Event routing honor renderOrder so that object rendered in front with it is tested first.
- Better support for adding a card to avatar.
- webpack.config.js is changed to copy all files under assets automatically
- the world menu is updated.
- Broadcast mode is added.
- Deletion of gizmo when a peer drops out or times out.
- Add text scroll feature to text fields.
- World replace command (a lighter weight version of portals) is added.
- Support for getters/setters from a bahavior is added.
- The first version of Gizmo is added.
- The handling of apiKey.js (now solely for production) and optional apiKey-dev.js (used if runniing locally) is changed.
- Regression in non-VR environment at start up is fixed.
- The direction of the mouse look on laptop is fixed.
- sourceURL in comment allows the behavior name show up in the developer tool.
- The settings interface uses avatar's 2D images stored on the server.
- sendToShell() function is available for behaviors.
- A mechanism for an avatar to bypass dormantAvatarSpec.
- a pawn side method getMyAvatar() is added.
- WebXR movement with joystick is fixed.
- an error in accessing isSessionSupported is properly handled.
- Half body avatar movement improved.
- All use of iterating this.shape.children to remove elements makes a copy of the original array.
- The first cut of WebXR support.
- Version is updated to 0.1.7
- Loading a behavior in a VRSE file works again.
- Mitigate initial avatar rendering issues
- Voice chat and Avatar selection page is added.
- Some code clean up.
- Further tweaking on avatar translucency.
- successive 3D model load requests handled properly (the last one wins)
- The half body avatar's hand position is tweaked.
- Hooks around avatar customization.
- properly show behaviors already selected in property sheet.
- Fixes around Ready Player Me half body avatars.
- Some issues around create-croquet-microverse.
- Bloom rendering pass to ThreeRender.js and a demo of using it.
- A new smallfactory world is added (tentative).
- Convenience methods rotateBy, forwardBy, translateBy and scaleBy are added to CardActor
- Some work on Ready Player Me avatar support has been started.
- Some documentation updates.
- Check the structure of import from a behavior file and warn the user if it is malformed.
- Use Worldcore version 1.3.1.
- A way to remove the view-side update request (removeUpdateRequest()) is added.
- A Billboard behavior is added, and use it for the Auggie status.
- the view-side update request property handles multiple requests for the identical spec.
- Editing properties of a nested card handles the string parent field properly.
- Allow dropping a directory of .obj, .mtl and texture files work again.
- Allow Control-drag of a nested object.
- Typos in documentations.
- Mitigate timeout issue handling of non-microverse iframe.
- stop using the external worldcore-three package but use a local customized version of ThreeRender.js.
- An optimization around setOpacity of avatars.
- An optimization around avatar look.
- Make text rendering one sided.
- Use a short name for the world name options for persistent data lookup.
- Not to add event listeners when text is read only.
- Regression on dropping PDF is fixed.
- Property cache named assset data.
- Prevent buildup of socket connections for bitcoin tracker.
- Revoke objectURL sooner for an image texture.
- The logic to extract values from git for version.txt is changed.
- The on demand update request from a pawn behavior is called after the "super" version of update is called.
- Option key/Alt key as an alternative to Control to invoke control.
- Links in tutorial documentation are fixed.
- The elements in the property sheet need to have sane z-coordinates.
- Prevent redundant creation of portal frames.
- Make Portal rendering somoother.
- The set of behaviors loaded into a Microverse world when connected is narrowed down to the directory specified as UserModuleDirectory.
- A feature to hide the joystick and fullscreen button from shell upon a request from an iframe.
- A URLlink demo feature is added to the default world.
- A 3D text demo is added.
- A cache mechanism is added to the AssetManager (./docs/AssetManager.md).
- A Newton's Cradle demo is added to the default world.
- The dataScale for an object loaded from a world file gets [1, 1, 1] by default.
- The pendulum demo is removed from the default world (still available in the campus world.)
- The clipping of a long menu works better.
- Experimental TextGeometry based 3D text is added.
- Use a local only default key when the apiKey.js is not found.
- The default gallery world has the Auggie Award statue.
- The crane and boxes improved in the factory world.
- Future call made from a behavior with arguments works properly.
- Loading a VRSE with a nested structure translated property.
- Typos and errors in Documentations are fixed.
- Made Three.JS animation under the control of Microverse code.
- Do not import the shell code into a Microverse frame.
- Fix documentation.
- The global variable visible from a behavior is called Microverse, instead of Worldcore.
- Open Source license is now added. (and repositories are re-organized).
- Tweaks to the factory and the art galley examples worlds.
- All system behaviors is now implicitly loaded, unless SystemBehaviorModules constants overrides it.
- Unused font files and style files from assets/fonts directory
- A factory world, with many interactive objects, is added.
- Turn off anti-aliasing on mobile and Safari.
- The AvatarNames constantcs can take an object to have a different avatar model.
- Spawn point specification honors the y coordinates.
- Walking up stairs is now robust.
- PDF view sets last page scroll position properly.
- Further improvements in going through a portal with followers.
- A way to display iframes for connected worlds in the tiled view.
- Continuing improvements in walk and hit detection.
- Continuing improvements in portals.
- Properly handle modules with the same name at different file paths.
- the multiuser flag was removed (in favor of the SingleUser behavior moduele).
setTranslation()
andsetRotation()
for Card was removed (in favor oftranslateTo()
and `rotateTo()).
- The start of two way Portals.
- SingleUser behavior added.
- Performance issues in the PDF viewer.
- Continuing improvements in walk and portal hit detection. adding another walkable card is again possible.
- Continuing improvements in portals.
- Property Sheet colors adjusted.
- The effects on portal.
- The pendulum has scale for convenience.
- The default world is now the art gallery, with a portal into the refinery world.
- 2D cards use toneMapping flag.
- Paste an image, a text or url text to create an appropriate object.
- A PDF file can be dropped to launch a PDF viewer.
- A campus world with live map.
- Further improvements of avatar walk.
- SpinActor checks the releasing movements more carefully.
- Flat cards are now rendered only one side.
- Use PhongMaterial for flat cards.
- Particle effect for portals.
- A feature to caputure the pointer with the first responder mechanism.
- Immediate local avatar movement before updating peers.
- Portals clipping issues.
- Collision with walls and floor works smoother.
- Watch server works on Windows by handling backslash path properly.
###Changed
-
Extruded Shape has z=0 at center.
-
the default index.html now has <DOCTYPE !html>
-
2022-05-13
-
Added
-
Full screen mode work with portals
- Use .vrse extension for saved/exported file name.
- Make Avatar be a kind of card, thus one can write behaviors for it.
- The world menu is moved to top right.
- A divergence issue due to a view code used in model.
- Avatar look is preserved when walking through a portal.
- The faucet in the cascade demo can be moved.
- Embedding Microverse into an iframe works.
- A whiteout bug due to 0 being treated as falsy.
- A new layer called "portal".
- A way to create a new card with Sticky Note.
- The default value for multiuser flag is now true.
- The behaviors of an exported card are detatched from the file editing.
- Instead of "_" change event names, use the property name + "Set" for change event names.
- Memory Leak in Rapier.js.
- Saving a card only save the file for the initiating user.
- Movement after coming back from dormancy.
- Avatar collision with walls.
- Numerous improvements to the Portals.
- The follow button has participant count readout.
- The follow feature works also when the leader goes to the birds eye view.
- Avatars translucency adjustment when following or being seen through a portal.
- The Rapier-based physics simulation. (rapier.js and collider.js)
- The prototype version of portals.
- Save an individual card into a file.
- 3D events that event handler receives has the "xy" property that is in the display coordinates.
- Spin behavior uses xy to spin an object a bit more smoothly.