Meta 2.4 SDK Beta - EULA Review

Meta 2.4 Beta SDK was released on October 30th, 2017. So let's review the most interesting part - the EULA :-P

The Meta 2.4 SDK has the following documents associated with it: 

While not the most interesting part of the new product, understanding license agreements is super important. We're going to review these docs and pull out anything interesting. 

FCC Notice

The FCC notice refers to the CFR 47 Part 15 sub-part B which covers unintentional radiators. Specifically, the headset is classified as a "Class A" device. For the FCC unintentional radiator rules, there are two classes: Class A, commercial or industrial devices, and Class B, consumer grade devices that are intended to be used in the home. Class A requirements are less stringent for both unintentional and conducted emissions.

The product seems to also have been tested for Industry Canada's (IC) unintentional radiator specifications. 

This does also tell us that the headset is unlikely to have a powered wireless device in the headset. There is no labeling on the headset to indicate a FCC ID or other intentional radiator classification. 

EULA

The EULA has some interesting sections. I am not a lawyer. None of this is legal advice. Your mileage may vary. Hit the gym, delete facebook, etc. etc. 

Definitions

  1. "Meta HMD" = The headset 
  2. "Products" = Firmware, SDK, and other software products

Excerpts about "Limitations"

You may not distribute or make the Product available over a network 
where it could be used by multiple devices at the same time.

So - it seems they are prohibiting someone from making a service like BrowserStack

There are also sections on not to "sell, rent, lease,..." etc without consent.

Ownership

As between you and Meta, Meta will own all right, title, and 
interest in and to the Meta HMD and Products and any and all
modifications, copies, or derivatives thereof or improvements
thereto. You hereby assign any and all right, title and interest
to any intellectual property rights, including trademark, patent,
and copyright rights, in any modifications, derivatives, or
improvements to the Meta HMD and Products you create. You must
maintain any proprietary notices and attributions in any such
derivatives, modifications or improvements to the Meta HMD and
Products that you create.

I think the intention here is to prevent someone from attempting to reverse the engineer or make a derivative of the headset product that is better using the Meta HMD as a base. The second thing this suggests is that you shouldn't bother trying to improve the software or hardware unless you fully understand that you are providing free work to Meta. That may not matter to you, it may be more important to just get things to work for your application.

The EULA goes on to say: 

For avoidance of doubt, Meta and its assignees and licensees will be 
free to use such modifications, derivatives, or improvements without
approval from you and without compensation or attribution to you, and
you agree to provide source code and binary code to Meta upon request
for any such modifications, derivatives, or improvements. You will
have only the limited license to use the Meta HMD and Products in
accordance with these Terms & Conditions and EULA.

It is pretty clear that Meta has the option of absconding with anything you show them. Moral of the story is that you should probably be very careful about how you communicate with Meta's tech support. 

External Services

The EULA has an entire section discussing "External Services":

External Service; Third-Party Materials. The Product may enable access 
to Licensor's and/or third-party services and websites (collectively and
individually, "External Service"). Use of the External Service requires
Internet access and use of certain External Service requires you to
accept additional terms.

The most basic reading of this seems to imply that "External Service" could be as simple as a web browser in the Meta HMD view. But from reading this section further, it seems that the grand view of this is much larger in scope. It seems that the idea would be to have some kind of distribution network for applications, volumetric cinema, and/or interactive games. 

Safety

WHILE USING THE META HMD, DO NOT OPERATE A VEHICLE, USE IN WATER, HANDLE 
SHARP OR OTHERWISE DANGEROUS OBJECTS, ...

The "do not operate a vehicle" warning seems to be a good warning because the viewing window of the Meta HMD has some bends in it that cause some strange refraction affects. It is conceivable that these could impede the ability of the user to drive or detect objects. This is all before considering the images projected in the augmented reality space.

Warranty 

There is no warranty, explicit or implied. It explicitly says that you the user are on the hook for any repairs to the device. 

What the EULA Doesn't Say

The EULA does not have any sections covering Non-disclosure agreements. 

Third Party Notices

The third party notices give us an insight in to what 3rd party software the Meta SDK is leveraging. Below is a list of items in this document : 

ArUco, ORB-SLAM2, and OpenChisel seem to be the major computational components to this system. The ORB-SLAM2 license seems to indicate that Meta has acquired a commercial license from the authors. 

The Hillcrest Lab's library indicates that the Meta HMD likely contains an Inertial Measurement Unit (IMU). The IMU's listed on Hillcrest Lab's website indicate that they are mostly 9-D IMUs consisting of an MEMS accelerometer, gyroscope, and magnetometer. This should provide a good estimate of the pose of the headset that could be fused with the SLAM algorithm to provide higher confidence. From a very quick review of the listed libraries, I didn't see anything referencing a estimation filter (ie, Kalman Filter, Particle Filter, etc) so either I missed it or perhaps Meta has implemented a custum estimator. 

----------------------------------------------------------------------------

Comments on /r/augrealblog