Releases: aardvarkxr/aardvark
Releases · aardvarkxr/aardvark
1.5.4 - Fixed shutdown bugs
- Fixed bug that caused Aardvark to keep running after SteamVR exited. This also fixed the "stop" buttons in Steam not exiting Aardvark. #177
- Fixed bug that made things break when a model could not be loaded for a model box. Instead it will use a 1cm cube instead of whatever volume the model would have defined. #181
1.5.3 - Grabbing bug fixes
Lots of grabbing bug fixes and tuning:
- Trigger is bound to grab again. Grip is also still bound.
- The ray now appears if you touch the trigger and there's something in front of the trigger to grab.
- Fixed moving grabbables with the thumbstick not working at all. Then fixed it using a weird transform (which you couldn't see because it didn't work at all.)
- Added a custom hand volume for grabbing that's counter-intuitively smaller than the old one. It doesn't include the last two joints on most fingers. This makes it far less likely that you'll reach out to grab something, feel the haptic bump of "you're in range", and then move out of range by closing your hand to grip.
Some other bug fixes too:
- Added more empty space to the gadget menu to make it easier to grab the right thing.
- Added model cache warming for the hand and "pen" grip models so they won't pop around anymore as they load.
1.5.2 - Assorted bug fixes
- Fixed a bug that could prevent Aardvark from starting if a gadget was open in a browser, but its gadget manifest wasn't available.
- Fixed a bug that would crash on startup is some input configurations.
- Fixed a bug that would allow a race between a gadget that was unlocking an interface and that interface actually ending.
- Fixed a bug that would cause the hands to stop paying attention to the "interact" action set when regrabbing.
- Those last two bugs combined to cause gadget seeds to get "stuck" and then the gadget to disappear when the gadget menu closed. In other cases they caused gadgets to go to the origin instead of staying at your hands. All of that should be more reliable now.
Custom grab poses
This build adds several new features for Gadgets to take advantage of:
- The animationSource prop on AvModel can now take source:/user/hand/left, source:/user/hand/left or an HTTP or IPFS URL to a glTF model with animations to apply to the specified model.
- AvStandardGrabbable has a new prop called
grabPose
that can be set to GrabPose.Pen to move the hand into a "pen grip" and position the grabbable accordingly. If you would like to see more grab poses added, just supply animations for the poses/transforms for the grabbables.
And also some bug fixes:
- Updated grab poses when the grab actually starts. #110
- Fixed strange grabbable behavior when related to buttons already being pressed when a grabbable comes into range.
1.5.0 - Hands!
Significant upgrades to interactions in Aardvark:
- Added animated hand models. These draw whenever the user's hands are over any other Aardvark stuff, which grants a smooth transition from the game's hand representation to Aardvark's.
- Moved "grab" functionality to "close your hand around the grabbable" and off of the trigger. (Except on Vive controllers, where's it's still on the trigger.)
- Moved "click" functionality to "poke it with your index finger". This only works on panels that upgrade to at least aardvarkxr@[email protected] or later. Existing panels demand that you touch them with the hand and then "grab" which is rather awkward. If there's some panel that can't be upgraded, let me know and we can work something out.
- Fixed issue in 1.4.1 that caused "grab then touch" and "menu then touch" to grab or menu. These should only happen if you press the corresponding control after touching the object in question.
- Scaled up test panel and gadget menu to make room for the whole hand.
- Added Reverb G2 bindings
Volumes:
- Added Skeleton volume type and
skeletonPath
field to select which skeleton. /user/hand/left and /user/hand/right are the skeleton options. Use /user/hand/left/index/tip if you only want the tip of the index finger. Same for right hand. Other finger tips aren't currently supported, but open an issue if you have a use case that needs something more. - Added
visualize
field to volumes that lets them be visualized when rendering. This currently only works for spheres.
Animated models:
- Added
animationSource
field to AvModel. If your model is skinned and uses the OpenVR skeleton you can pass /user/hand/left or /user/hand/right to get animations from those sources.
Application state access:
Av().getCurrentSceneApplication()
returns information about the current scene app or null if nothing is running. Only id and name are hooked up currently.Av().registerSceneApplicationNotification()
allows your gadget to be called when the scene application changes.- Add "application" permission to your gadget to get access.
Known issues:
- Lots of things are still a little rough in the new world. Please jump on Slack and give me some feedback.
- Hands have always used the first point of contact as the "grab point". Now that they're using roughly hand-shaped volumes that's even more obvious.
- Some things like whiteboard pens should probably use canned poses instead of using grab positions at all. Need to come up with some way for the gadget to specify which canned pose to use per-grabbable. And then I need some hand animations to move the hand to that pose visually.
- The hands are too dark. I could use some artist help here. I'm not sure these textures were meant for PBR.
- That thing you just noticed! It's known to you, but not to me. Please file an issue or come talk about it in the Slack.
1.4.2 - Assorted fixes
- Added Vive controller bindings #175
- Fixed issue with skinned models not animating #171
- Fixed issue with skinned models that use a joint index size other than 16 bits.
- Fixed issue with translation of openXR paths like /input/menu
- Fixed issue with input from Aardvark overriding input in the SteamVR dashboard if that hand was near something grabbable when the dashboard was summoned #172
- Added
renderAardvarkRoot
to @aardvarkxr/aardvark-react. This utility function allows a gadget to wait for the connection to the server before running other gadget code. It also makes rending the default landing component easier when running in a browser.
1.4.1 - Fixed hands-stuck-at-origin
When running from an installed build of 1.4.0 the hands (including the balls and the gear) were stuck at the origin. As of 1.4.1 they're attached to the hands again.
1.4.0 - Context-aware input
Custom context-aware input in gagets:
- Added custom actions, action sets, and bindings to gadgets. Gadgets can add "input" to their permissions and then use
Av().registerInput(...)
to send their actions to SteamVR for binding. Gadgets that register input this way will appear in SteamVR as standalone applications so users can rebind the actions per-gadget. These actions use OpenXR-style interaction profile paths and input paths to make forward compatibility easier when Aardvark eventually switches to OpenXR. - Added many helper enum values for various interaction profiles and input paths.
- Split the actions in the hands into three action sets: default, interact, and move. Default is always present, but only includes the "show ray" action, which is fairly innocuous. Interact is only active when that hand is next to a thing that can be grabbed, will produce a menu, or can be clicked on. Move is only active when a gadget is actively being grabbed. Interact and Move both override any input to the underlying app on those buttons or controls.
- Overriding app input requires that the "globalActionSetPriority" SteamVR setting be set. Aardvark will now prompt the user at startup if that's not the case and will set the setting if the user agrees.
- Bindings are included for Knuckles, Touch, and Windows MR controllers, but of those only Knuckles has been tested. If try with one of the other controllers and run into problems, please open an issue and I'll fix it.
Other fixes:
- The messagebox API will now send the prompt to be displayed when the messagebox gadget connects even if
showPrompt
was called before that point. - The messagebox will now shrink its text a bit when the caption is exceptionally long.
- Added reading and setting settings to the API for gadgets with the "settings" permission. See
getBoolSetting
,getStringSetting
,getNumberSetting
, andsetSetting
on the Aardvark (Av()
) object. Only bool settings have actually been tested through these APIs, so if you run into any trouble with number or settings, please open an issue with the details and I'll fix it. - Ran into and fixed a hang on shutdown. Aardvark should be more resistent to that kind of thing in the future.
Autolaunch for gadgets
This build includes a few recent changes from @fuag15 . Thanks for the contribution!
- Default Landing page now queries the cached aardvark configuration to be smarter about which buttons to show
- Auto launch is an optional feature to enable on gadgets and toggle via the Gadget Panel via a rocket ship icon. Having this toggled causes the gadget to load on aardvark start
- Added a new socket message and server side handler that allows setting a gadget to AutoLaunch if the right permissions are set.
1.3.1 - Help with regrabbing
- Fixed a rare(?) bug that would cause a moveable to end up with an invalid parent.
- Added a "grab thing and it turns into another thing" regrab example to the control test gadget.