Mr. Rama Aravind Vorray MSc
Senior Software Engineer

Home Projects Publications Profile Contact

My Software Projects

Esko Cloud Platform Esko Mobile Viewers Esko Studio Software Triangle Mesh Library Reverse Engineering Talapatram 4D Image Interpolator HeartBeAT FSLView VICON Volume Visualization Virtual Hockey Distributed Hockey Ray Tracer Flight Simulator Terrain Visualization

Esko Cloud Software Platform © Esko Software bvba, Belgium [TOP]

Type: A comprehensive set of traditional services, for print and packaing design industry, delivered over web

Further info: Esko SaaS Platform.


Esko Mobile Viewers © Esko Software bvba, Belgium [TOP]

Type: iOS and Android viewers simulating Esko print effects in 3D.

Further info: Esko Mobile Viewers.


Esko Studio Software Suite © Esko Software bvba, Belgium [TOP]

Type: A set of print simulation, 3D geometry processing and rendering software for print and packaging design industry.

Further info: Studio 3D Packaging Software, Esko.


VeroMesh Triangle Mesh Library © Vero Software Ltd. [TOP]

Type: Library for processing and editing of triangle meshes

Product used in: VISI, Vero Software Ltd.

Developed using: C++, C, STL

My involvement: Developed from scratch, Designed the data structure, Managing the whole project, Plan developments to the library as per requirements and target markets

Platform: Developed on Windows but intended to be Cross-platform

Features: Mesh decimation, mesh abnormality fixing*, mesh refinement, mesh offset, mesh cutting, feature extraction, curvature analysis (gauss and mean), mesh editing (cut/copy/delete parts of mesh), spatial partitioning, quick query of partitioned cells, 1-2-3 tree spatial grid parsing, mesh boundary construction, Hybrid Winged-Edge data structure, import of STL/ZPR file formats, export to STL/PLY file formats

* Abnormality fixing includes triangle overlap detection/deletion, triangle intersection detection/deletion, manifold connectivity fixing, non-manifold triangle detection/deletion, degenerate triangle detection/deletion


Details: This is a propreitery library of Vero software to perform various types of operations on triangle meshes. This is a spin out of the previous reverse engineering project with Vero Software under collaboration with UCL.

This library can perform operations as mentioned above and various other operations at functional level. Other functions (contributed by other teams in the company but managed by me) include hole filling, tangential mesh boundary extension, sub-divisional spatial partitioning, and mesh thickness calculation.

Reverse Engineering Triangle Meshes © Vero Software Ltd. [TOP]

Type: Research Project

Theme: The project was to develop the background required to reverse engineer triangle meshes for it to become an integral part of Vero's CAD product, VISI.

Developed for: Vero Software Ltd. and Department of Computer Science, University College London

Developed using: C++, OpenGL, STL, MFC

Platform: Cross-platform

Theories used: Discrete Differential Geometry (Curvature measures), Winged-Edge data structure, Feature segmentation

Publication Link1: CAD & A 2008

Publication Link2: UCL Discovery


Details: We used Discrete Differential Geometry in analysing shape characteristics of mesh at each edge and vertex and used it in segmenting mesh into various regions and extract 2D and 3D features. 2D features included, automatic generation of arcs, line-segments and circles for respective mesh features and 3D features included, grouping of facets together that represent a free-form feature. Spline patches can then be fitted to these free-form features.

In effect this classifies a triangle mesh into sets of 2D features and free-form 3D shapes. 2D features (viz., two connected circles) can be later used to build analytical shapes (eg., a cylinder).

This research project was very much successfull and a publication has been achieved on this work.

A patent has been filed on the concept of "Reverse Engineering Polygonal Meshes Using Discrete Differential Geometry", by Vero Plc., with rights invested over Vero Plc., but it was later kept on stand-by due to economic constraints.

Talapatram - Indian Languages Editor and Keyboard Layouts Software [TOP]

Type: Personal open-source project

Developed using: C++, STL, MFC, Unicode Support

Platform: Windows

Requirements: Unicode Fonts, Supplemental Language Support.

URL: Talapatram website, Google Code pages


Details: Talapatram is a software application for creating content in 11 of the Indian Languages. It is a text editor with provision for on-screen keyboard layouts for all 11 indian Languages. Keyboard layouts are generated dynamically and conform as per the layouts defined by ISO for Indic Languages. Languages supported are Bengali, English, Farsi, Gujarati, Hindi, Kannada, Malayalam, Marathi, Punjabi, Tamil, Telugu and Urdu. Typed text can be saved in simple text files with UTF-8 encoding which can be copied to and used in other applications. Find full information about this tool

You TYPE DIRECTLY in the language you wanted. It is not a transliterator where you type in English for the software to translate that english text into your language. This type of transliterating is not a natural way of entering text, in any language. Using Talapatram you can DIRECTLY type in any of the languages mentioned above. It is a Virtual Keyboard for Indian Languages. Know More.

4D B-Spline Image Interpolator [TOP]

Type: Supplement to HeartBeAT

Developed using: C++, STL

Platform: Cross-platform

Theory used: B-Spline interpolation of temporal 3D data

Details: This was an add-on work for HeartBeAT. This is a small command line based tool which takes in 4D image data (3D image blocks in time) and interpolates them to add in extra detail. For example, if an ultrasound scan of heart of a patient was taken for 10 seconds and a second scan for the same patient was taken for 8 seconds on a later date, it is clinically impractical to perform comparative analysis. Either the 10 seconds data has to be clipped in which case data is lost or the 8 second data has to be extrapolated for 10 seconds, which this tool performed.

Implemented a fast B-Spline interpolation over data to add-in more detail. Results were sometimes blurred depending upon the time frame of original data but was practical enough to perform comparative analysis over data. Use was only related to HeartBeAT but the application was generic.

HeartBeAT - A Multi-Sequence Medical Image Viewer [TOP]

Type: Heart image analysis and visualization tool

Developed using: C++, OpenGL, STL, MFC, ITK, DCMTK, FreeImage, ZLib

Uses: Command/Observer Design Strategy, Singleton Design Strategy, Hardware Accelerated OpenGL Rendering

Developed for: Wolfson Medical Vision Laboratory, Oxford University

URL: Oxford Univ. pages

Publicatoin: EuroEcho9 2005

Additional: Loads data from Philips Sonos 7500 ultasound scanners


Details: HeartBeAT (Heart image analysis Best Available Tool) is a Medical Image Visualization and Analysis tool that I developed at Wolfson Medical Vision Laboratory, University of Oxford, Oxford.

This tool provides a very highly interactive inerfaces to visualize and compare multi-dimensional images. Its main purpose is to visualize and compare multi-dimensional multi-modality caridiac images. This tool is being used by researchers and students at Wolfson Medical Vision Laboratory.


© Wolfson Medical Vision Laboratory, University of Oxford, Oxford, UK.


Type: Brain image analysis and visualization tool

Developed using: C++, OpenGL, BOOST, STL, QT, QWT, ZLib

Developed for: FMRIB Centre, Oxford University

Platform: Cross-platform

URL: Oxford Univ. pages


Details: FSLView (FMRIB Software Library Viewer) is a brain image visualization and analysis tool that I was partially involved with. I developed some user interfaces for this tool in QT on Unixes and Windows. Boost, ZLib and Command/Observer design strategy is extensively used all over the tool. I worked on this tool only for couple of months as a starter project in my first ever professional job.

Click here for full information on this tool

VICON Volume Visualization [TOP]

Type: Vicon 3D volume capture simulation tool

Developed using: C++, OpenGL, STL, MFC

Uses: Intersection of cones for 3D volume, Vertex Buffers, Display Lists

Developed for: MSc Dissertation

URL: My academic projects

Additional: Built on specifications of M2, V, SV, LCam series VICON motion tracking cameras


Details: A Volume Visualization software tool for simulating volume being captured by VICON Motion Tracking cameras. Motion tracking cameras are used to track the gait of reflective markers in an environment. This can be for the purpose of games or for any other applications like motion of limbs in disabled people, etc.

This tool is a pre-installation tool which simulates the capture volume of VICON cameras so that optimal positions of cameras in an environment can be decided prior to physical installation. It provides a lot of easy to use interfaces for manipulating various parameters.

Significance of this tool is simulation of volume captured by a camera. I developed a new method of considering cameras so that any number of cameras can be simulated simultaneously and very efficiently. Go to Demo Page for full details about the program.

Distributed Virtual Hockey [TOP]

Type: LAN based multiplayer air hockey simulation game

Developed using: C++, OpenGL, STL, MFC, Managed C++, .Net Remoting

Uses: Server runs game simulation and client window passively renders objects as per simulation results, Physics simulation as used in Virtual Hockey along with networked game play among 2/4 players

Full report: View report

Download: Click here to download Server and Client Components as a zipped package file. Please read below for instructions on using it

distributed virtual hockey screen shot

Details: The PBM Air Hockey game has been extended as a LAN based distributed game. Used .NET Remoting Technology for distributed programming.

Either two or four players can play the game over LAN. Uses TCP and the distributed part is programmed in managed C++. View full report on implementation of the distributed part of the game.

Download the Server and Client Components as a zipped package file. Please read below for instructions of operating it.

After unzipping the file run Virtual Hockey Server.exe file. It activates the host system as a server. Then run Virtual Hockey Shared Simulation Server .NET.exe to activate the Physics Simulation on the server side. The EXE file Virtual Hockey Client .NET.exe is the client side executable file. When you run it you will have to give it the name of the Server Machine for it connect to that machine (PC).

In case if you run the client on the same PC where your server is running, the system name that you have to provide to client file when it asks is localhost . Then you have to select whether you want to play TWO player game or FOUR player game and then you have to select your side of play. Either side A or side B and if it is a four player game you have to select Team A or B and then Player 1 or 2.

Virtual Hockey [TOP]

Type: Air hockey simulation game

Developed using: C++, OpenGL, STL, MFC

Uses: Collision detection/response between puck/flippers/board, Force response simulation, Angular velocity, computer controlled flippers on one side, scoring, textures

Full report: View report

Download: Click here to download the Zip package


Details: It simulates physics phenomenon such as Friction, Air Drag, Angular and Directional Velocity in real-time. Robust Collision Detection and Collision Response routines based on Light Reflection formulae and geometry of objects have been implemented in this along with a bit of AI (computer controls flippers on one side).

It is a ful-featured game with scoring and winner results. You can view it in attractive wireframe model also as shown in the picture beside.

View full report on implementation of Physics Phenomenon. Click here to download the zipped package file.

Ray Tracing [TOP]

Type: Recursive ray tracer

Developed using: C++, OpenGL, STL, MFC

Uses: Ray tracing of spheres and planes (with procedural textures) with multiple light sources, Fish eye lens projection, Stereoscopic view generation

Speed: 5sec on a P4 HTT 3.2GHZ for objects shown in image to the right

Full report: View report

Download: Click here to download BMP images

ray tracing picture 1ray tracing picture 2ray tracing picture 3

Details: A Recursive Ray Tracer that renders primitive geometric shapes, spheres and planes. Also renders mathematically computed textures on walls. Renders the whole view in a spherical map. Displays images for stereoscopic vision. Displays left eye and right eye image side by side which can be used for stereoscopic vision.

View full report on implementation of ray tracing technique along with spherical mapping and stereoscopic methods. Click here to download the zipped package file and Click here to download the BMP images of Output.

Flight Simulator [TOP]

Developed using: C++, OpenGL, STL, MFC

Uses: Built on top of terrain visualization with flight simulation, pseudo shadow simulation, trees as billboards, bomb trajectory, building demolition

Details: A basic Flight Simulator which is an addendum for my Terrain Visualization program (see below). Simulates fog. Gives of effect of unlimited terrain with clouds and buildings. Includes the funtionality to fire bombs.

Download the zipped package file and try it out. You need to download these BMP and DEM files. Extract them into the folder where the EXE and other files are extracted from the other ZIP file.

Terrain Visualization [TOP]

Developed using: C++, OpenGL, STL

Uses: Terrain visualization using BMPs of terrain and corresponding Digital Elevation Maps (DEMs)

Details: A simple program to visualize a terrain. A few patches of terrain (BMP images) are attached together and overlaid over a mesh of triangle strips. The same program has been used to build the flight simulator (see above).

Download the zipped package file and try it out. You need to download these BMP and DEM files. Extract them into the folder where the EXE and other files are extracted from the other ZIP file.

© Rama Vorray
Pages last updated: 24 July 2017