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 ==
  
* Enrolled in PostGraduate Program at Indian Institute of Management, Bangalore.
+
22 year old undergraduate student of architecture at Indian Institute of Technology, Kharagpur.
* Bachelors in Architecture at Indian Institute of Technology, Kharagpur.
 
 
 
== GSoC 2009 Log ==
 
 
 
=== 2009.06.20 ===
 
* code added to cc command to add an empty rt_constraint object to the database
 
 
 
=== 2009.06.18 ===
 
* cc (create constraint) framework added
 
 
 
=== 2009.06.17 ===
 
* lscon command framework added to libged
 
 
 
=== till 2009.06.17 ===
 
* Expression grammar defined
 
  
 
== 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 throughout
+
# 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 (~230 hours)'''
+
'''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 (~75 hours)'''
+
'''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 entire framework (~90 hours)'''
+
'''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)'''
  
This involves using the libpc framework for doing the rt_prep checks for each of the geometry primitives as well as the testing of the entire framework spread throughout the development process. 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.) The estimate for testing is approximately at the rate of 1 day of work per week.
+
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 and Status===
+
===Schedule===
  
 
'''Pre GSoC'''
 
'''Pre GSoC'''
Line 79: Line 69:
  
 
* libged commands
 
* libged commands
** create constraint (ongoing)
+
** create constraint
 
** edit constraint
 
** edit constraint
** display constraint (ongoing)
+
** solve
 +
** display constraint
 +
** select solution
 
* Finalizing Constraint grammar
 
* Finalizing Constraint grammar
* Test of the creation and display
+
* Initiate solver work
  
 
'''July 6 - August 10 (~ 5 weeks)'''
 
'''July 6 - August 10 (~ 5 weeks)'''
 
* libged commands
 
** solve
 
** select solution
 
 
* Complete Solver work
 
* Complete Solver work
* Test the solve/ select solution use-cases
+
* Work on Implicit Constraints
* Further overall testing **
+
* Test Explicit Constraints / Final Test
* librt rt_prep checks transition to libpc**
 
 
 
** if ahead of schedule at mid-term analysis
 
  
 
'''Post GSoC'''
 
'''Post GSoC'''

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)