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.
- 6 June
- Major part of workday so far has been on understanding libged/typein.c that deals with the in command. I feel like we can incorporate a script keyword in this file itself. Also, waiting to hear from the mentors about what they think of this idea vs incorporating a new primitive.
- 7 June
- I've modified scripts in proc-db to better understand how to interact with libwdb's API.
- I'm also trying to figure out where the logic for the main 'script' parser would go. I feel like putting it inside libwdb would be a logical choice.
- 8 June
- SVN has been acting weird today for me, despite multiple attempts (20+), I've been unable to checkout the repo. It seems to be an issue with my university proxy server but I'm not sure yet. I've been messing around a lot and have broken something which I can't seem to fix and hence am attempting to pull the latest build.
- I've been scanning through libged and mged to figure out how file upload works in mged. That'll be the first challenge in working with the 'script' parser.
- Discussion with Sean today is going-on. To be updated
- 5 June