vircadia / vircadia-native-core Goto Github PK
View Code? Open in Web Editor NEWVircadia open source agent-based metaverse ecosystem.
Home Page: https://vircadia.com/
License: Other
Vircadia open source agent-based metaverse ecosystem.
Home Page: https://vircadia.com/
License: Other
The field user-real world height in Settings/Controls.. can not be edited to the correct number. 1 meter is minimum and 2.2 is maximum. Pushing on the up and down buttons increases the height with 1 meter instead of 0.001 meter. Multiple input fields dont allow typing of decimal numbers.
We need to fix that issue where avatars do not stay in sync with entities.
The setting is not "auto" whatsoever and just sets it to a hardcoded value of 1GB. This is incredibly wasteful on modern hardware, with cards having memory amounts of 8GB quite often.
I already looked into it, and intend to try to submit a fix soon-ish. Submitting the bug here for tracking purposes.
discovered in 0.86.0
If I alter my graphics settings, close the interface, and then open again, all my settings revert to their previous state.
Users should be able to save their prefered graphics settings.
I've attached both before and after images of the graphics menu as well as logs
01_graphics_revert_close.txt
02_graphics_revert_open.txt
Configuring a Windows build with an empty build directory fails:
D:\Workspaces\CtrlAltStudio\Athena-C\Athena-C\build>cmake .. -G "Visual Studio 16 2019" -A x64
-- EXTERNAL_BUILD_ASSETS: https://athena-public.s3.amazonaws.com
Traceback (most recent call last):
File "D:/Workspaces/CtrlAltStudio/Athena-C/Athena-C/prebuild.py", line 22, in <module>
import hifi_vcpkg
File "D:\Workspaces\CtrlAltStudio\Athena-C\Athena-C\hifi_vcpkg.py", line 12, in <module>
import distro
ModuleNotFoundError: No module named 'distro'
CMake Error at CMakeLists.txt:81 (message):
vcpkg configuration missing.
Empty build directory
cmake on kasen/core just immediately prior to PR#53 succeeds.
Empty build directory
cmake on Kasen/core at PR#53 fails. <<< bad
Empty build directory
cmake on kasen/core just immediately prior to PR#53 succeeds.
Update to latest kasen/core without cleaning build directory.
cmake on kasen/core succeeds. <<< manual work-around
#53 "Add support for Ubuntu 19.10, modernize vcpkg"
Not a high priority, but:
Could we have the "View > Selfies" working in VR.
or fix the original doppelganger mirror application
(the easiest fix would do)
In version 0.86 if you tab out, LOD will slowly decrease over time. Tabbing back in often causes content to flicker in and back out.
Simplified UI contains some fixes that apparently fix this issue.
Setting graphics to 'Low' has two very undesirable effects:
I think the way this setting works is extremely undesirable and causes a very bad first impression. Capping the framerate might make sense in some situations, but I think it should never be done by default -- it creates the impression the interface is much slower than it truly is.
I suggest the following fixes:
I tested this out I transfer the serverless domain contents into a Dropbox and it provided me with the links to go there so I put the links into the goto section of hifi client and wouldn’t teleport me there directly.
When extra debugging is enabled. This prevents phantom leftover statements to pile up in domains with little way of tracking them down. This tells you exactly what entity is outputting it and therefore what script is outputting the statements if you need to track it down.
This fails without notification error to the interface sending them. Regardless on whether or not we tackle this question/problem now, a way to notify the interface that this is happening is important and should be added ASAP.
Remember, less phantom functionality if we can help it! We want the developers, creators, and overall users to be aware if something was not done and why if so.
Help > Controls Reference "Need More Assistance" at the bottom of the dialog: clicking this should open an e-mail, same as how clicking "Report Problem" at the top right of the dialog does.
Additionally:
There is already a “Window.copyToClipboard( text )” api method to copy text to system clipboard, I propose adding “Window.pasteFromClipboard() → text”
I would still very much like a application wide, hardware agnostic way to do copy/paste i VR but until then, this is a start.
Some kind of variable file which makes it easier for Forks to customize their project name etc.
Why?
We probably want to make it easy for third-parties to setup their custom clients(/servers). The easier we make this the more probable it will be that they will use this software and contribute back to us.
Should contain:
There are tons of references to static URLs in the code. These may be better placed under the networking constants header. As the PR #33 allows changing metaverse's URL, the metaverse would not be a constant anymore. This file should not be deprecated though, as there are a lot of static URLs not yet placed in this header
When flying, pressing forward and clicking shift speeds you up slowly and builds up momentum.
When releasing the 'W' button the speed drops down to zero and it slowly needs to be built back up.
Is it possible to have a consistent speed without building up momentum? When flying the speed should always be the same and would remove the use of shift.
When using VR the flying functionality which is used in desktop is disabled by default.
No audio devices appear in the audio menu. This has been happening to multiple users lately with increasing frequency over time, although I myself did not start experiencing this until the last week or two, some time after the release of 0.86.0.
[WARNING] [default] AudioDeviceList scripting::AudioInputDeviceList::onPeakValueListChanged length mismatch
When enabling push to talk while emoting "sit" for example, cancels out the emote whenever you press "T" to talk.
Current known solution is to hardcode the following line in the quazip CMakeLists.txt:
SET(Qt5Core_DIR "C:\\Users\\Thijs\\hifi\\qt\\5.12.3\\qt5-install\\lib\\cmake\\Qt5Core")
This one was invented for 0.86.0 I think (or was it 85? I reported the bug on oct. 4th). Bug also present in K2 (200122_Unofficial_Opus)
With a frequency of about 10-20%, when I start interface it fails to load most or all of my scripts, including default scripts, it has been verified by several others, including some poor souls trying hifi for the first time.
I did send log files at the time And I can do that again on request but I don’t really see anything in there that looks related.
This came about at the same time as the unwarranted stolen avatar messages and I’m pretty sure they are related, I don't really use marketplace avatars anymore but I would assume that this is also still happening.
There is a non-zero chance this may go away when we change metaverse API but at-least now it's on-record.
To reproduce: well, It happens a lot to me but some never see it? I usually load in my local sandbox but I don't think it makes a difference, maybe metaverse server ping related?
Note: Should code the URL in just one place. (And use for the URLs in the Avatar Packager, too.)
Running a script that changes the gravity orientation of an avatar, the camera was following the orientation of the avatar in HMD and in Desktop, But somewhere during the last 6 months of Hifi this stopped to work for all the different camera mode in desktop. (Not, it still works in VR)
Found in Release: 0.86 (Hifi)
Type: BUG
Priority: Medium
Size: S
Original author "ultranique" posted on the roadmap for High Fidelity:
I have noticed issues with the avatar locomotion in 82.1, where avatars scaled smaller than 1x move quickly/erratically and skip the walk animation and go directly the the run animation state. The opposite is true of avatars scaled larger than 1x - they move extremely slowly, like walking through molasses. When the avatars are smaller I have also seen some random T-poses blip in after each run animation cycle. I would expect the animation to stay consistent and scale to the size of the avatar to maintain the same frame rate, but it seems that is no longer the case.
Whenever I see a “green wire cube of not loaded entity” I want to click or laser it to see whats wrong or just delete it.
But for some reason, “green wire cube of not loaded entity”’s will have none of that, they ignore intersect.
I propose making “green wire cube of not loaded entity”’s intersectable when in create mode.
Triggered by the demise of the marketplace, but really I always found it weird that, for example, the thumbnail images was handled as a separate thing so only marketplace avatar bookmarks has thumbnails (I know, the wolf3d avatars have no nails at all :-).
For a future with multiple marketplaces and better avatar apps I think it makes sense to put as much 'avatar specific' data as possible into the *.fst file.
For now, I suggest just deciding on what fields we want in there and extending the FST reader to support them, and maybe extend the avatar packager to write them, it won't break anything now since they are optional but they will be ready for future apps to leverage.
As far as I can tell, currently supprted fields are:
FST_VERSION = 1;
FST_VERSION_FIELD = "version";
NAME_FIELD = "name";
TYPE_FIELD = "type";
FILENAME_FIELD = "filename";
MARKETPLACE_ID_FIELD = "marketplaceID";
TEXDIR_FIELD = "texdir";
LOD_FIELD = "lod";
JOINT_INDEX_FIELD = "jointIndex";
SCALE_FIELD = "scale";
TRANSLATION_X_FIELD = "tx";
TRANSLATION_Y_FIELD = "ty";
TRANSLATION_Z_FIELD = "tz";
JOINT_FIELD = "joint";
BLENDSHAPE_FIELD = "bs";
SCRIPT_FIELD = "script";
JOINT_NAME_MAPPING_FIELD = "jointMap";
MATERIAL_MAPPING_FIELD = "materialMap";
COMMENT_FIELD = "comment";
All of which are optional, except for "filename".
I propose adding:
"image" or "thumbnail" maybe both?: relative or absolute image url. could also be useful in people/friends apps since the current user thumbnails are hifi dependent.
"description": there is already a (unused) comment field but I see this more like the stuff you would put in the marketplace description, could it support some kind of markup?
"licence" or "attribution": would this be sufficient for avatars that require attribution?
"viewpoint": currently users can select between "Head" and "Eyes" in the avatar app, but it really depends on the avatar which works best so it really should be an 'avatar' option rather than an 'user' option. And maybe... just maybe, it could be also be a vec3 to give avatar creators full control.
"animationLoop": I can elaborate if needed but basically a way to add non-overriding & non-rolebased looping animations to wings/tails/tentacles/antennae/lewd appendages etc. It is up to the avatar creator to ensure that it does not clash with the role animations or IK controlled joints.
ideas?
Users are unable to see the additional settings farther down the menu.
Currently the C++ implementation of flow is buggy. It currently is its own little mini-segment of a physics engine. It should be refined and fixed, but is it easier to try and fix the current implementation? Or, would using Bullet or PhysX be easier, and then that ground work allows for further usage and module creation.
If the path of fixing the current implementation is used, it should be well isolated and the code should not be reused to avoid creating a physics nightmare. We should be trying to use a third party implementation for an engine (e.g. PhysX) that is well featured and tested, made to work with software like this.
So modularizing and improving what we have now or replacing it would be a good place to start.
Possibly AMD related. Only happens since I upgraded to an AMD CPU. It's possible that the problem exists on all architectures, but the crash is only triggered on AMD ones. It happens even with original HiFi interface binary compiled before the switch.
On interface start:
[12/24 20:35:13] [DEBUG] [hifi.scriptengine.module] ScriptEngine::require( "./modules/entityShapeVisualizer.js" )
[12/24 20:35:13] [DEBUG] [hifi.scriptengine.module] newModule ""
[12/24 20:35:13] [DEBUG] [hifi.scriptengine.module] require.fetchModuleSource: "entityShapeVisualizer.js" QThread(0x1bd404b0, name = "js:defaultScripts.js")
[12/24 20:35:13] [DEBUG] [hifi.scriptengine.module] "require.instantiateModule: entityShapeVisualizer.js / 8025 bytes"
[12/24 20:35:13] [DEBUG] [hifi.scriptengine.module] //ScriptEngine::require( "./modules/entityShapeVisualizer.js" )
[12/24 20:35:13] [DEBUG] [hifi.scriptengine.module] ScriptEngine::require( "../modules/createWindow.js" )
[12/24 20:35:13] [DEBUG] [hifi.scriptengine.module] "require - using cached module for '../modules/createWindow.js' (loaded: true)"
[12/24 20:35:13] [DEBUG] [qml] [BaseWebView.qml] Connecting JS messaging to Hifi Logging
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simTail1"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simTail2"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simTail3"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simTail4"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simRightEar1"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simRightEar2"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simLeftEar1"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simLeftEar2"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simTail1"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simTail2"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simTail3"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simTail4"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simRightEar1"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simRightEar2"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simLeftEar1"
[12/24 20:35:13] [DEBUG] [hifi.animation] Sim joint added to flow: "simLeftEar2"
[12/24 20:35:13] [WARNING] [default] QMetaObject::invokeMethod: No such method QQmlComponent::addItem(QString)
zsh: segmentation fault (core dumped) interface/interface
Narrowed it down to "system/create/edit.js" being included in defaultScripts.js. If that is commented out, things work.
Possibly related to interface/src/ui/LogDialog.cpp, given the mention of "Connecting JS messaging to Hifi Logging" and that this file contains calls like:
123: _filterDropdown->addItem("No secondary filter...");
124: _filterDropdown->addItem("default");
125: _filterDropdown->addItem("hifi.audio");
126: _filterDropdown->addItem("hifi.audioclient");
...
/kasen/core Commit: 8c86b5f [8c86b5f]
VS2017
Call stack:
interface.exe!std::vector<AnimPose,std::allocator >::operator[](const unsigned __int64 _Pos) Line 1733 C++
interface.exe!AnimBlendDirectional::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 99 C++
interface.exe!AnimBlendLinear::evaluateAndBlendChildren(const AnimVariantMap & animVars, const AnimContext & context, AnimVariantMap & triggersOut, float alpha, unsigned __int64 prevPoseIndex, unsigned __int64 nextPoseIndex, float dt) Line 91 C++
interface.exe!AnimBlendLinear::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 48 C++
interface.exe!AnimOverlay::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 56 C++
interface.exe!AnimOverlay::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 56 C++
interface.exe!AnimOverlay::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 56 C++
interface.exe!AnimOverlay::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 56 C++
interface.exe!AnimTwoBoneIK::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 55 C++
interface.exe!AnimPoleVectorConstraint::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 45 C++
interface.exe!AnimTwoBoneIK::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 55 C++
interface.exe!AnimPoleVectorConstraint::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 45 C++
interface.exe!AnimStateMachine::evaluate(const AnimVariantMap & animVars, const AnimContext & context, float dt, AnimVariantMap & triggersOut) Line 93 C++
interface.exe!Rig::updateAnimations(float deltaTime, const glm::mat<4,4,float,0> & rootTransform, const glm::mat<4,4,float,0> & rigToWorldTransform) Line 1628 C++
interface.exe!Model::updateRig(float deltaTime, glm::mat<4,4,float,0> parentTransform) Line 1397 C++
interface.exe!MySkeletonModel::updateRig(float deltaTime, glm::mat<4,4,float,0> parentTransform) Line 337 C++
interface.exe!Model::simulate(float deltaTime, bool fullUpdate) Line 1390 C++
interface.exe!SkeletonModel::simulate(float deltaTime, bool fullUpdate) Line 164 C++
interface.exe!MyAvatar::simulate(float deltaTime, bool inView) Line 925 C++
interface.exe!MyAvatar::update(float deltaTime) Line 773 C++
interface.exe!AvatarManager::updateMyAvatar(float deltaTime) Line 168 C++
interface.exe!Application::update(float deltaTime) Line 6557 C++
interface.exe!Application::idle() Line 5257 C++
interface.exe!Application::event(QEvent * event) Line 4214 C++
[External Code]
interface.exe!Application::notify(QObject * object, QEvent * event) Line 4171 C++
[External Code]
interface.exe!main(int argc, const char * * argv) Line 442 C++
[External Code]
What it would look like...
[This relates specifically to the 0.86.0 installer so I don't know if it will be an issue with Athena.]
If you already have interface installed, then decided to used the combined installer to add the sandbox, unless you check both boxes during this process (interface and sandbox), it will remove the interface leaving you with only the sandbox.
One of the things we've gotten used to but is really a pain for both experienced and new user alike is that scripts and other objects are aggressively cached, and not updated when new version are present.
At the moment only a single entity can be influenced by a material entity, requiring a separate material entity for every mesh that want's to use this material. If we were able to allow multiple entities dramatically simplifies workflow for creators. Right now the connection is made by turning a material entity into the child of the mesh it influences. Perhaps there is another way to connect these allowing for flexibility.
K1 errors when started looking for vcruntime.
So voice activation detection can be used in Athena.
When a user rescales their avatar, they will notice a dramatic reduction in gamerate until the finished. This was not always an issue and may have appeared when more advanced avatar collisions were implemented.
Thoughts:
This may be due to physics calcutions on detailed avatar collisions. If so, it might be able to default to pill collision only while in the process of scaling, waiting to calculate detailed collision until scaling is finished.
There has been an ongoing bug for a long time in the platform where entity scripts do not unload internally when they are told to unload.
We are going to need to make a slight modification to the avatar packager. As far as I know, all the processes of packaging and checking for errors is fine and happens locally. At the point the packager finally says "Upload," users have no way of knowning their avatar has actually been prepared and a sent to "C:\Users\youraccount\Documents\High Fidelity Projects." The upload button currently takes this avatar and moves it to the High Fidelity marketplace. This button will have to be removed.
My suggestion for the time being is a simple fix. Remove the upload but and leave a message indicating where they can find their packaged avatar (locally), followed by a link to a document explaining some of their options (digital ocean, amazon, etc). It would really be nice to see this in K2, as I suspect it's a quick fix.
" Cannot load library C:\Program Files\High Fidelity\plugins\hifiKinect.dll: The specified module could not be found."
Not a big one, but more of a housekeeping bug. If this is no longer in use perhaps we should stop looking for it?
When placing wearables on the avatar in the avatar menu it is quite annoying that I won’t stand still.
Animations should be disabled and avatar in a neutral idle pose (or T-pose).
Reproduce: try to precisely add an item to your avatar in the Avatar→wearables menu ,aarrgh.
Whenever you create an entity and the rotation is 0,0,0, the rotation will change to 0.0017,0.0017,0.0017 as soon as its transmitted over the network.
The current known way to fix this is to resize my avatar to any scale, the scale just has to change. The key to fixing this bug may be found in the things that happen when your avi is resized.
On the Oculus Rift teleport interferes with your ability to turn. If you are moving forward and you push turn it stops you in your tracks and you stop moving.
The teleport button should be moved back to where it was on the right hand button B.
And when you're moving forward it should not interfere with your ability to turn. Jumping and flying should be moved back to where they were on the joystick. They should be checked and made sure that they do not interfere with each other and work the way they used to.
At present it defaults to the projects folder even if the avatar model's folder is specified, which is annoying.
The Avatar Packager originally had a "Video" button that linked to the following HiFi video: https://youtu.be/zrkEowu_yps The video button is disabled in code because the video includes uploading to HiFi's server and is in the "High Fidelity" channel.
At the moment the controls are weird and non-intuitive. I still find myself trying to use both grip buttons to resize objects or myself.
Client side Whitelisting is to restrictive. It kills literally the experience put in place on a domain by its creator. Users come to a domain without the scripts access in it's the whitelist so nothing works. A notification would be another level of pain.
(Imagine have to accept all the javascript running on every single page on the web. Doesn't make too much sense, right? Why we would have the same here? )
Instead I would suggest this:
Have a "Domain Side Whitelist", where the domain owner define the whithelist for what is expected to run on his domain.
The "Client Side Whitelist" still exist.
But, instead of only the Client side list, the Whitelist to be applied would be:
{Domain Side Whitelist} + {Client Side Whitelist}
This way, we would be protected from Troll's script that harm our preferred place in the metaverse.
We won't be from Troll's Domain. But well... Just don't go there.
All other possible breach should be addressed outside of this issue. "Settings" for example, should not be modifiable by scripting.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.