Home-Shift and 200 minute build

•July 9, 2008 • Leave a Comment

Finally was able to travel home by changing the 2200 km train journey into a flight-bus journey ( thanks to the floods) Reached home to realise that laptop hard disk is fried.

Using the rustic ( but my dearest first) Pentium III system with a dialup is not exactly the smoothest way to work. Consider the 200 minute build for example 😛


I havent written much about it, but successfully finished writing a binary constraint solver with backtracking around 30th. Adding various consitency propagation techniques shouldnt be too difficult.

But more importantly, need to finish the parser (EBNF) using boost’s spirit ( literally 🙂 )

Also cleaning up the earlier part of the work , freezing pc_pc_set and removing earlier structures such as pc_parameter and attribute io functions.

Mafm’s gui

•June 27, 2008 • Leave a Comment

BRL-CADs present user interface mged while very efficient is not much of a user interface 🙂

MAFM is gonna write an awesome GUI using ogre, ois, mocha, rbgui. Here are the ones i snatched from my screen

For original information and better screenshots please visit



Of Boost and Graphs

•June 27, 2008 • Leave a Comment

Well since the last landmark I have been working mostly on integrating boost’s existing libraries to support parametrics mostly constrained_value and BGL.

It has been quite interesting but I dislike not having a hypergraph representation. Immediate plan is for testing out binary constraint solution system and use it to check various implicit constraint checks.

Today finished writing graphviz output system : So you can see graphs 🙂 < Variables and Constraints as Vertices and Edges respectively >

solver_test|dot -Tps -o x.ps

Kinda like this.. Ofcourse this has just 4 variables 😛 It would look nice with a 100 .. Maybe tomorrow..Hmm for that I need to finish the method of adding variables and constraints.

Note to self: need to reach home 🙂

Baby-steps without Intraweb

•June 12, 2008 • Leave a Comment

Last week was not exactly a disaster but compared to my normal schedule of life and work, well lets say it was different.

Starting from June 1st I was concentrating mostly on how to write data onto the .g database system. First solution i ran through was to use attribute system for solving parameter names, values, domains etc. and defining a new non-geometric object to define constraints among these parameters.

Work-summary ( June 1 – 12) :

mostly exploring the possibility of storage using attribute system as well as with the introduction of a non-geometric object into the .g database. Skeleton export system working. Need to flesh it with rapid work by defining actual object architecture.

Right now updating the design document at the wiki to reflect recent discussions.

Need to write constraint_import and g2asc functionality

John would be back tomorrow. Hopefully my 40 hour work schedule can get more systematic starting today.

Moral: talk at irc before doing negative work 🙂

Immediate work ahead:

Write stack onto the database as a part of constraint object to represent each of the individual relationship : Dependent

Write *more* of pc_constraint_import function : Dependent

Implement constraint network using boost : Independent

Write a short pdf/ps on constraint solving and the mathematical terminology behind it, link to wiki

Background work:

Study implementation of relation solution systems ( equalities and inequalities)

Milestone status:

Milestone 1: Storage functionality complete (read / write to the .g db and .con): 2 weeks (May 26 – June 9) : Partial

Milestone 2: Object Architecture / Memory Architecture Implementation: 3 weeks (June 9 – June 30) : Partial

status: mged is not running due to some tcltk issue. I never liked tcl 🙂

libpg: Parametric and Constraint library

•May 31, 2008 • Leave a Comment

GSOC 2008 accepted proposal under BRL-CAD

Mentored by John Anderson, I would be working on implementation of parametric and constraint functionality in BR-CAD system. The develoer document for the same is available at


I intend this blog mainly to be a log of my GSoC work. I would also be writing about Parametrics and Constraints in general as well as other computer aided design applications particularly from the computation point of view.

The coding phase started on May 26th

I had earlier submitted a patch for implementing a new convention for representation of polynomials. It is basically the inversion of order of coefficients so that the first element in the array of coefficients correspond to the zeroth exponent and so on. ( cf[0] is the coefficient of x^0 ) I updated the same transfering most of the code from roots.c inside librt to poly.c inside libbn. I also modified all the bn_poly_* functions which assumes a particular order of coefficients so as to reflect the new convention.

For testing the same I used Gnu Science Library Polynomial Sovling as a baseline and compared the results. The difference between the two results are compared and plotted using a gnuplot. The patch as well as bash script is available at Patch 1947026. Two plots showing the difference between GSL and BRL-CAD solver ( different cases)

Work scheduled for this weekend are

1. DBIO : Database input output code using librt

2. Equation Storage: Storage mechanism for the parametric or constraint equations ( Version 0.1)

3. Class definitions for all the main objects involved ( Parameter, Constraint, ConstraintNetwork )

Plot of Difference between Old BRL-CAD Solver an GSLPlot of difference between New Solver and GSL