Skip to content

Google Season of Docs 2022 Case Study

Yixing Lao edited this page Nov 29, 2022 · 12 revisions

Open3D Google Season of Docs (GSoD) 2022 Case Study (Final Report)

(We have submitted this page's URL to Google. Do not change the tile of this page. Otherwise, the URL will be changed.)

Organization or Project

Update Open3D API Docs and Examples - Open3D

Organization Description

Open3D is an open-source library that supports rapid software developments with 3D data. Core features of Open3D include 3D data structures, 3D data processing algorithms, scene reconstruction, surface alignment, 3D visualization, physically based rendering (PBR), 3D machine learning support with PyTorch and TensorFlow, GPU acceleration for core 3D operations, and more.

The Open3D frontend exposes a set of carefully selected data structures and algorithms in both C++ and Python. The backend is highly optimized and is set up for parallelization. Open3D is developed from a clean slate with a small and carefully considered set of dependencies. It can be set up on different platforms and compiled from source with minimal effort. The code is clean, consistently styled, and maintained via a clear code review mechanism.

With 2.5M+ Python downloads in 2021, Open3D is vastly popular among engineers and researchers worldwide working on 3D computer vision, computer graphics, 3D visualization, and more. We welcome contributions from the open-source community. By contributing to Open3D's Google Season of Docs 2022 projects, you will make an impact on one of the most vibrant 3D computer vision communities. Problem Statement/Proposal Abstract Open3D's functionalities are growing rapidly. Recently we have added tensor-based geometry classes and algorithms, CUDA acceleration, new visualizer capabilities, and more. However, some of the documentation is missing or is not up-to-date. Based on the GitHub issues that we received, users find it confusing to switch between the new and old APIs, and users asked "how to do X with Open3D" questions.

Project Description

Creating the proposal

The Open3D team came up with the project proposal based on the project's needs and community feedbacks. Open3D is undergoing a rapid development phase towards the 1.0 release, where it will feature brand new tensor-based geometry classes and algorithms, CUDA acceleration, new visualizer capabilities, and more. The documentation of these tensor-based APIs is largely missing from the current documentation page. In addition, the community has also raised multiple requests on GitHub and Discord for adding these documents for Open3D 1.0. In addition, documentation for "how-to-do X with Open3D" has also been a popular request for the community.

Budget

All our budgets go to the technical writers. We estimate our budgets based on the stipends for the technical writers. In particular, each technical writer will receive 6,000 USD. We originally also planned to give thank-you gifts to the technical writers for 100 USD. The total budget is 6,000 x 2 + 100 = 12,100 USD. Due to shipping limitations, we later decided to convert the thank-you gifts directly to cash and send them to the technical writer.

Participants

  • Technical writers: We are glad to have Yueci Deng and Asapanna Rakesh joining us as technical writers.
  • Mentors: On the Open3D team side, Yixing Lao and Sameer Sheorey serve as the mentors for the project.
  • Communication: The technical writers and the mentors communicated closely via weekly meetings, Discord, and GitHub comments/reviews. In particular, we integrated the technical writers in the full Open3D team meetings to give everyone more context about the future directions of the project.
  • Contributions:
    • Yueci did an excellent job, submitted multiple pull requests, and made significant contributions to the Open3D project.
    • Unfortunately, Asapanna was not able to continue and dropped out of the project due to personal reasons.

Timeline

  • May 2022: Technical writer hiring.
  • May 2022: Project started.
  • June 2022: Familiarize with the project and start by fixing bugs.
  • July-October 2022: Main GSoD contribution period.
  • November 2022: Finalize the project and submit the evaluation.

Results

In summary, Yueci has done an excellent job, submitted multiple pull requests, and made significant contributions to the Open3D project's documentation. Most of Yueci's work has already been merged into the master branch.

In addition to various documentation items, some new features and bug fixes were also added by the technical writer. All of these changes have been properly documented within the code.

Here is a list of contributions by our GSoD contributor, Yueci:

Summary

We consider our GSoD project a success. Although we have only one contributor (Yueci) who completes the project, Yueci has made significant and valuable contributions to Open3D.

In terms of documentation, Yueci has contributed multiple pull requests, such as "fix doc error for tensor functions", "Fix doc typo", "Add doc for tensor with pickle support", and "Tensor PointCloud tutorial". In particular, the last one "Tensor PointCloud tutorial" addresses our main issue of adding documentation for the Open3D 1.0 tensor API and tensor-based geometries. In addition, Yueci has also made various contributions in adding new features and bug fixes.

Acknowledgments

  • We'd like to thank all our technical writers for their participation and contributions.
  • We'd like to thank Google for organizing this event.
  • We'd like to thank other Open3D team members for their help in this project: @errissa, @benjaminum, @reyanshsolis, and @germanros1987.