# Ocean is Meta's computer vision framework, released as source only

> Ocean is a C++ framework for computer vision and augmented reality applications, platform independent and requiring C++20, with build instructions for Android, iOS, Linux, macOS, Meta Quest and Windows, and no pre-built binaries, so every adopter compiles it themselves. It suits teams working on 3D perception, tracking and rendering who are prepared to own the build.

**facebookresearch/ocean** — Ocean is the in-house framework for Computer Vision (CV) and Augmented Reality (AR) applications at Meta. It is platform independent and is mainly implemented in C/C++.

- Repository: https://github.com/facebookresearch/ocean
- Website: https://facebookresearch.github.io/ocean/
- Stars: 798 · Forks: 97
- Language: C++
- License: MIT
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/facebookresearch-ocean

## An in-house framework opened up rather than a productised SDK

Ocean is described in the repository as the in-house framework for Computer Vision and Augmented Reality applications at Meta, and the project description adds that it is platform independent and mainly implemented in C and C++. What that means for an outside adopter is that the repository is a working framework rather than a curated component library. There is an `impl/` directory for the implementation, a `res/` directory for resources, a `build/` directory holding the build scripts, `doc/` for documentation, and a `website/` directory that produces the project site, alongside the usual `CMakeLists.txt`, `CHANGELOG.md`, `CONTRIBUTING.md` and `CODE_OF_CONDUCT.md`. The scope implied by that layout is broad, which is the appeal for a research team and the reason a small product team would hesitate.

## No pre-built binaries, so the build is part of adopting it

The single most consequential line in the README is that no pre-built binaries are provided and that to use Ocean you must build it from source. That is a deliberate choice and it has a clear consequence for planning. There is no artifact to download and pin, so every consumer compiles the framework, which means the build configuration becomes part of your own build, and it means a compiler or SDK upgrade on your side is your problem. The upside of the same decision is that you are building exactly the source that is in the repository rather than a binary whose provenance you cannot inspect, and the continuous integration workflow for building and testing on Linux in the README suggests the project runs its own tests on every change, which is a reasonable proxy for the code being in a working state.

## The toolchain floor is C++20, CMake 3.26 and Python for the scripts

The general prerequisites are listed in one short section, and they are the practical gate for adoption. Python 3.10 or higher is needed for the build scripts, and their dependencies are installed with `pip install -r build/python/requirements.txt`. CMake 3.26 or higher is required. Ocean itself requires C++20. Git has to be available in the path. The C++20 requirement is the significant one for a long-lived product, since it rules out toolchains that have not adopted the standard, and the CMake floor rules out older build environments. The README also points to the project website for a general overview, which is where the documentation for individual modules lives.

## Seven documented build paths, one per platform

The build instructions are split by platform, and the list is a good indication of what Meta actually runs. There are documents for Android, iOS, Linux, macOS, Meta Quest and Windows, plus a separate guide for building with Visual Studio, which the README notes covers Windows, Android and OpenXR from VS. The Visual Studio entry is the interesting one, because it means the same framework is built from a Microsoft toolchain for three targets, which is a different story from a CMake-only project. For an adopter, the practical checklist is to find the document for the platform you ship on and confirm the toolchain it expects, rather than assuming the Linux instructions generalise.

## What sits in the repository, and where to look

The directory names give a reasonable map of the framework. `impl/` holds the implementation, `res/` holds resources, and inside `res/` there is a platform tree, since the licence note points at a path under `res/ocean/platform/meta/quest/application/assets/ocean_meta_quest_application/controller/`, which tells you that the resources are organised per platform and per application, with the Quest build carrying its own controller assets. `build/` holds the build scripts, including the Python requirements file the prerequisites point at. `doc/` holds the per platform build documents, and `website/` holds the site source, which is built and deployed by its own workflow, visible as the second badge in the README. The CHANGELOG at the root is where behavioural changes between versions are recorded, and the contribution guidelines are the stated requirement before any code change is submitted.

## MIT, with one directory under different terms

Ocean is released under the MIT Licence, which is the permissive grant most C++ projects use and which means a commercial product can link against it. The README then adds a licence exception that is easy to miss. All files in the directory under `res/ocean/platform/meta/quest/application/assets/ocean_meta_quest_application/controller/` are licensed under the Art Attribution License 1.0, and the README asks readers to review the individual files for their specific licensing details. The reason for the carve-out is visible in the path, since these are Quest application assets, and the distinction between a permissive software licence and an assets licence is exactly the kind of thing that has to be checked before a release rather than after one.

## A release line that reached 2.0 in 2026

The version history shows a project that spent a long time in 1.x and then moved. The listed releases are v1.0.0 on 2024-07-08, v1.0.1 on 2024-08-29 and v2.0.0 on 2026-04-09, and the last push to the repository was on 2026-10-22, so the framework is still being worked on after the 2.0 release. The gap between 1.0 and 2.0 is nearly two years, which tells you that major versions are not released on a schedule. For a team that adopts this, the practical reading is to expect a long upgrade cycle between major versions and to plan for source level compatibility work rather than a version bump. The CHANGELOG is the document to read before moving between them, and the release tags are the only version markers the repository offers.

## Conclusion

Adopt Ocean when you are building computer vision or augmented reality work in C++ and want a large, tested set of perception and rendering components that you can read and modify, since the repository is the whole in-house framework rather than a thin SDK. Do not adopt it if you need something you can install from a package manager, because the README is explicit that no pre-built binaries are provided and you must build it from source, and the floor of C++20, CMake 3.26 and Python 3.10 for the build scripts is a real prerequisite. Verify first that your target platform has a documented build path, since there is a separate document per platform, and read the licence exception for the Meta Quest controller assets before you ship anything on that platform.

## FAQ

### What are the prerequisites for building Ocean?

Python 3.10 or higher for the build scripts, whose dependencies are installed with `pip install -r build/python/requirements.txt`, CMake 3.26 or higher, Git in the path, and a C++20 capable toolchain, since Ocean requires C++20.

### Are there pre-built binaries for Ocean?

No. The README states that no pre-built binaries are provided and that to use Ocean you must build it from source, with separate build documents for Android, iOS, Linux, macOS, Meta Quest and Windows, plus one for Visual Studio.

### Which platforms does Ocean build for?

The README links build instructions for Android, iOS, Linux, macOS, Meta Quest and Windows, and a separate document for building with Visual Studio, which covers Windows, Android and OpenXR from Visual Studio.

### What licence applies to Ocean?

Ocean is released under the MIT Licence, with an exception for the files in the `res/ocean/platform/meta/quest/application/assets/ocean_meta_quest_application/controller/` directory, which are licensed under the Art Attribution License 1.0, and the README asks you to review those individual files for details.

## Sources

- [facebookresearch/ocean on GitHub](https://github.com/facebookresearch/ocean)
- [License: MIT](https://github.com/facebookresearch/ocean/blob/main/LICENSE)
- [Project website](https://facebookresearch.github.io/ocean/)
- [README](https://github.com/facebookresearch/ocean/blob/main/README.md)
- [Releases](https://github.com/facebookresearch/ocean/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/facebookresearch-ocean
