Giter Site home page Giter Site logo

overte-org / overte Goto Github PK

View Code? Open in Web Editor NEW
132.0 6.0 48.0 1.08 GB

Overte open source virtual worlds platform.

Home Page: https://overte.org/

License: Other

JavaScript 27.46% CMake 0.99% C++ 44.65% QML 5.06% HTML 1.99% Java 0.52% Shell 0.08% Dockerfile 0.01% GLSL 0.24% C 14.04% CSS 3.89% Python 0.27% F* 0.02% Objective-C 0.38% Objective-C++ 0.02% QMake 0.01% Lua 0.10% PHP 0.06% Batchfile 0.01% C# 0.21%
hacktoberfest linux open-source vr virtual-reality 3d javascript social-vr

overte's People

Contributors

atlante45 avatar birarda avatar conklin94122 avatar ctrlaltdavid avatar daleglass avatar danteruiz avatar dback2 avatar ey6es avatar howard-stearns avatar huffman avatar hyperlogic avatar imgntn avatar jherico avatar kencooke avatar ksuprynowicz avatar nissimhadar avatar philiprosedale avatar sabrina-shanman avatar samcake avatar samgondelman avatar sethalves avatar shanzzam avatar simonwalton-hifi avatar thoys avatar ventrella avatar vladest avatar zappoman avatar zfox23 avatar zvork avatar zzmp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

overte's Issues

Rainbow Rectangle Appears Sporadically in Tutorial Domain.

It fills about half of the window's width and height, always the same size and centred. It is a simple gradient fill-- the top left is green, top right is yellow, bottom right is red, and bottom left is black (I think). Tablet apps layer on top of the rectangle.

It disappears and reappears as I look around and move my avatar (either one). I think it appears when my avatar is looking toward the top part (not legs) of the Quick Setup console, even when my view of if it is obstructed.

Did not occur the one time I started the AppImage with my avatar in another domain and then clicked the Tutorial button in the top menu bar, but then it did appear after I clicked the button to clear all caches. Changing the graphics setting profile does not seem to change the behaviour.

Linux version 5.15.26
nvidia-firmware-340.32-r1
nvidia-drivers-470.103.01

Change Config Directory Structure.

I think it would be a good idea to change ~/.config/Overte*/Interface.json to ~/.config/Overte*/Interface/config.json. It might also be good to move some (possibly all) of the things in ~/.local/share/Overte*/ to that new directory.

feature request: field in avatar fst file for the thumbnail image

right now, when an avatar is equipped, the interface gets the thumbnail image by looking for a .jpg in the same folder with the same name as the fst file. i would like to suggest a field in the fst file that lets you specify a link to the thumbnail image, with the current behavior being the default for when this field is not provided.

Store user customisable settings (like Avatars) server side to sync across installations

Currently settings like avatars etc are stored locally only which means for every different installation (computer, laptop etc) would require a user to set their preferences up again - for things like custom avatar URLs this will provide a negative user experience I believe.

It would be good if customisable settings which are not machine-related (graphics settings, etc) can be stored/synced with their account information server-side to prevent this negative experience.

SQLite database errors in Interface

They appear for example in Tutorial world. What does Interface use SQLite for?

[386324:386503:0603/000144.679934:ERROR:database.cc(1696)] Quota sqlite error 5, errno 0: database is locked, sql: PRAGMA auto_vacuum
[386324:386503:0603/000144.679994:ERROR:database.cc(1696)] Quota sqlite error 5, errno 0: database is locked, sql: PRAGMA journal_mode=TRUNCATE
[386324:386503:0603/000144.680034:ERROR:database.cc(1696)] Quota sqlite error 5, errno 0: database is locked, sql: SELECT 1 FROM sqlite_master WHERE type=? AND name=?
[386324:386503:0603/000144.680110:ERROR:database.cc(1696)] Quota sqlite error 5, errno 0: database is locked, sql: SELECT 1 FROM sqlite_master WHERE type=? AND name=?
[386324:386503:0603/000144.680141:ERROR:database.cc(1696)] Quota sqlite error 5, errno 0: database is locked, sql: SELECT 1 FROM sqlite_master WHERE type=? AND name=?
[386324:386503:0603/000144.680159:ERROR:database.cc(1696)] Quota sqlite error 5, errno 0: database is locked, sql: CREATE TABLE meta(key LONGVARCHAR NOT NULL UNIQUE PRIMARY KEY, value LONGVARCHAR)
[386324:386503:0603/000144.680175:ERROR:quota_database.cc(582)] Could not open the quota database, resetting.

Copy Paste Entities: some properties get lost or replace anormally by something else.

Copy Paste Entities: some properties get lost or replace anormally by something else.

1- Create a Box, set it a color
2- Create a Light, set a color and an intensity (let say 30)
3- Create a Particle, set a texture (different than the default one), set 3 different colors, set different alpha values
4- Select the 3 entities and lock them.
5- Still selected, do "Copy"
6- Go in any domain for the test, open the create app and do "Paste".

The particle have lost its texture url, color and alpha are all the same, acceleration get set to -9.8. (certainly other stuff)
the Light has lost it's intesity (set to 1). I saw in some test the color being reset to white
The box could have lost its color (but does't seem always the case)

The Create app doesn't do any discrimination regarding properties during the copy and paste. Which mean that the problem is possibly happening at the API level.

Severity 1

Use PNG for screenshots

It'll make for better quality screenshots, which is good for publicity.

Alternatively, we could use higher quality JPG

Add support for inter-Metaverse Server hifiurl

Here are the hifiurl scheme currently supported:
hifi://ip:port/path_or_coordinates
hifi://ip:port
hifi://webDomain/path_or_coordinates
hifi://webDomain
hifi://@username
hifi://placename
hifi://placename/path_or_coordinates

To allow a navigation to a placename under another Metaverse Server,
a solution would be to add the support of these 2 new hifiurl scheme:
hifi://placename@metaverseServer
hifi://placename@metaverseServer/path_or_coordinates

When the Metaverse server address would be passed after a @ (and when there is a placename before that @)
then used this Metaverse server address to resolve the place name.

By adding this, we preserve intact all the legacy hifiurl scheme and simply add these new possibilities.

============
Additional request to this:

It would be useful to have another variable: "lastReachedMetaverseServerURL"
This variable would be upodated each time we reach a destination using a different Metaverse Server URL.
This variable would have as initial value the Metaverse Server URL where you are connected initially when you connect to the Metaverse.

This variable should be exposed like we do currently for "AccountServices.metaverseServerURL"
This new "lastReachedMetaverseServerURL" variable would be used to determine which Metaverse Server is the "Local" one by the "Places" application.

We need automated tests

The code is well made for automated testing, and some should already exists, we're just not using them.

Audio input related TypeError

A following message appears in Interface logs:
[WARNING] [default] qrc:/qml/hifi/audio/MicBarApplication.qml:42: TypeError: Value is null and could not be converted to an object

Collect Environment Variables.

I think it would be good to collect all the constants referencing environment variables into a single header file. This would also be a good opportunity to make sure they are all documented.

I found a bunch with grep -R --exclude-dir=build 'systemEnvironment().contains('. There is also a function isInEnvironment that does not appear to be used.

Facilitate Use of Sound Effects.

In the meeting today, some of us discussed the importance of (subtle) in-world sound effects and the challenges that currently discourage creators from controlling this dimension. I am not very familiar with the current creation workflow but I wanted to open this issue for discussion.

My view is that there are two logical kinds of sound effects-- constant and triggered. I think there should be a simple menu to attach sound files to entities, and that attached sound files should display check-boxes to enable constant playback of the file. A volume level adjustment would also be very useful here, with values normalised against the interface's default sound effect volume level. Triggered sound effects would need to be referenced from scripts, unless default scripts are supplied for common triggers (e.g. user avatar within X distance, user connects to domain, user performs primary action on entity).

There should probably be a similar way to attach sound effects to zones or even whole domains. These might be used, for example, in the case of sound effects for waves lapping a beach or wind rushing against the user's avatar.

I think it is important for Overte to supply a good sound pack of freely licensed sound effects that creators would be recommended to use for common purposes unless they specifically want something different. This would both simplify the creation experience and encourage a somewhat consistent user experience between domains.

Another long-term idea I think might be useful is adding an app, or a mode to the existing Create app, that would specialise in audio engineering. This would be useful for more technical fine-tuning of audio, perhaps visualising sound waves in-world and allowing for simple customisation of entities' acoustic properties. Simple filtering/editing of the source sound files might be convenient.

I don't know much about how sound effects are currently handled so please discuss. :)

Voxel did not save outer polygons

The new voxel terrains seem to be designed in such a way that they can be edited both outside and inside the visible output object.

grafik

Unfortunately, the externally designed polygons do not seem to be saved in conclusion:

grafik

after "Reload Content" the terrain is clearly redrawn. The outer areas are largely missing:

grafik

[WARNING] [default] DependencyManager::get(): No instance available for 8NodeList

This happens on startup. Stack trace:

(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=2, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007fffe6ec2ca3 in __pthread_kill_internal (signo=2, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007fffe6e729c6 in __GI_raise (sig=2) at ../sysdeps/posix/raise.c:26
#3  0x00007fffe7409431 in LogHandler::printMessage (this=0x7fffe74def60 <LogHandler::getInstance()::staticInstance>, type=type@entry=LogWarning, context=..., message=...)
    at /home/dale/git/overte/libraries/shared/src/LogHandler.cpp:223
#4  0x000000000077d141 in messageHandler (type=QtWarningMsg, context=..., message=...) at /home/dale/git/overte/interface/src/Application.cpp:579
#5  0x00007ffff3f10fa8 in qt_message_print (msgType=QtWarningMsg, context=..., message=...) at global/qlogging.cpp:1843
#6  0x00007ffff3f1259c in qt_message_output (msgType=QtWarningMsg, context=..., message=...) at global/qlogging.cpp:1924
#7  0x00007ffff40118d0 in QDebug::~QDebug (this=0x7fffffff91d8, __in_chrg=<optimized out>) at io/qdebug.cpp:154
#8  0x00000000007ecc72 in DependencyManager::get<NodeList> () at /home/dale/git/overte/libraries/shared/src/DependencyManager.h:109
#9  0x00007fffe77567b2 in NodeList::NodeList (this=0x170d580, newOwnerType=<optimized out>, socketListenPort=<optimized out>, dtlsListenPort=<optimized out>)
    at /home/dale/git/overte/libraries/networking/src/NodeList.cpp:102
#10 0x00000000007ec8bd in DependencyManager::set<NodeList, unsigned char const&, int const&> () at /home/dale/git/overte/libraries/shared/src/DependencyManager.h:143
#11 0x00000000007abcf1 in setupEssentials (argc=<optimized out>, argv=<optimized out>, parser=..., runningMarkerExisted=<optimized out>)
    at /home/dale/git/overte/interface/src/Application.cpp:823
#12 0x00000000007c68bd in Application::Application (this=this@entry=0x7fffffffae80, argc=@0x7fffffffac3c: 2, argv=argv@entry=0x164c850, parser=..., startupTimer=..., 
    runningMarkerExisted=runningMarkerExisted@entry=false) at /home/dale/git/overte/interface/src/Application.cpp:989
#13 0x000000000064c6c3 in main (argc=<optimized out>, argv=0x7fffffffdc78) at /home/dale/git/overte/interface/src/main.cpp:561

The problem appears to be that NodeList.cpp:102 appears to try to retrieve itself in its own constructor. This appears to be completely superfluous, and it should be fine to remove the line unless I'm missing something.

Some Tablet Apps Do Not Render Using AppImage.

I compiled Overte and that version does not have this issue. Clearing caches and reloading scripts did not solve the problem.

Apps that render: Audio, Avatar, People, Graphics.

Apps that do not render: Snap, Places, Emote, Appreciate, More..., Chat.

Overte version: Overte-x86_64-20220226.AppImage
Linux version: 5.15.26 (Gentoo)

Negative cache size assert and crash when reloading all content in tutorial

To replicate, go to tutorial, clear cache, restart Overte and then clear cache a few more times.
_totalResourcesSize member of Resource cache becomes negative and triggers assert.
Backtrace:
image
ResourceCache object:
image
Resource object on which it happens:
image
This may point to a bug that causes memory corruption and crashes in other places.

FPS seems locked to 60fps

My monitor runs at 120hz, so it definitively could run at a higher framerate.

OS: KDE neon User - 5.24 x86_64
Kernel: 5.13.0-28-generic

AMD GPU (6900xt) running on Mesa 21.0.3

Security issues

Here's some security issues that we might want to solve:

Settings
Settings can be read ans write from any client entityscript. It's not bad in it-self for many settings
But for some setting that need a bit more security, it would be preferable to have a new category of setting "PrivateSettings"
that would be manageable only from interface script.
This would prevent data collection by simply visiting a domain.

Recording.saveRecording
This seems to allowed to save a recording anywhere. It could override files with any kind of extension.
This seem to be a potential way to cause damages.
Recommendation would be to enforce the extension over the filename passed in paramater. Ideally we would constraint this to be within a specific directory (MyDocument or something like that) to prevent incidents.
We could, in paralell, to this add a new method Recording.saveRecordingToSelectedFile that would have a save dialog that the user will have to manage.

Clipboard.exportEntities
Same issues as Recording.saveRecording
similar solution.
We could used the new methode to fix some app: "Create", "Material Data Creator", and possible other.

The earlier would be the best.

We need an in-world video player

Something like the cinema, but that could be trivially dropped into the world at any location, and easy set up and configured.

Ideally with Youtube support

We need benchmarks

Parts of the system can be benchmarked. We should be regularly running benchmarks.

One thing I'd like to benchmark is the resource system, to see how good it is.

Add World collision toggle shortcut key

Currently, the default way of changing your world collision setting requires you to navigate to the Avatar setting menu, which is a sub-menu to the Avatar menu, a bit deeply Buried and difficult to explain to a new user stuck in a wall.

I have had it mapped to "v" for the best part of 2 years now, not sure why I chose "v" but I've had no issues with other apps using "v" so I suggest making "v" the default world collision toggle key.

Rebranding issues

This is an issue thread for any rebranding-related issues you encounter.
We still have to change names of executables, welcome text in tutorial world, links to API docs, and portal to the hub.
Post any problems you encounter here :)

Identify and host/remove references to external dependencies

References to resources that sit outside of git or a vendor server, and references to repos that sit inside Vircadia's git organisation still exist and need to be reviewed and a determination made if the references are needed/if we should fork into our own organisation.

Note: This list may not contain all

In overte/hifi-qt.py

  • http://motofckr9k.ddns.net/vircadia_packages/qt5-install-5.15.2-ubuntu-18.04-aarch64_test.tar.xz [Line 164]
  • https://data.moto9000.moe/vircadia_packages/qt5-install-5.15.2-debian-10-aarch64.tar.xz [Line 174]

In overte/hifi-android.py
https://cdn-1.vircadia.com/eu-c-1/vircadia-public/dependencies/android/ [Line 13]

In overte/android/build.gradle
https://cdn-1.vircadia.com/eu-c-1/vircadia-public/dependencies/android/ [Line 51]

In overte/android/setupGVR.gradle
https://cdn-1.vircadia.com/eu-c-1/vircadia-public/austin/android/

In overte/tools/ci-scripts/upload_to_publish_server.py
build-uploader.vircadia.com [Line 44]

In overte/tools/nitpick/AppDataHighFidelity/Interface.json

  • https://cdn-1.vircadia.com/eu-c-1/vircadia-public/sounds/Collisions-otherorganic/Body_Hits_Impact.wav [Line 41]

In overte/tools/qt-builder/qt-lite-build-steps.md
https://cdn-1.vircadia.com/eu-c-1/vircadia-public/dante/ssl-static-windows.zip [Line 33]
https://cdn-1.vircadia.com/eu-c-1/vircadia-public/dante/openssl-static-osx.zip [Line 74]

In overte/scripts/defaultScript.js
https://cdn.vircadia.com/community-apps/more/app-more.js [Line 49]

  • https://content.fluffy.ws/scripts/chat/FloofChat.js [Line 50]

In overte/scripts/system/html/users.html

  • https://cdn-1.vircadia.com/eu-c-1/vircadia-public/faye/tablet-dev/refresh-icon.svg [Line 255] (unused and outdated)

In overte/scripts/system/more/app-more.js
https://cdn.vircadia.com/community-apps/applications [Line 59]

In overte/scripts/system/more/more.html
https://cdn.vircadia.com/community-apps/applications/metadata.js [Line 57]
https://cdn.vircadia.com/community-apps/applications/ [Line 67]
https://cdn.vircadia.com/community-apps/web/index.html [Line 171]

In overte/scripts/system/places/places.js
https://metaverse.vircadia.com/interim/d-goto/app/goto.json [Line 386]

In overte/scripts/system/quickGoto.js
lq-hub.vircadia.com [Line 34]

References to repos in Vircadia org:
vircadia/draco (In cmake/ports/draco/portfile.cmake)
vircadia/etc2comp (In cmake/ports/etc2comp/portfile.cmake)
vircadia/scribe (In cmake/ports/hifi-scribe/portfile.cmake)
vircadia/nvidia-texture-tools (In cmake/ports/nvtt/portfile.cmake)

serverless tutorial

2 script are failing.
The doppleganger is failing to get the js file using the resource addressing.
This one is probably simple to fix by merging the called script to the caller script.

But the html for the wizard seems unreachable using this kind of addressing.
it will need to be exposed in the resource

PBR materials get tinted sometimes

PBR materials get tinted with different colors sometimes, especially, but not limited to having laser pointer displayed in VR, or when manipulating objects in Create App. When manipulating objects they get tinted with the color of active manipulator arrow, especially for scaling
vircadia-snap-by-test1-on-2022-02-06_10-23-46
.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.