Projects

Mindfire has deep experience developing C++ desktop applications. We describe some of these C++ desktop project experiences below, and will be glad to share our expertise in detail with you.

  • Accounting software
  • Application for searching/viewing legal resources
  • Project management software
  • IE Batch Printing
  • Html2Xml
  • Customized Report Builder
  • DemoWrapper
  • Asset Accounting Software
  • Short Text Messaging
  • Tool to enhance Raster to Vector Image Conversion
  • SWF Wrap
  • Bayesian Matting
  • Colorization - Still
  • VideoMatting
  • Fogging/Defogging and Glow effects
  • Key-frame based Rotoscoping
  • Lazy Snapping
  • Interactive Digital Photomontage
  • Interactive Tone Mapping
  • Transaction Processing System
  • Reflection (image separation)
  • Poisson Matting
  • GPU Instant HD Project
  • Color Viewer
  • Video conferencing application for patient examination and assessment


Accounting software

Client:
Accounting, Payroll Software provider
Industry:
Construction / Finance
Technologies:
C++, MFC, QT SDK, PowerPlant

An integrated accounting software, estimating software and project management software for Macintosh and Windows computers. The software is used by re-modelers, construction contractors, architects, property owners, retailers, service businesses, professionals and small manufacturers.
We also did the multi-user version of same application which can be run as client-server software on a network. With the multi-user version, any number of computers can access the same file via a LAN (local area network) or dial-up connection, with either a Macintosh or Windows server, or any combination of Macs and Windows as clients. Our project was to port the Mac Powerplant application to Windows using MFC and QT SDK and add networking feature to both Mac and Windows versions.


Application for searching/viewing legal resources

Client:
A large publishing group with world wide presence
Industry:
Publishing
Technologies:
C++, MFC, Borland OWL, C-Tree DB

Project was to port a fairly large (100K+ loc) existing Borland's OWL application to MFC. The application is used for viewing, studying and searching statutes, case law materials, public records, and other legal resources either on local CD database or on online servers. The application had various dependencies over 3-rd party libraries either with or without source code. Writing the MFC version of those libraries was one of the biggest challenges.


Project management software

Client:
A Business process automation provider
Industry:
Manufacturing / Designing
Technologies:
C++, wxWidgets, Valentina DB, Mac OS API

A powerful and popular project management tool supporting various views (Network Diagram, Gantt chart, Linked Gantt, Chart, Table or Spreadsheet, Work Breakdown Structure (Outliner) and Reports) for viewing and entering data. All of these views are interactive, and all data changes are propagated so that a change in one view automatically updates all other views. It is also able to generate time and resource schedules and cost estimations which are totally controllable using numerous parameters. Development was done using wxWidgets, an open source, cross-platform but native library on both Mac/Win.


IE Batch Printing

Client:
Products Division, Mindfire
Industry:
Document management
Technologies:
C/C++, Win32 SDK (System Hooks etc), ActiveX

Due to security reasons, typical web browsers, say IE doesn't give silent printing options from inside script. This was an ActiveX control which enables batch printing without any user interactions. We had to use Win32 hook APIs to suppress the print dialog.


Html2Xml

Client:
Products Division, Mindfire
Industry:
Computer based training
Technologies:
C++, wxWindows

A batch utility for converting HTML files to pre-rendered XML files. We needed to display tables in Flash, but Flash had just basic support for HMTL 1.0 only.
This utility could be used to convert html files into custom XML consisting of
HTML rendering information; the conversion can be done either in batch or dynamically on request. The generated XML can then be parsed to display back the pre-rendered data.


Customized Report Builder

Client:
An accounting software provider
Industry:
Accounting
Technologies:
C++, MFC, Borland OWL

This Report Builder module was part of a fixed assets accounting software. The application was initially written in Borland using OWL and had to be re-written in MFC.


DemoWrapper

Client:
Mindfire Solutions
Industry:
Technology services
Technologies:
C++, Win32, MacOS, wxWidgets

An innovative and useful tool to quick-release demo versions of applications, specially games. No need to have access to the source code of original application, just give it the running executable file and set various demo parameters as No. of times application is allowed to run, Time allowed for each run or total run etc. It also has an integrated KeyGen utility which could be used to key-protect the application.


Asset Accounting Software

Client:
An accounting software provider
Industry:
Accounting
Technologies:
C++, MFC, Borland OWL

This application is meant for accountants/businesses/government organization. It was initially written in Borland using OWL and had to be re-written using wxWidgets and Visual Studio. Client started with a small stand-alone module (Custom Report Builder, done earlier) and then after satisfaction he went ahead with the whole application.


Short Text Messaging

Client:
GPS Solution Provider
Industry:
Logistic Software
Technologies:
C++, Borland Builder 10.0

Mindfire was involved in developing this light weight application that facilitates downloading and displaying of any incoming messages from server and allows the user to write, send and manage messages by an interactive Graphical User Interface consisting of an On-Screen Keypad (via touch screen) . This application is intended to be used by drivers while driving vehicles to have a mode of communication with the server and send messages back and forth.This application runs on a mini computer.


Tool to enhance Raster to Vector Image Conversion

Client:
A media and publishing software provider
Industry:
Graphics/Imaging
Technologies:
C++, wxWidgets

This was a small engine that runs on an image before it is converted from raster to vector. It uses image enhancement algorithms internally. The output of this engine becomes the input for the conversion software. The engine modifies the image data such that the output vector image has better edges.


SWF Wrap

Client:
A CBT software provider
Industry:
Training
Technologies:
C++, Mac Carbon API

A Mac Application that embedded a QuickTime control for playing flash (.swf) files in a controlled environment where the Control-Click context menu of the flash is not available to the user and operations like play/stop/pause and track positioning were controlled by the application it self. Control-Click was used to display application specific menu instead.


Bayesian Matting

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++, wxWidgets, Matlab

Bayesian matting algorithm (CVPR 2001) can pull alpha mattes of complex shapes from natural images by estimating opacity for every pixel of the foreground element. It can extract foreground from the Image as fine as strand of hair, the same concept can be extended to video by interpolating user-drawn keyframes using optical flow. (Proceedings of IEEE Computer Vision and Pattern Recognition (CVPR 2001), Vol. II, 264-271, December 2001).


Colorization - Still

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++, wxWidgets, Matlab

Colorization is a computer-assisted process of adding color to a monochrome image or movie. The process typically involves segmenting images into regions and tracking these regions across image sequences. Neither of these tasks can be performed reliably in practice. Approach used by us uses simple colorization method that requires neither precise image segmentation, nor accurate region.. This method is based on a simple premise, that neighboring pixels in space-time that have similar intensities should have similar colors


VideoMatting

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++, wxWidgets, Matlab, Optical Flow

Video matting is the process of pulling a high-quality alpha matte and foreground from a video sequence. The framework builds upon techniques in natural image matting, optical flow computation, and background estimation. User interaction is comprised of garbage matte specification if background estimation is needed, and hand-drawn key-frame segmentations into 'foreground', 'background' and 'unknown'. The segmentations, called tri-maps, are interpolated across the video volume using forward and backward optical flow. Competing flow estimates are combined based on information about where flow is likely to be accurate. A Bayesian matting technique uses the flowed tri-maps to yield high-quality mattes of moving foreground elements with complex boundaries filmed by a moving camera. (ACM Transactions on Graphics, Proceedings of ACM SIGGRAPH 2002).


Fogging/Defogging and Glow effects

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++, wxWidgets, Matlab

This application has two parts, one for removing fog effects using depth heuristic, from natural images with minimal user interaction. Second part was to add fog into the scene. It was also capable of adding glow effect to the light source as viewed in different weather conditions.


Key-frame based Rotoscoping

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++, wxWidgets, Matlab

The project was tracking contours in a video sequence, which combines computer vision with user interaction. In order to track contours in video, the user specifies curves in two or more frames; these curves are used as key-frames by a computer-vision-based tracking algorithm. The user may interactively refine the curves and then restart the tracking algorithm. Combining computer vision with user interaction allows the system to track any sequence with significantly less effort than interpolation-based systems, and with better reliability than "pure" computer vision systems. This tracking algorithm is cast as a space-time optimization problem that solves for time-varying curve shapes based on an input video sequence and user-specified constraints using NLLS.
(Key-frame-Based Tracking for Rotoscoping and Animation. ACM Transactions on Graphics).


Lazy Snapping

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++, wxWidgets, Matlab

Lazy snapping is a method of segmenting an image on foreground object boundaries. It has a very simple and minimal user input required and its results are better than the existing lasso tool in Photoshop..


Interactive Digital Photomontage

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++, wxWidgets, Matlab

It is an interactive, computer-assisted framework for combining parts of a set of photographs into a single composite picture. The framework makes use of two techniques primarily: graph-cut optimization, to choose good seams within the constituent images so that they can be combined as seamlessly as possible; and gradient-domain fusion, a process based on Poisson equations, to further reduce any remaining visible artifacts in the composite.


Interactive Tone Mapping

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++, wxWidgets, Matlab

We developed a C++ application having an interactive method that calculated the average luminosity and then rendered the scene with a tone mapping operator for the generation of photorealistic images.


Transaction Processing System

Client:
A software provider for Data Analysis
Industry:
Retail industry
Technologies:
C++, Linux Kdeveloper, High Avalibility System

The Project comprises a client-server system in which a web hosted server collects transaction data from cash registers located in multiple stores.  The system issues benefits to individual shoppers based on their purchases in member retail stores across the country. High availability and proximity based load balancing are unique Features of the server. It is designed to handle over 10,000 TPM.


Reflection (image separation)

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++

The software is able to separate two reflection components of a source image. The computer vision algorithm implemented  uses distribution of specular and diffuse points in a two-dimensional maximum chromaticity & luminosity space.
The algorithm also uses noise analysis for further improvement in resultant images.


Poisson Matting

Client:
Visual effects provider for motion picture
Industry:
Graphics and Imaging
Technologies:
C++

The software implemented matte generation technique from a complex scene by solving Poisson's equations using boundary information from a user-supplied trimap.


GPU Instant HD Project

Client:
Software Development
Industry:
Image and Video processing
Technologies:
C++, Adobe After effects, Intel MMX, SSE2, NVIDIA CUDA, Apple OpenCL

The project was to port the CPU version of Image scaling plugin for After Effects to GPU (using NVIDIA CUDA).

Following functionalities were executed in this application:

1. Port the 8/bit channel functions performed in the resize operation, image resize, antialias and unsharp mask to use CUDA.

2. Provide user interface switch labelled "GPU" that the user can access to choose the GPU render path.

3. Prepared both Intel Mac and Windows updated plug-in for Adobe After Effects.

4. The GPU render path needs to produce visually identical results to the CPU path. This means that the images look identical and that when compared through an image difference, the variation will be less than .4% or 1/256th of a pixel value when compared to the CPU output.

5. The goal is to make the plugin work in real time such that scaling a DV clip (720 x 480) to full HD (1920 x 1080) can be done in less than 40 milliseconds on the GPU. It needs to provide at least a five times speed increase over the SSE2 CPU version.


Color Viewer

Client:
Paint Company
Industry:
Paint
Technologies:
VC++, MFC

It is a stand alone Color Viewer software tool, which allows users to see how paint color will look in a room or in a house before painting it with real paint. Users can use photo of their own room and start applying colour instantly. The software provides easy to use interface to create paint-able regions, paint colours from a colour database, preview and print the coloured photographs with colour details.


Video conferencing application for patient examination and assessment

Client:
IT services provider
Industry:
Healthcare
Technologies:
C++ (MFC/Win32), MS Access DB

The project is based on healthcare domain and primarily facilitates patient examination and assessment through video conferencing. The implementation is a mix of MFC/Win32 framework.

Some of the key challenges faced and successfully executed are as follows:

- Handling of up to 1000 CNC clients in CNC server
- Load testing CNC system using Jmeter tool
- Multithreading implementation in CNC server and client
- Integration of WebRTC video communication in CNC
- WebSocket communication handling with ConnectUs server
- Native socket communication implementation using WinSock


News & Updates

  • January 17

    DDM IT Quiz, Inspired by Mindfire, is Spreading its Wings!

  • December 16

    Santa in a different Avatar- International vacations gifted to All Mindfireans!

Let us Connect!

Related Pages

  • Our MAC Skills
  • Our Classic Mac Skills
  • Our Desktop Development Skills
  • Our Development Skills

Awards and Achievements

Red Herringcolor DeloitteFast50 DB ZInnov1   Nascome  DB Stpi

This site uses cookies. We respect your privacy.copyright (c) Mindfire Solutions 2007-2018. Login