-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Google Summer of Code 2023
Update: Open3D was not selected for GSoC 2023, but please take a look around and contribute back if you use Open3D in your work!
Open3D is an open-source library that supports rapid development of software that deals with 3D data. 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 was developed from a clean slate with a 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. Open3D has been used in a number of published research projects and is actively deployed in the cloud. We welcome contributions from the open-source community.
This is our ideas page for Google Summer of Code 2023. See the GSoC website for information about participating in the program and Timeline for important dates.
If you are interested in contributing to Open3D, start with the videos and tutorials. Next, get familiar by downloading Open3D (C++ source as well as Python package) and check that you can build the library and run both C++ and Python examples. Visit the discussions and Open3D issues and Open3D-ML issues pages to see how people use Open3D. Before working on code changes, remember to read the contribution guide. If you have a question, you can ask here; If you see something that you know the answer to, go ahead and reply! We welcome participation from everyone.
Listed on this page are project ideas that fill critical gaps in Open3D's functionality. If a project description is unclear, or you have any questions, please ask here. A mentor or community member will get back to you.
When you decide on a project, email Open3D GSoC admins with your resume and the project that you are interested in. The mentor will get back to you and may proceed with a meeting and qualification task. After your meeting with the mentor, they will send you a qualification task to complete and return in a week. The qualification task is necessary to show that you are committed to the project and have the skills necessary for successfully completing it.
Apply definitely before the deadline on April 4th. Take a look at the GSoC timeline for additional information. Note, make sure you apply to Google before April 4th, even if you have not yet finished your qualification task. Please apply as soon as possible: Applications can be improved until the 4th of April, but not afterwards!
Contributors and their project proposals will be selected based on the meeting with the mentor, qualification task submitted and the GSoC application. This also depends on the number of GSoC slots allotted as a whole to Open3D. If you are selected, welcome! We are happy to work closely with you. If you are not selected, we hope you still provide your valuable contributions to Open3D and hope that you apply again next year.
If you are selected for a particular project, then you will be fully integrated into the core Open3D development team. Use the community bonding period (May 4 - May 28) to get used to working with Open3D and interacting with the core development team. Check in with your mentor and start by fixing some of the open issues to get used to the development process. The "work" period begins on May 29th and ends in September. You will attend regular status meetings, which are a great opportunity to ask questions and get feedback on your progress. You will also be able to follow along as everyone works collaboratively on the next Open3D release.
Make sure to keep your mentor in the loop with your progress, and reach out to them on discord or in a meeting if you have any questions. Structure your project in smaller pull requests that are reviewed and merged into Open3D gradually. You can find more software development advice in the GSoC contributor guide.
- Description: The goal of this project is to enhance the functionality of Open3D tensor-based 3D geometry processing algorithms. You’ll be contributing to the core geometry processing features of Open3D. Currently, Open3D supports comprehensive geometry processing with legacy Eigen-based geometry types, while tensor-based geometry support is limited.
-
Expected outcomes:
C++ and Python wrappers for:
- Surface reconstruction for triangle mesh (Poisson, ball pivoting, etc.).
- Mesh analysis (Computing areas, volumes, water tight, manifold properties, etc.)
- Mesh simplification (Filtering, sampling, clustering, etc.).
- LineSet functions
- Possible Mentors: Sameer Sheorey, Yixing Lao
- Skills required: C++, Python, 3D Geometry
- Expected size: 350hr
- Difficulty level: Medium
- References:
- Description: The goal of this project is to bring support for the Universal Scene Description (USD) file format to Open3D. Although originally developed by Pixar, USD is now widely supported by many 3D software packages and is used in many domains including visual effects, architecture, simulation, and robotics. The USD format is as much a framework as it is a file format and will require considerably more effort to bring to Open3D than just writing I/O plugins for the format. The contributor will be expected to identify and address the technical gaps in Open3D necessary to support USD including but not limited to new data structures to represent USD data in Open3D.
- Expected Outcome: The Pixar USD demo assets can be loaded and visualized in Open3D and a scene created in Open3D can be saved as USD and correctly loaded and visualized in a 3rd party 3D software package such as Blender.
- Possible Mentors: René Sepúlveda, Benjamin Ummenhofer
- Skills Required: C++, Python, 3D graphics (helpful)
- Expected Size: 350hr
- Difficulty Level: Medium
- References:
- Sameer Sheorey (sameer DOT sheorey AT ivcl DOT org)
- Yixing Lao (administrator AT ivcl DOT org)
- Sameer Sheorey (@ssheorey)
- Rene Sepulveda (@errissa)
- Benjamin Ummenhofer (@benjaminum)
- Yixing Lao (@yxlao)
Adapted from FFMPEG GSoC ideas page