Git Product home page Git Product logo

vircadia-metaverse's Introduction

Vircadia - Codename Athena

GitHub contributors GitHub stars GitHub forks Apache 2.0 Discord

What is this?

Vircadia™ is an open source agent-based metaverse ecosystem that excels in mass human and agent (AI) based immersive worlds.

  • Mobile, desktop, and VR support through Web
  • Hundreds of agents simultaneously
  • Full-body (Human or Agents)
  • Script with JavaScript & TypeScript (coming soon)
  • Visual scripting (coming soon)
  • Full world editor
  • 4096km³ world space in a server
  • Fully self-hosted
  • Apache 2.0
  • And more...

Supporters of the Vircadia Project

Vircadia is sponsored by companies, organizations, and governments, some of which can be found here.

Premiere Partners

What is an "agent"?

An agent is an AI being that shares the same space as users, interacting, speaking, and experiencing the world. They can be used for simple companionship or training and gameplay opportunities. Vircadia excels at the deployment of agents en-masse to allow in a full sandbox experience.

Support

If you need help integrating or deploying Vircadia for your company / organization, please reach out to us.

Architecture and Documentation

If you would like to learn more about the architecture and the various components in the ecosystem, visit the developer documentation. If you want documentation for general use and to pass onto your users, visit the user documentation.

Alt

vircadia-metaverse's People

Contributors

ctrlaltdavid avatar dependabot[bot] avatar digisomni avatar khilanlalani1503 avatar misterblue avatar namark avatar rakeshghasadiya avatar two-one-five 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

vircadia-metaverse's Issues

"Get a temporary place name" button doesn't work properly

Clean install of server on Windows.
In server start-up wizard, skip step 2 (to do with getting a place name).
In server settings table there is no temporary place name listed.
Press the "Get a temporary place name" button.
There is still no temporary place name listed.

cant-create-temp-placename

Version: Vircadia-Alpha-PR668-c4e4b61_9e8dc88f.exe

Looking in https://dashboard.vircadia.com/places it would appear that two temporary place names were created during the above: the first probably during the wizard and the second after clicking the button.

Selecting "Connections" on People dialog in Interface causes busy icon

Not implemented. Log message is:
procAllDebug: GET /api/v1/users/connections?per_page=1000&page=1&sort=username,ASC
procAllDebug: body: {}
procCreateError: no response so returning 404
procFinalError: generating final error
^[[0mGET /api/v1/users/connections?per_page=1000&page=1&sort=username,ASC ^[[33m404 ^[[0m0.761 ms - -^[[0m

Add code to entity field validate to return why validation failed

When setting an entity field, the field validate function can return 'false' which ends up returning a 'failed' to the user. There is no information on why the field setting failed. For instance, setting an accounts email could fail because the email is poorly formed or because it is not unique.

Do something to the Permissions.validateFunction so it returns other information on a failure so the user has a clue as to why it failed.

New session ID assigned to user every 5 seconds if logged in

2020.2.3
On a domain that allows anonymous connections
If logged in, the following message is reported in the program log every 5 seconds:

[DEBUG] [hifi.networking] Metaverse session ID changed to "d8f8d897-13d2-4352-8f3b-bb7fb0746042"

If not logged in, the problem does not occur.

Does not build under Windows

There is a Bash script to generate the version number and probably other Linux'isms that prevent building under straight Windows.

Add function to delete all domain tokens for inactive domains

Currently, domain tokens have a long life (one year). Domains can come and go and this can cause tokens to pile up.

Create an API operation or add a token timeout that removes tokens for inactive domains before the expiration date. Have a config file option to set the inactive time (N months?).

Attempting to sign in with email fails.

The new metaverse login page (within interface) gives you the option to sign in with either email or account name. Account name works fine, but attempting to use email address gives you the message "username or password is incorrect."

Create indexes for MongoDB

Analyze requests and figure out best indexes.
Will be fetching lots of things based on friends and connections.

Domains & Places generated on first run don't get associated with the user

It would seem that if you get a temporary place name (the domain-server will automatically do this on your first run) then once you connect the server with your account, the domain ID & the place name will not get associated to your account afterwards even though it should...?

One example of the potential issue in action as reported by user "Jaye".

Oct 10 10:57:53 v1 domain-server[2862]: [10/10 10:57:53] [CRITICAL] [default] PAGE: Public key upload failed from AccountManager to QUrl("https://metaverse.vircadia.com/live/api/v1/domains/13122642-4415-4087-a665-4b31eba1825f/public_key") "Host requires authentication"

Attempting to set 'hero' image, get error "value could not be set"

Log in with dashboard. Go to "Profile". Paste URL into hero image section. Press "save". Get error.

Log entry is simply:
procAllDebug: POST /api/v1/account/157866ad-b78f-4fa4-9eec-fdf1dc3d6120/field/images_hero?asAdmin=false
procAllDebug: body: {"set":"https://files.misterblue.com/vircadia/images/MisterblueGuy-AnimeBoy-Hero.jpg"}
setupMetaverseAPI: created new session for 192.64.118.213:45336
finishMetaverseAPI: response: {"status":"failure","error":"value could not be set"}
^[[0mPOST /api/v1/account/157866ad-b78f-4fa4-9eec-fdf1dc3d6120/field/images_hero?asAdmin=false ^[[33m400 ^[[0m12.495 ms - 53^[[0m

Server Settings > Places table is empty

I don't have a place connected to my domain. But (according to my account dashboard) a temporary place has been associated with my domain - "cyan-condor". But the Settings > Places table is empty.
I would expect:

  1. The temporary place to be listed in the table.
  2. There be a row with a "+" sign to choose / create a place.

PR370 Places table ...
empty-places-table

Expected Places table (from similar 2020.2.5 server setup) after clicking the "+" button ...
expected-places-table

Add request that explicitly does the domain to associated account assignment

At the moment, an account creates a token with DOMAIN scope and gives that to the domain to use for metaverse-server access. This means that the metaverse-server kinda has to assume that a domain using that token is associated with the account that created that token.
It would be Way Better if there was a request that explicitly associated the account with the domain making the domain management association official.
This would also make Place creation and management easier as it would be explicit that this account manages this domain and places.

Rate limit incoming requests

There should be some rate limiting of incoming requests.

Current implementation creates/expires Sessions for IP:port. Could be basis for own implementation. If not doing own leaky-bucket implementation, consider removing Sessions completely. Possible library: https://www.npmjs.com/package/leaky-bucket

Explore available nodejs/expressjs rate limiting packages:
https://www.npmjs.com/package/express-rate-limit
https://www.npmjs.com/package/rate-limiter-flexible
https://www.npmjs.com/package/express-brute
https://www.npmjs.com/package/express-limiter

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.