* Tablet paginator initial * Refactor to SwipeView * Use MouseArea for interacting instead of default one to be able interact in HMD mode * Make page indicators non clickable. Attempt to enable swipe even over buttons * Tune press delay to be able to swipe tablet pages easier * VR stylus and laser need longer timeout than mouse * Swipe area expanded to whole tablet. Icons doesnt stick together anymore * Fix warnings after apps closed * Using Flickable signals to remove hover state instead of timer. No more delays * Created poly scripting interface template * Created poly scripting interface template * can fetch poly asset list synchronously * removed key * Something intermediate * Retreive buttons list from tablet proxy * Added buttons list mutex protection. Reworked keyboard tablet navigation. no more double selections * Code style * Created poly scripting interface template * can fetch poly asset list synchronously * removed key * added getAssetList() and getFBX() * Added smart pointer for qml buttons. removed extra modifiers. page changed using left and right buttons * Create pages and store in global array, makes sure it will not be cleared by garbage collector whe out of scope * enabled fbx, obj, and blocks model url retrieval * added gltf import feature, getAssetList() not working * fixed getAssetList() * cleaned up code * added const to valid inputs * changed qtglobal include * added newline to header * Store button list in the resources section of fake item instead of C++ space * Preliminary proxy model * fix issue * delete dot file * fix spacing * fix grabbing * delete code * fix model overlays visibility change * typo * Refactored using new GridView approach * Selection consistency #1 * Selection consistency #2 * handles empty json object return * keyword filters case insensitive now * fixed constant names, added another URL check * added const to several parameters * changed api key variable name * Use buttons index * Cleanup. Errors checks * Remove legacy jurisdiction code * Update Octree server stats to handle single server * CR * Fix marketplacesInject.js for local Metaverse * Make things slightly better? * Remove erroneous "filed" Overlay property * Add a link to My Purchases from Wallet Home * add .jsc, remove duplicate qmlc, and remote Utils.jsc * Fix Security Pic Change dialog after QML security changes * Add Unused packet type back for ICE servers * Make sure the protocol signature still changes * fix bug preventing sim owenrship on local domain * remove unnecessary 'virtual' keyword |
||
---|---|---|
android | ||
assignment-client | ||
cmake | ||
domain-server | ||
gvr-interface | ||
ice-server | ||
interface | ||
libraries | ||
plugins | ||
script-archive | ||
scripts | ||
server-console | ||
tests | ||
tools | ||
unpublishedScripts | ||
.clang-format | ||
.editorconfig | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
BUILD.md | ||
BUILD_ANDROID.md | ||
BUILD_LINUX.md | ||
BUILD_LINUX_CHEATSHEET.md | ||
BUILD_OSX.md | ||
BUILD_WIN.md | ||
CMakeGraphvizOptions.cmake | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
INSTALL.md | ||
LICENSE | ||
README.md |
High Fidelity (hifi) is an early-stage technology lab experimenting with Virtual Worlds and VR.
In this repository you'll find the source to many of the components in our alpha-stage virtual world. The project embraces distributed development and if you'd like to help, we'll pay you -- find out more at Worklist.net. If you find a small bug and have a fix, pull requests are welcome. If you'd like to get paid for your work, make sure you report the bug via a job on Worklist.net.
We're hiring! We're looking for skilled developers; send your resume to hiring@highfidelity.com
Chat with us
Come chat with us in our Gitter if you have any questions or just want to say hi!
Documentation
Documentation is available at docs.highfidelity.com, if something is missing, please suggest it via a new job on Worklist (add to the hifi-docs project).
There is also detailed documentation on our coding standards.
Contributor License Agreement (CLA)
Technology companies frequently receive and use code from contributors outside the company's development team. Outside code can be a tremendous resource, but it also carries responsibility. Best practice for accepting outside contributions consists of an Apache-type Contributor License Agreement (CLA). We have modeled the High Fidelity CLA after the CLA that Google presents to developers for contributions to their projects. This CLA does not transfer ownership of code, instead simply granting a non-exclusive right for High Fidelity to use the code you’ve contributed. In that regard, you should be sure you have permission if the work relates to or uses the resources of a company that you work for. You will be asked to sign our CLA when you create your first PR or when the CLA is updated. You can also review it here. We sincerely appreciate your contribution and efforts toward the success of the platform.
Build Instructions
All information required to build is found in the build guide.
Running Interface
When you launch interface, you will automatically connect to our default domain: "root.highfidelity.io".
If you don't see anything, make sure your preferences are pointing to root.highfidelity.io (set your domain via Cmnd+D/Cntrl+D), if you still have no luck it's possible our servers are simply down; if you're experiencing a major bug, let us know by adding an issue to this repository. Make sure to include details about your computer and how to reproduce the bug.
To move around in-world, use the arrow keys (and Shift + up/down to fly up or down) or W A S D, and E or C to fly up/down. All of the other possible options and features are available via menus in the Interface application.
Running your own servers
The assignment-client and domain-server are architectural components that will allow you to run the full stack of the virtual world.
In order to set up your own virtual world, you need to set up and run your own local "domain".
The domain-server gives a number different types of assignments to the assignment-client for different features: audio, avatars, voxels, particles, meta-voxels and models.
Follow the instructions in the build guide to build the various components.
From the domain-server build directory, launch a domain-server.
./domain-server
Then, run an assignment-client. The assignment-client uses localhost as its assignment-server and talks to it on port 40102 (the default domain-server port).
In a new Terminal window, run:
./assignment-client
Any target can be terminated with Ctrl-C (SIGINT) in the associated Terminal window.
This assignment-client will grab one assignment from the domain-server. You can tell the assignment-client what type you want it to be with the -t
option. You can also run an assignment-client that forks off n assignment-clients with the -n
option. The -min
and -max
options allow you to set a range of required assignment-clients, this allows you to have flexibility in the number of assignment-clients that are running. See --help
for more options.
./assignment-client --min 6 --max 20
To test things out you'll want to run the Interface client.
To access your local domain in Interface, open your Preferences -- on OS X this is available in the Interface menu, on Linux you'll find it in the File menu. Enter "localhost" in the "Domain server" field.
If everything worked you should see that you are connected to at least one server. Nice work!