User:Schindler97/GSoC18/Log
From BRL-CAD
Development Logs
Community Bonding Period
Progress through the community bonding period
- Week 1
- Reviewed and understood Kanzure's implementation of python bindings : https://github.com/kanzure/python-brlcad
- Read about ctypesgen and understood it's short-comings and advantages
- Went through chapters 1-3 of mged tutorials
- Week 2
- Reviewed and understood nmz787's implementation of python bindings : https://github.com/nmz787/python-brlcad-tcl
- Delved into understanding how tcl scripts are parsed by mged
- Implemented the ell primitive following nmz's methodology : https://github.com/Killthebug/python-brlcad-tcl/commit/a0973c5b42615e0ef53ba9c876ee14992e1df937
- Week3
- Had a discussion with Sean about introducing procedural geometry
- Went through OpenSCAD's workflow and tried to understand how they work with procedural geometry
- Went through chapters 4-6 of mged tutorials
Coding Period
Progress through the coding period. Track changes in the current working repo : https://github.com/Killthebug/python-brlcad-tcl/commits/master
- Week 1
- 14 May Introduced bindings and examples for primitives : arb4, arb5, arb7
- 15 May Introduced bindings and examples for primitives : tec, trc
- 16 May Introduced bindings and examples for primitives : rhc, rec
- 17 May Introduced bindings and examples for primitives : ehy, epa
- 18 May
- Introduced primtive : ell1
- Going through libged to figure out how the 'in' command works. Edit : Found it, thanks to Cezar :)
- Reading through the code of the ell primitive in librt to understand how primitives behave at a ground level. There's a lot going on, might take me a while to figure everything out.
- Sean recommended going through the various READMEs scattered across the code, will start on those too and log progress here.
- 19 May
- Introduced the primitive : part
- Trying to understand how certain parts of the pipe() function have been handled by nmz's code.
- 20 May
- Introduced bindings and example for : tor, eto & grip
- Going through to libged/typce.in to understand how it works? Seems good so far.
- Week 2
- 21 May
- Introduced bindings and example for the primitive : half
- I've understood how typec.in functions
- We're trying to figure out the ??? in : tcl -> .g . src/mged/setup.c (converts tcl to c commands) -> ??? -> include/rt/db_io.h -> .g
- I learnt about opendb, which calls the f_opendb() function defined in src/mged/mged.c. to open and create new databases, this will be handy in our pipeline.
- 22 May
- Fixed primtive examples for arbx and sph
- Did mged tutorials 6-8
- Went through libged to understand how it work
- 23 May :
- Went through Hacking-BRL-CAD, I really wish I had found this document way earlier!
- Couldn't get a lot of work done because of a research paper deadline I'm working on.
- 24 May :
- I've started documenting the project so far. The major subtopics I'm documenting are :
- What is python brlcad?
- How to setup python brlcad?
- How do the different parts of the code work?
- Creating geometry using existing primtives
- Introducing and experimenting with primitives
- Further Work
- I've started documenting the project so far. The major subtopics I'm documenting are :
- 25 May
- Continuing work on the documentation.
- I'm still not able to build a page using doxygen, I've dropped a message on Zulip and hope to get it resolved soon :)
- 26-27 May
- Took the weekend off to travel to the beach nearby, Last two weeks have been really hectic with GSoC work and my research paper deadline nearing up on the first of June!
- 28 May - 4th June
- No major GSoC work was done during this period because of an external submission deadline at a research conference.
- 21 May
- Week 3
- 5 June
- Resumed GSoC work. Had a conversation with @Sean and updated him regarding the lag in project.
- Revised through libwdb and some sample scripts in src/shapes and src/proc-db to get a hang on how .g files can be made using libwdb.
- The plan now is to introduce a new primitive name "script" in librt. As a part of creating it, I'm going to have to define the syntax of the scripts that the primitive will parse.
- 5 June