Open
Description
Outline
Add more fuzzing tests for both 2D and 3D operations.
Details
Fuzzing is an effective technique to expose bugs in software. Fuzzing tests randomly generate structured inputs (according to specification), and test if the program crashes/failed assertions.
This project aims to test 2D and 3D CSG operations on geometrically valid polygons/meshes. To do this, we will define a very simple AST for our CSG operations, and use the recursive domain feature of fuzztest for the tests.
We will also randomly apply slight perturbation to make the valid geometry only epsilon-valid, to test for robustness of the algorithm.
Expected Outcome
Fuzz tests that test for union, intersection, difference, 2D extrude/revolve, etc.
Project Properties
Skills
- C++
- Basic understanding of graph data structure.
Difficulty
- Medium
Size
- Medium
Additional Information
- Potential mentor(s): @pca006132
- Organization website: https://manifoldcad.org/
- Communication channels: https://github.com/elalish/manifold/discussions