Difference between revisions of "Google Code In/2017/Tasks"
From BRL-CAD
(→Task chain ideas) |
(up to 81 coding tasks) |
||
Line 22: | Line 22: | ||
* C: OpenCL pipelining | * C: OpenCL pipelining | ||
− | |||
* C: Boolean evaluation debugging | * C: Boolean evaluation debugging | ||
* Javascript: OGV | * Javascript: OGV | ||
* ThreeJS/Verb: OGV Nurbs | * ThreeJS/Verb: OGV Nurbs | ||
− | |||
− | |||
* C/C++: libbu C++11 threading | * C/C++: libbu C++11 threading | ||
+ | ** implement bu_semaphore_acquire/bu_semaphore_release in C++11 | ||
+ | ** implement bu_parallel in C++11 | ||
+ | * C/C++: libbu container testing | ||
+ | ** Write program comparing performance of bu_list vs c++ lists | ||
+ | ** Write program comparing performance of bu_list stacks vs c++ queues | ||
+ | ** Write program comparing performance of bu_hash vs c++ map | ||
+ | ** Write program comparing performance of bn_randmt vs c++ random | ||
* C/C++: primitive unit tests (ProcDBs) | * C/C++: primitive unit tests (ProcDBs) | ||
− | ** arb8/arb7/arb6/arb5/arb4 | + | ** arb8/arb7/arb6/arb5/arb4, arbn, ars, datum, dsp, ebm, ehy, ell/sph, epa, eto, extrude, half, hrt, hyp, metaball, pipe, pnts, revolve, rhc, rpc, sketch, submodel, superell, tgc/rec, tor, vol |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
** (intentionally leaving out bot, brep, bspline, cline, grip, joint, nmg, part, poly) | ** (intentionally leaving out bot, brep, bspline, cline, grip, joint, nmg, part, poly) | ||
* Docbook/XML: primitive guide | * Docbook/XML: primitive guide | ||
+ | ** arb8/arb7/arb6/arb5/arb4, arbn, ars, datum, dsp, ebm, ehy, ell/sph, epa, eto, extrude, half, hrt, hyp, metaball, pipe, pnts, revolve, rhc, rpc, sketch, submodel, superell, tgc/rec, tor, vol | ||
+ | ** also: bot, brep, nmg | ||
+ | ** (intentionally leaving out bspline, cline, grip, joint, part, poly) | ||
* Qt/C++: New visualization GUI | * Qt/C++: New visualization GUI | ||
− | * C: point | + | * Qt/C++: geometry viewer |
+ | ** [https://github.com/asadpiz/brlcad-viewer BRL-CAD Viewer]: (Task 1) Open a simple GLFW window from the source | ||
+ | ** [https://github.com/asadpiz/brlcad-viewer BRL-CAD Viewer]: (Task 2) Write a program that opens geometry, executes db_walk_tree(), and gets a bounding box. | ||
+ | ** [https://github.com/asadpiz/brlcad-viewer BRL-CAD Viewer]: (Task 3) Print out the bounding box center point into the GUI | ||
+ | ** [https://github.com/asadpiz/brlcad-viewer BRL-CAD Viewer]: (Task 4) Display wireframes, regions on to the window. | ||
+ | * Qt/C++: openscad-style asc-to-display GUI | ||
+ | ** (Task 1) Open a simple Qt window from source | ||
+ | ** (Task 2) Write a program that opens .asc, displays in Qt text window | ||
+ | ** (Task 3) Write a simple program that converts .asc to .g in memory | ||
+ | ** (Task 4) Write a simple program that renders an in-memory .g to .pix | ||
+ | ** (Task 5) Write a program that displays a .pix image into a Qt window | ||
+ | ** (Task 6) Tie it all together: Qt button that converts, renders, and displays. | ||
* C/C++: appleseed integration | * C/C++: appleseed integration | ||
+ | ** Create and render a box in Appleseed and BRL-CAD | ||
+ | ** Write a small program in BRL-CAD that renders an image | ||
+ | ** Write a small program in Appleseed that renders an image | ||
+ | ** Implement an Appleseed hello world plugin | ||
+ | ** Integrate BRL-CAD rendering into Appleseed plugin | ||
* C: Boolean weaving unit tests | * C: Boolean weaving unit tests | ||
− | * | + | ** implement a regression test for rt_boolweave() |
− | * C: | + | ** implement a regression test for rt_boolfinal() |
+ | * C: Annotation object callbacks | ||
+ | * C: point cloud object callbacks | ||
+ | ** Implement the prep() and shot() functions for point clouds | ||
+ | ** Implement a function that reads point data from files | ||
+ | ** Integrate function reading points from files into libged | ||
* C: libged plugin refactoring | * C: libged plugin refactoring | ||
− | |||
− | |||
− | |||
* C/C++: stand-alone geometry viewer GUI | * C/C++: stand-alone geometry viewer GUI | ||
* C: Centroid/Volume/Surf_area | * C: Centroid/Volume/Surf_area | ||
− | ** | + | * HTML/CSS: website integration |
− | * | + | * Docs: geometry URI specification |
− | ** | + | * Docbook/XML: datum docs |
− | ** | + | |
+ | * Disconsidered... | ||
+ | ** C: Layer object callbacks | ||
+ | ** C: image object callbacks | ||
==Independent task ideas== | ==Independent task ideas== |
Revision as of 02:27, 26 November 2017
Contents
Dashboard for Ideas for the Google Code In 2017
Roles
- Coder (C/C++)
- Web Coder (Javascript/HTML)
- Modeler
- Writer
Beginner tasks
These require absolutely no prior experience or knowledge.
- Anyone: Download and run BRL-CAD (via VM), submit screenshot
- Anyone: Communications checklist: chat, mailing list, survey
- Coder: Compile BRL-CAD from source, submit screenshot
- Web Coder: Clone BRL-CAD website or OGV, submit screenshot
- Modeler: Model a cup, submit model
- Writer: Blog about any task, submit link
- Annotate a primitive: Submit screenshot
Task chain ideas
These would take us more than 2 hours, to be broken up into multiple tasks.
- C: OpenCL pipelining
- C: Boolean evaluation debugging
- Javascript: OGV
- ThreeJS/Verb: OGV Nurbs
- C/C++: libbu C++11 threading
- implement bu_semaphore_acquire/bu_semaphore_release in C++11
- implement bu_parallel in C++11
- C/C++: libbu container testing
- Write program comparing performance of bu_list vs c++ lists
- Write program comparing performance of bu_list stacks vs c++ queues
- Write program comparing performance of bu_hash vs c++ map
- Write program comparing performance of bn_randmt vs c++ random
- C/C++: primitive unit tests (ProcDBs)
- arb8/arb7/arb6/arb5/arb4, arbn, ars, datum, dsp, ebm, ehy, ell/sph, epa, eto, extrude, half, hrt, hyp, metaball, pipe, pnts, revolve, rhc, rpc, sketch, submodel, superell, tgc/rec, tor, vol
- (intentionally leaving out bot, brep, bspline, cline, grip, joint, nmg, part, poly)
- Docbook/XML: primitive guide
- arb8/arb7/arb6/arb5/arb4, arbn, ars, datum, dsp, ebm, ehy, ell/sph, epa, eto, extrude, half, hrt, hyp, metaball, pipe, pnts, revolve, rhc, rpc, sketch, submodel, superell, tgc/rec, tor, vol
- also: bot, brep, nmg
- (intentionally leaving out bspline, cline, grip, joint, part, poly)
- Qt/C++: New visualization GUI
- Qt/C++: geometry viewer
- BRL-CAD Viewer: (Task 1) Open a simple GLFW window from the source
- BRL-CAD Viewer: (Task 2) Write a program that opens geometry, executes db_walk_tree(), and gets a bounding box.
- BRL-CAD Viewer: (Task 3) Print out the bounding box center point into the GUI
- BRL-CAD Viewer: (Task 4) Display wireframes, regions on to the window.
- Qt/C++: openscad-style asc-to-display GUI
- (Task 1) Open a simple Qt window from source
- (Task 2) Write a program that opens .asc, displays in Qt text window
- (Task 3) Write a simple program that converts .asc to .g in memory
- (Task 4) Write a simple program that renders an in-memory .g to .pix
- (Task 5) Write a program that displays a .pix image into a Qt window
- (Task 6) Tie it all together: Qt button that converts, renders, and displays.
- C/C++: appleseed integration
- Create and render a box in Appleseed and BRL-CAD
- Write a small program in BRL-CAD that renders an image
- Write a small program in Appleseed that renders an image
- Implement an Appleseed hello world plugin
- Integrate BRL-CAD rendering into Appleseed plugin
- C: Boolean weaving unit tests
- implement a regression test for rt_boolweave()
- implement a regression test for rt_boolfinal()
- C: Annotation object callbacks
- C: point cloud object callbacks
- Implement the prep() and shot() functions for point clouds
- Implement a function that reads point data from files
- Integrate function reading points from files into libged
- C: libged plugin refactoring
- C/C++: stand-alone geometry viewer GUI
- C: Centroid/Volume/Surf_area
- HTML/CSS: website integration
- Docs: geometry URI specification
- Docbook/XML: datum docs
- Disconsidered...
- C: Layer object callbacks
- C: image object callbacks
Independent task ideas
These should take one of us 2-4 hours of effort to complete.
- Model and render the number "404"
- Model and render the word "BRL-CAD"
- Model and render the BRL-CAD logo