- Apache Tez is an extensible framework for building high-performance batch and interactive data processing applications, coordinated by YARN in Apache Hadoop. Tez improves the MapReduce paradigm by dramatically improving its speed, while maintaining MapReduce's ability to scale to petabytes of data. As a member of Hortonworks, my contributions were in the development of the TEZ user interface.
- Hidden Shadows is the latest game from Zynga in the hidden objects genre. The game is a sequel to Hidden Chronicles. The game is a supernatural crime thriller in which you play the role of Michael Alder, a young executive, to solve the mysteries behind murders in Gracetown. My team had built three key features of the game, and was also working on numerous other modules. We were also in charge of solving all UI-related technical blockers.
- Starling UI is an extension for the Starling framework with better UI components. It was started as my personal project, and now it's an inseparable part of our latest game, Hidden Shadows. The extension includes viewport, lossless text field, masked display container, rounded progress bars, scroll panes, image loader, tiling systems, layering composite, and more.
- A personal exploration of browser physics using regular DOM elements. The project implements a scalable 2D collision system capable of handling an arbitrary number of simultaneously interacting circular bodies. The underlying math is dimension-agnostic and can be extended to support non-circular shapes.
- Frigil was our entry for the 2012 Hackathon. The game was envisioned and implemented by my artist friend and me in less than a week. The game tells the story of Frigil, the frog, who is on a quest to be the next king. Reaching the yellow leaf completes each level, but take care to stay away from the foes and ensure you collect the goodies for a better score.
- Our team created a full 3D version of Craft Iso. Prototypes were created both in Unity and Flash. My main contribution went into an engine named Cube. Cube was built on Flare3D and also directly communicated with Stage3D for performance-intensive work.
- Craft Iso was created for the 2012 Hackathon competition. It was made over Iso2D by adding the third dimension. The prototype provided an infinite block-by-block building rig with various kinds of blocks.
- As part of the YoVille team my contributions went in creating game features. Some of the key features were Yo UI Revamp, Multi Player Actions, Chat Next Gen and Yo Avenues bold beat. For UI Revamp, Player Actions and Chat I was awarded the opportunity to drive the team. Technically my major contributions went in creating a communication framework for the new in-game chat and in creating the base tech for multi-player interactions.
- A highly flexible axonometric game engine built on my patented technology. The engine is capable of handling any tile size in all camera angles and width-to-height ratios. This is achieved using new geometric equations that are in the final patenting process under U.S. patent application serial no. 13/745,103. The engine helped in envisioning the Craft Iso pitch and Greyhound demo.
- LinkPad provides a highly interactive interface for creating flow charts in a browser. It was made purely on HTML5 canvas; a VML-based canvas alternative named s-canvas was also created for compatibility with older IE versions. It's used by ROC-FM for the graphical representation and management of process workflows.
- A library comprising various UI widgets, components and utilities. After working with YUI and Ext JS, my intention was to create a pure JS-based library that is better modularized with each class in a separate file, and at the same time more flexible by dynamically loading the required scripts on demand. Click here to see a demo of one of the components.
- Bridge is a lightweight RPC framework for "client to client" and "server to client" communication. The client side was completely done in vanilla JS and the server side in Ruby. It used an open connection instead of a polling approach to get data from the server in real time. Arguments were JSON encoded and the API was flexible enough to handle both scoped and global function calls. IWT stands for Inter Window Tunnel, and helps to communicate between multiple windows/tabs open in a browser from the same domain. It helps bridge to maintain a single open connection and serve all windows opened under a domain.
- Our team developed and supported a leading fraud management system for mobile NOCs. Worked on all modules, from the heavyweight C++ server to the Rails thin client and Java thick client. My key contributions were in the development of an advanced querying framework, a data stream manager, a multi-file uploader, and a few file translators.
- As part of our college main project, we created a virtual baby named NEO. He was programmed to react to our expressions, emotions and actions. A webcam and microphone acted as NEO's sensory inputs, while the monitor and a pair of speakers acted as outputs. Using motion detection, NEO's eyes would follow moving objects; he would express happiness while listening to soothing sounds and would get emotional with noises. Coupled with face recognition and gesture recognition, we expanded NEO's capabilities. The main technical innovation was a grammatical parser based on the nine emotions of the Natyashastra. This enabled the system to learn and evolve based on surrounding activity. A key aim was also to enable the system to learn sounds and associate them with gestures.
- S-Cube was our college mini project. The name represents SSS and stands for Synchronous Sashay Simulator. The aim was to provide an efficient, versatile, and generalized platform to ascertain the shortest or simplest path connecting two places on a map. Our system uses a method entirely different from the conventional graph-based approach and provides better results in real-world scenarios. It works in two phases. The preprocessing phase creates an intermediate file called the map file from a black-and-white image of the map. Black represents obstacles and white represents traversable area. Non-traversable white patches are removed through a process called lagoon erasing, and then edge detection is performed to generate the intermediate file. Once the map file is created, it can be used any number of times for finding a path between two points. To find a path, shortest routes over the intersecting edges are taken and smoothed out using our RDH algorithm.
- Language Lab is one of my pocket money projects. The products were released under my company MyFactory, in a joint venture with another marketing firm. Language Lab provides various means for student–teacher interaction and facilitates online material broadcasting, language learning, and knowledge assessment. It was installed in various Indian colleges.
- Sozer stands for school organizer. It's the biggest product from MyFactory. The product helped with the complete management of a school, providing everything from managing timetables to ledger sheets. The product was installed at several schools in my state.
- Turech is a numerically controlled construction toy, created for college project presentations. At its heart, the system was a set of DC motors controlled via parallel port through an optocoupler-relay array. On the software side, the program was equipped to manage signals sent to the data port. It can translate keyboard inputs, and record and replay signal patterns.
- ARMADA stands for Artificial Recognition and Manipulation of Alphabetic Datum. It's the C++ implementation of my handwriting recognition algorithm, MAI-II. Back in 2002–03, when Microsoft's tablet PCs were the hot topic of the tech world, what attracted me most were the stylus and the magical recognition of handwritten characters. This inspired me to start a mission to create a system that could recognize handwritten characters in any language. After multiple iterations of various algorithms and prototypes, I accomplished my goal; ARMADA core 2 was created. The software can learn the way you write a character, memorize it, and use that knowledge at a later time to recognize the same. The best part is that it can learn any language.
- P2Texter is a picture-to-text converter — a tool to convert an image into a monochrome plain text equivalent. The resultant text file can be opened in any normal text editor. The system uses a set of 16 different characters; each character occupies a different screen space. When a mosaic of characters is made with each pixel replaced by a character of relative intensity, the illusion of an image is created.
- Perspective 3D Engine is my C++ implementation of the perspective projection in engineering graphics. Using the tool one can easily design a 3D wireframe; view perspective projection of the same, and alter the projection parameters. The project was initially started as an educational tool to learn the effect of various parameters on the projection of an object. Later the core of the project was used as a 3D engine in some other programs. It helped in animating objects in all three space dimensions.
- As a programmer, my key aim back in those days was to explore beyond the boundaries of conventional programming. As I'm more inclined towards graphics, one key objective was to directly control graphics card for better performance, color and resolution. Hence project SVEGA was started. SVEGA provided TC++ APIs for drawing basic shapes and displaying BMP images in SVGA. 256-colored SVGA was a major achievement above the 16-colored VGA provided by graphics header file.
- Swing is my attempt to leverage the sound card for music. It enabled playing uncompressed single-track wave files in TC++, and was a major achievement way beyond the frequency based sound tones supported by the language. The library also supported amplitude based graphical visualization of currently played music.
- Tumac stands for The Unlimited Machine. It's programmed to calculate the Gregorian calendar for any year you enter, in a fraction of a second. This feat is achieved by performing calculations incrementally as the year is entered. The key innovation is a new mathematical approach to performing basic operations from left to right, rather than the conventional right to left approach.
- My relationship with computers started back in 2002, and Turbo C++ 3.0 was the first language I had my hands on. Beyond the basics, what attracted me most was the graphics header file that gave pixel-level control of everything on the computer screen. These screenshots are from some programs I wrote while learning.