Projects
- Here are some of the projects I have worked on at USC
- Worked as an engineer on Bloom, a 2.5D platformer created in Unity3D for desktop and mobile devices in a team of 15 engineers.
Individual Work:
- Implemented path finding for NPCs using Unity NavMesh system.
- Integrated gesture recognition for user touch input.
- Implemented particle effects attached to different components in the system.
- Worked as a part of the AI team to implement boss battle states.
- Lead sub team which developed various abilities for the player.
- Implemented following features:
- Designed and developed an action-platformer hybrid game for the iPad using Unity3D. The game consists initially of an accelerating side scrolling platforming part followed by an action part along with a boss battle. Developed as a part of a team of 6 members. Specifically worked on the level design, game-play mechanics and user interface.
- Implemented a physically sound simulation of a cube of jello using C++ and OpenGL. The cube was modeled as a mass spring system, exhibiting realistic motion and deformation. Collision detection and response were modeled as well as behavior under the influence of external forces such as gravity and wind.
C++ Renderer
- Incrementally built a C++ renderer, incorporating various features in stages. Initially supported rasterization with hidden surface elimination. Further included Gouraud and Phong shading, texture mapping, procedural texturing as well as anti-aliasing. Renderer accepts .ASC files as input and produces 2D images.
- Performed three different types of interpolation to animate human motion key frames obtained from an optical motion capture system. Input was provided in the form of .ASF files which encode skeleton kinematics and .AMC files which store the motion. Implemented Bezier Euler interpolation as well as Linear and Bezier Quaternion interpolation. Included a comparative study of the three techniques based on quality of results. Performed using C++ and OpenGL.
- Simulated a particle system representing deformable chain constrained to a ring. The chain was modeled as a a series of point masses with rigid edges connecting them. The chain was fixed to the ring at one end while the other end was free to move along the ring. Simulated random motion, motion under the influence of gravity as well as external forces which user can provide interactively. Produced using C++ and OpenGL.
- Produced a simulation of a roller coaster ride in motion from the rider's point of view. Rendered tracks as splines based on tangent co-ordinate system to avoid flipping effects. Placed camera at rider position to give viewer a first person view.Also provided texture mapping and lighting for the tracks as well as sky box and surroundings.
Height Field Mesh Creation
- Created a 3D height field based on the data from a 2D image which the user specifies at the command line. Produced depth for the image using the color co-ordinates and provided user interactivity. The user can manipulate the height field in three dimensions by rotating, translating, or scaling it. Also the mesh can be represented as lines / wire-frames of varying resolution and triangles based on user input.
Ray Tracer
- Simulated a particle system representing deformable chain constrained to a ring. The chain was modeled as a a series of point masses with rigid edges connecting them. The chain was fixed to the ring at one end while the other end was free to move along the ring. Simulated random motion, motion under the influence of gravity as well as external forces which user can provide interactively. Produced using C++ and OpenGL.
Android Application for Custom Movie Search
- Developed a web application for Android platform that scraped www.imdb.com and provided user ability to search for movies, TV shows and games. User can share the custom links on facebook through Javascript API. Also created a website version of the same application for browsers.