Projekt Open3D

Ta strona zawiera szczegóły projektu technicznego do pisania w sezonie Dokumentów Google.

Podsumowanie projektu

Organizacja open source:
Open3D
Pisarz techniczny:
Rohan Rathi
Nazwa projektu:
Dokumentacja techniczna interfejsów API Python i C++
Długość projektu:
Standardowa długość (3 miesiące)

Opis projektu

Streszczenie:

Projekt będzie podzielony na 4 części: Uaktualnienie i rozszerzenie przewodnika dla współtwórców Open3D Pełna dokumentacja interfejsu API Pythona Pełna dokumentacja interfejsu API C++ Ogólne dokumenty dotyczące podstawowych struktur danych

Opis:

Mój projekt będzie podzielony na 4 części:

Planuję ukończyć i zaktualizować przewodnik dla nowych współtwórców, który będzie zawierał kompleksowe instrukcje krok po kroku dotyczące kompilowania kodu źródłowego, tworzenia dokumentacji i dołączania do społeczności programistów. Oprócz przewodnika w formie tekstu zamierzam nagrać film, w którym pokażę, jak dokładnie skompilować kod źródłowy na potrzeby kanału w YouTube. Dodam też przewodnik, który pomoże nowym programistom wnosić poprawki do dokumentacji poprzez wprowadzanie zmian w źródłowym kodzie Sphinxa za pomocą pybind i doxygen.

Rozszerz dokumentację interfejsu Python API. Obecnie interfejs API Pythona zawiera podstawowe docstringy dla klas i funkcji członkowskich, które zawierają ogólny opis funkcji. Planuję zmienić treść dokumentacji interfejsu API Pythona, aby była ona bardziej zrozumiała i bardziej czytelnie opisywała funkcje interfejsu. Chcę też dodać linki do odpowiednich koncepcji grafiki 3D używanych w różnych obszarach (np. do macierzy wewnętrznej używanej w aplikacji Aparat).

Zapoznaj się z dokumentacją interfejsu API C++. Obecnie w dokumentacji C++ nie ma odpowiedników docstrings, które są dostępne w dokumentacji Pythona. Zamierzam szczegółowo udokumentować klasy i powiązane z nimi funkcje członkowskie oraz elementy danych .

Dokumenty dotyczące podstawowych struktur danych na wysokim i niskim poziomie. Zamierzam zrozumieć kod różnych struktur danych, takich jak TriangleMesh, LineSet, Octree, i dodać komentarze w bazie kodu, aby ułatwić zrozumienie zarówno programistom, jak i wszystkim użytkownikom. a także udostępnić dokumentację ogólną dotyczącą korzystania z tych struktur i pojęć z nimi związanych, ulepszając samouczki. Udostępnię szczegółowe przykłady użycia i dodam odpowiednie linki do pojęć związanych ze strukturami. Jeśli czas na to pozwoli, zajmę się łatwiejszymi zadaniami, takimi jak udokumentowanie sposobu wykonywania określonych czynności, które mogą pomóc nowym użytkownikom w poznaniu oprogramowania.

Harmonogram projektu

1 sierpnia – 1 września:

Poznaj mojego mentora i porozmawiaj z nim o tym, jak szczegółowo dokumentować różne części kodu źródłowego. Porozmawiaj też o tym, jak szczegółowo dokumentować kod na poziomie niskiego poziomu abstrakcji i wyższego poziomu abstrakcji. W tym czasie będę też poznawać kod źródłowy i analizować pojęcia, aby lepiej je udokumentować.

Tydzień 1 i 2:

Zaktualizuję i rozszerzę przewodnik dla autorów. Poprawię dokumentację tworzenia kodu źródłowego. Dodam też sekcję dotyczącą tego, jak nowi współtwórcy mogą pomóc w tworzeniu dokumentacji. Nagrywam też w YouTube film z instrukcjami krok po kroku, jak utworzyć kod źródłowy.

Tydzień 3–5:

Zajmę się rozszerzeniem interfejsu Python API. Przeformułuj istniejącą dokumentację i napisz szczegółową dokumentację dla obecnych wspierających. Dodam też odpowiednie linki do powiązanych pojęć, aby użytkownicy mogli lepiej poznać omawiane zagadnienia.

Tygodnie 6–8:

Obecne dokumenty C++ są niekompletne w przypadku większości części biblioteki, więc większość czasu poświęcę na uzupełnienie dokumentów C++

Tygodnie 9–11:

W tym czasie będę pracować nad podstawowymi strukturami danych. Przeorganizuj samouczki dotyczące każdej struktury danych, zapewnij ogólne omówienie, a także udokumentuj przykładowe użycie.

Ostatni tydzień:

Ostatni tydzień wykorzystam na przygotowanie końcowego raportu z wyników pracy w ciągu 12 tygodniowego okresu dokumentowania. Poświęcę też ten czas na sprawdzenie i finalizowanie dokumentacji.