[Contents] [TitleIndex] [WordIndex

Rendering Scilab Graphism in VTK


Student time line

See here for the Google Summer of Code planning.

Motivation and Overview

As noted in the abstract, the current implementation of graphics rendering in Scilab suffers from the following disadvantages:

To overcome these problems, it is planned to rewrite graphics/rendering modules of Scilab using VTK [c]. VTK offers a many advantages.

To accomplish this, the following two approaches are proposed:

  1. Rewrite the graphics/rendering modules using Java bindings for VTK. This can be easily integrated into the Java/Swing GUI. Since the actual rendering is done by the underlying C++ code, performace is expected to be good.
  2. Rewrite the graphics/rendering modules using Qt/VTK. This gets rid of Java altogether and has the best possible performance. However, the GUI will need to be done in Qt.

Which of the above two approaches will be used has to be evaluated further using these criteria:

Design Details

Graphics rendering in Scilab is reasonably well separated from the rest of the code (details in [a]). The code for graphics resides in the 'graphics' and 'renderer' modules. Since it is difficult to complete both 2D and 3D rendering within the GSoC timeframe, only 2D plotting is planned to be implemented. We will have to:

  1. Replace JOGL specific code (e.g. DrawableObjectJOGL, DrawableClippedObjectJOGL and DrawableSegsJOGL etc.) in 'graphics' with their VTK counterparts (DrawableObjectVTK, DrawableClippedObjectVTK and DrawableSegsVTK etc.).
  2. If we use approach [1] we will delegate actual rendering to Java/VTK through the JavaMapper classes. JavaMapper classes will be modified to call upon VTK to do the rendering [b].

  3. If we use approach [2] the C++ code (DrawableObjectVTK, DrawableClippedObjectVTK and DrawableSegsVTK etc.) can directly call VTK to do the rendering.
  4. Replace the entire code in the 'renderer' module with VTK specific routines. Since only 2D rendering is planned, AA sub-modules will be left out. Proposed Timeline

April 21, 2009 to May 22, 2009: The community bonding time will be used not only to bond with the community but also to evaluate the proposed approaches and decide upon which one is best. Familiarize myself with Scilab source code and build system. (~ 4 Weeks)

May 23, 2009 to July 5, 2009: Begin coding. Plan to finish the Scilab <-> VTK interaction code in 'graphics' module. (~ 6 Weeks)

July 6, 2009 to July 13, 2009: Bugfixing, testing and mid-term submission. (~ 1 Week)

July 14 to August 10: Code the part or whole of 2D rendering code in 'renderer' module. (~ 4 Weeks)

August 11 to August 24: Bugfixing, testing and final submission. (~ 2 Weeks)

[a] Handle Rendering - Scilab Wiki, https://scilab.gitlab.io/legacy_wiki/Handle_Rendering

[b] C++ <-> Java Interaction, https://scilab.gitlab.io/legacy_wiki/C%2B%2B_%3C-%3E_Java_interaction

[c] VTK - The Visualization Toolkit, http://www.vtk.org/

Describe yourself

I'm currently pursuing a masters degree in Geodetic Science (with a focus on Computer Vision) from The Ohio State University at Columbus, Ohio, USA. As a high school kid, I twice qualified for the Indian National Informatics Olympiad training camps which intoduced me to fascinating world of computer science and software development. My current research interests are multi-view geometry and 3D reconstruction.

Why are you interested in this subject?

I am passionate about open-source and have been a linux user for well over 7 years and have wanted to contribute to open-source since a long time. I use open-source technologies such as Qt and VTK for my research work. However, I had to use Matlab for much of my coursework and sorely missed an open-source alternative for scientific computing. Obvioulsy, Scilab comes to mind. Since I already have been recently working with VTK to create 3D visualization for my research, I decided to contribute to this particular aspect of Scilab.

Do you have any experience in C/C++, Fortran or Java?

I have know C++ and Java for more nearly 8 years. I use C++ to implement various computer vision algorithms for my course work and research at school. I have used Java in the past to develop GUI application for a geo-spatial data processing company based in India.

Did you study advanced maths / physics / biology / others?

I'm fairly well-versed with advanced mathematics, especially linear algebra and calculus.

Do you plan to maintain your development at the end of the Google Summer of Code?

Given my passion for open-source I plan to contribute to Scilab even after GSoC and maintain the code in the future. I would like to complete the implementation to include 3D graphics in the future.

What is your email address?

I can be reached at vinod.khare@gmail.com

2022-09-08 09:27