Editing User:Homovulgaris
From BRL-CAD
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 4: | Line 4: | ||
== Dawn Thomas == | == Dawn Thomas == | ||
− | + | 22 year old undergraduate student of architecture at Indian Institute of Technology, Kharagpur. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== GSoc 2009 Proposal Draft == | == GSoc 2009 Proposal Draft == | ||
Line 36: | Line 21: | ||
#Integration with libged - framework for calls into librt and libpc for solution, storage and updation. | #Integration with libged - framework for calls into librt and libpc for solution, storage and updation. | ||
# Writing a robust modular constraint solver | # Writing a robust modular constraint solver | ||
− | #Testing of the framework | + | # Writing implicit constraints for the primitives : Using libpc for the rt_prep checks. |
+ | # Final Test: Testing explicit constraints which would involve checking the list of commands to be implemented by the proposal thereby resulting in a complete test of the framework. | ||
===Proposal=== | ===Proposal=== | ||
Line 55: | Line 41: | ||
For instance ( " tangential(ell1, sph1)" being parsed into the correct constraint objects containing evaluating functions in terms of the variables) | For instance ( " tangential(ell1, sph1)" being parsed into the correct constraint objects containing evaluating functions in terms of the variables) | ||
− | '''2. Integration with libged/librt (~ | + | '''2. Integration with libged/librt (~140 hours)''' |
The purpose is to create adequate commands for the creation and modification of constraint objects and their "solving". libged would interface with the user and the already existing code and its modification will provide database I/O. This work can be done along with the development of the constraint grammar work mentioned above since both are in a way interdepedent. | The purpose is to create adequate commands for the creation and modification of constraint objects and their "solving". libged would interface with the user and the already existing code and its modification will provide database I/O. This work can be done along with the development of the constraint grammar work mentioned above since both are in a way interdepedent. | ||
− | '''3. Solution system (~ | + | '''3. Solution system (~85 hours)''' |
Undoubtedly the most important aspect of the constraint system. Two approaches can be taken for modularity of the solver from other parts of libpc. One way would be to use a server-client model possibly using inter-process communication or a simple file based transfer of data between the two. Alternatively it could be a part of the libpc library itself requiring a particular format of the constraint satisfaction problem. This could be passed on to the solver as string data or as a data structure. Of the various approaches towards solving geometrical constraints, I am slightly in favour of graph-constructive methods over the others (see #1) But eventually I think something like a Locus Intersection method (#4) which is a hybrid between the computational and search approaches would be ideal. One of the reasons I feel that the solver should be completely independent of the constraint satisfaction problem definition or representation is the fact that it is a field rapidly undergoing changes in terms of new approaches. The priority of course is for the creation of a basic overall framework that is user accessible rather than an extremely fine tuned solver. Depending on the rapidity with which libged progresses, more time can be alloted for this job over the other heads mentioned. | Undoubtedly the most important aspect of the constraint system. Two approaches can be taken for modularity of the solver from other parts of libpc. One way would be to use a server-client model possibly using inter-process communication or a simple file based transfer of data between the two. Alternatively it could be a part of the libpc library itself requiring a particular format of the constraint satisfaction problem. This could be passed on to the solver as string data or as a data structure. Of the various approaches towards solving geometrical constraints, I am slightly in favour of graph-constructive methods over the others (see #1) But eventually I think something like a Locus Intersection method (#4) which is a hybrid between the computational and search approaches would be ideal. One of the reasons I feel that the solver should be completely independent of the constraint satisfaction problem definition or representation is the fact that it is a field rapidly undergoing changes in terms of new approaches. The priority of course is for the creation of a basic overall framework that is user accessible rather than an extremely fine tuned solver. Depending on the rapidity with which libged progresses, more time can be alloted for this job over the other heads mentioned. | ||
− | '''4. Test Use-cases for the | + | '''4. Test Use-cases for Implicit Constraints (~100 hours)''' |
+ | |||
+ | This involves using the libpc framework for doing the rt_prep checks for each of the geometry primitives. This work can be pursued independent of the work on the solution system , using the existing generic solver. Also in terms of implementation this would be a good start to finalize the common type of constraints grammar wise ( parallelism, perpendicularity etc.) | ||
+ | |||
+ | '''5. Final Test: Testing the Overall Framework (~60 hours)''' | ||
− | + | With the wrapping up of Math Virtual Machine and grammar, this work is effectively the test of the entire framework and would involve purely construction of test cases. Since this is an iterative process involving incremental tests of each aspect finally culminating in the entire framework test at the end, the estimate of time is rather rough. | |
− | ===Schedule | + | ===Schedule=== |
'''Pre GSoC''' | '''Pre GSoC''' | ||
Line 79: | Line 69: | ||
* libged commands | * libged commands | ||
− | ** create constraint | + | ** create constraint |
** edit constraint | ** edit constraint | ||
− | ** display constraint | + | ** solve |
+ | ** display constraint | ||
+ | ** select solution | ||
* Finalizing Constraint grammar | * Finalizing Constraint grammar | ||
− | * | + | * Initiate solver work |
'''July 6 - August 10 (~ 5 weeks)''' | '''July 6 - August 10 (~ 5 weeks)''' | ||
− | |||
− | |||
− | |||
− | |||
* Complete Solver work | * Complete Solver work | ||
− | * Test | + | * Work on Implicit Constraints |
− | + | * Test Explicit Constraints / Final Test | |
− | |||
− | |||
− | |||
'''Post GSoC''' | '''Post GSoC''' |