User:Gurwinder Singh/GSoc15/proposal


POV-Ray Export and LinuxCNC StepConf improvement

Name: Gurwinder Singh Bains

E-mail Address:

IRC Username : Gurwinder


B.Tech final year student of Computer Science at Guru Nanak Dev Engineering College, Ludhiana, India. In my free time I love to draw portraits with graphite and charcoal. I'm a weightlifter under SAI( Sports Authority of India) from past two years.

Brief Summary

POV-Ray Export

Geometry conversion is a very important aspect for every CAD software as it is the basis for CAD data exchange between various CAD softwares. BRL-CAD has dozens of importer and exporters but this does not include support for g to POV-Ray file converter. So am going to write a POV-Ray exporter in this summer.

LinuxCNC StepConf improvements

LinuxCNC is open source software system for numerical control of machines such as milling machines, lathes, plasma cutters, routers, cutting machines, robots and hexapods. It can control up to 9 axes or joints of a CNC machine using G-code (RS-274NGC) as input. For configuring LinuxCNC with machines there is a GUI, StepConf written in Python. So am going to add missing features in it.


POV-Ray, is a ray tracing program which generates images from a text-based scene description, and is available for a variety of computer platforms. It was originally based on DKBTrace, written by David Kirk Buck and Aaron A. Collins for the Amiga computers. Many methods for generating the 3-D models are used, including a companion program "moray" for interactive modeling.

BRL-CAD has many exporters and importers which are used as a way of sharing data between BRL-CAD and other CAD softwares. They all are written well.

BRL-CAD require g to POV-Ray converter from last two three decades So I want to contribute in GSOC with BRL-CAD to write a code for g to POV-Ray converter.

Currently I have written code for sphere, truncated cone, cylender and torus. In all these, database is parsed and by using that parsed data using librt library it exports those primitives into POV-Ray file format.

So I start writing futher from arb and then move on to other primitives. POV-Ray has different way of representing its own primitives. So it require more focus on conversion.


27 April - 24 May (4 weeks) Community Bonding

My end semester exams starts from 29th April to 14th May, so I am busy in exams but after 14 May I will be free(except 3 days on which I have my final project vivas, whose dates are not fixed currently). I will be totally dedicated to gsoc after exams. I will be in Communication with my mentor, familiarize with POV-Ray and BRL-CAD, understand parsing of file and understand the exporting of different primitives.

25 May - 14 June (3 weeks)

Understand and Implementing the conversion of all “arb” primitives.

I will complete the conversion all the arb primitives.

15 June - 29 June (2 weeks)

I am familiar with some of the below primitives and will complete the

the conversion of “tgc”, “rcc”, “rec”, “tec” and “trc” primitives.

30 June - 3 July (Mid term Evaluation)

4 July - 18 July (2 weeks)

I am not very much familiar with below primitives but Its not hard to understand them and I will complete the proper conversions of “eto”, “ehy”, “epa” primitive.

19 July - 2 Aug (2 weeks)

I will complete the Implemention “rhc”, “rpc”, “part” primitives.

2 Aug - 14 Aug (2 weeks)

I put them in last because I found that it requires more time and knowledge to work on below primitives if I start work in the beginning of coding session. But after all the above work done I am sure that I will be able to implement the conversion of "ell", "ellg" and "ell 1" primitives.

15 August – 23 August (1 week) 'pencils down'

At the end I will do the Code cleanup, documentation and testing.

24 August – 28 August (4 days) Final Evaluation

Time Availability

I am not fully available in the month of April and May as I have my end semester exams from 27th April to 14th May. After May I will work for 40+ hours/week for gsoc( except 5 hours in the evening).

Why Me:-

As I contributed in BRL-CAD and submitted g-pov converter to it before starting of gsoc. So it make me feel proud if I wrote the remaining primitives conversion code for BRL-CAD.

Previous Related work:

I have submitted four primitive conversion for g-pov converter.


I choose BRL-CAD because since I started contributing to this community I have had the opportunity to learn so much about software and open-source development and also due to my special interest in computer graphics.


[1] http//

[2] http//