-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
PCL GSoc Ideas
PCL returns to GSoC after a long hiatus. This year, PCL is looking for contributions and active community members from all corners of the coding community in the roles of
- technical writers
- designers
- web developers
- C++ developers
- CI/CD experts
- polyglots
- wizards
- mentors
and everything else in between.
As the community grows, soft-skills and community outreach become more important. With the change in community, it has become important to update the overlooked facet of PCL and make it more accessible to the community
- Update outdated Website
- Create a static website on Github pages or similar
- Provide a basic replacement including:
- documentation for past releases
- prevent invalidation of links as much as possible, while updating the content
- Make it the new home for
pointclouds.org
with HTTPS support - (Stretch goal) Migrate all content from existing website, including
- ability to create blog posts (using Jekyll or similar)
- lost content (from internet archives)
- Walk through documentation (Tutorials, Guides and Examples)
- Update to reflect forward movement in PCL
- Merge with auto-gen API documentation to make a single website
- Detect and increase coverage
- Reference Manual Documentation
- Improve documentation coverage
- Migrate front-end to sphinx
- (Stretch goal) Add CI test for missing documentation in "new code"
As PCL has matured, it has discovered missing features: features that are more than just the core code, features that are vital for delivering continuous improvements. We look forwards for the ideas/projects with a minor or negligible addition of "code features" as output. Some of the wish-list features are:
- Benchmarks and Performance monitoring
- Nightly CI jobs to measure performance on
master
- (Stretch goal) Incremental bench-marking on PR
- Nightly CI jobs to measure performance on
- Compilation time reduction
- Refactoring/CMake changes/Sub-Modules to reduce compilation time
- 100% reproducible incremental builds (with a constant config)
- (Stretch goal) Compile time reduction on CI using
- incremental builds
- compiler caches
- Improving confidence in builds
- Incremental builds on CI
- More warnings and sanitizers for CI
- Integrate
clang-tidy
, static-analyzers - Increasing test coverage
- ABI/API breakage monitoring for PR
- Make a better CMake
- More DRY, less wizardry
- Automatic module discovery
- Automatic test discovery (refactoring test code layout is ok)
- Out-of-source PCL-contrib super-module similar to OpenCV-contrib
Old API designs result in greater friction between how developers prefer to use vs how PCL lets developers use the API. Overhauling API used to be difficult but with libtooling
and clang-tidy
, it has been made manageable. Some of the ideas for guiding PCL towards a more modern API are:
- Refactoring and Modernization
- Better type for indices
- Fluent style API for algorithms
- Extend
format
andclang-tidy --fix
to other modules
PCL is missing a lot of state-of-the-art implementations. Suggestions/implementations of such algorithms are highly welcome since highly performant, cutting edge algorithms are a core component of PCL. Apart from them, the following features are also on the wish-list of PCL:
- Binding interface for (Python, Matlab/Octave, C) (1 project per wrapping isn't worth 3 months)
- Unified API for PCL algorithms
For interested students:
- Please announce yourself and your interest in PCL at the gitter chat
- Do not contact the mentors privately
- As per your interest, you'd be assigned a small task to evaluate your skills
For those interested in becoming mentors:
- Please note that mentoring and co-mentoring can take a lot of effort from your side (from 10 hours a week or 1 hour a week depending on the project, the student, the problems, etc.)
- Please announce yourself and participate in discussions at the gitter chat
- Feel free to PM existing maintainers/mentors
- "Teaming up" as co-mentors is an option if you feel you will not be able to be the sole mentor on a project. For projects with existing mentor(s), it is upto them to accept/reject a co-mentor
Alphabetical list of mentors
- kunaltyagi
- taketwo
If any of the following ideas are not implemented, please notify kunaltyagi on Gitter using PM or PCL chatroom. They will be added to the ideas list.
If any of the following projects are not integrated in PCL, please notify kunaltyagi on Gitter using PM or PCL chatroom. They will be slated for review and addition in PCL-core (if maintainers are found) or PCL contrib (like opencv-contrib) (if there is a lack of maintainers)