hifi

Open source client/server software for creating shared VR environments. Docs at http://docs.highfidelity.com We are hiring: http://highfidelity.com/jobs Also, PT work available at http://worklist.net

Github星跟蹤圖

High Fidelity (hifi) is an early-stage technology lab experimenting with Virtual Worlds and VR.

This repository contains the source to many of the components in our
alpha-stage virtual world. The project embraces distributed development.
If you find a small bug and have a fix, pull requests are welcome.

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 down. If you're experiencing a major bug, let us know by
adding an issue to this repository. Include details about your computer and how to
reproduce the bug in your issue.

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 need 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!

主要指標

概覽
名稱與所有者googleapis/googleapis
主編程語言Starlark
編程語言CMake, C++, CSS, JavaScript, HTML, Java, GLSL, C, Objective-C++, QML (語言數: 4)
平台
許可證Apache License 2.0
所有者活动
創建於2015-03-25 19:47:34
推送於2025-05-20 19:52:25
最后一次提交2025-05-20 12:51:23
發布數1
最新版本名稱common-protos-1_3_1 (發布於 )
第一版名稱common-protos-1_3_1 (發布於 )
用户参与
星數7.9k
關注者數345
派生數2.4k
提交數10.1k
已啟用問題?
問題數0
打開的問題數0
拉請求數523
打開的拉請求數6
關閉的拉請求數256
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?