Paradigm is an iPad application that provides live collaborative experience where players are asked to reflect on why they came to Games For Change, what social issues they care about discussing, and how to start their own creative revolution through the power of art.
I developed iPad Application from scratch. The most fun part was to work on a drawing applicaton using Metal API (Contact for details) and used Firebase for providing live drawing interface.
Unity iOS Application
Census2020
Census 2020 is a project aimed towards educating middle school and high school students about the importance of collecting Census data. The team is developing a mobile game – “Space County”, which will simulate management of a town on an alien planet. The game will emphasize on teaching students in a fun way, how collecting data makes a difference in managing a town and for the betterment of the people.
My duty was to work on the mini game where a player can collect data. I was also responsible for code optimization. Contact for more details. I used Unity game engine and C#.
Career2040 is a project aiming at providing an immersive AR experience in the form of an installation that simulates interview and hiring practices for young adults in 2040 based on AI and innovative readiness. The AR algorithm career decision-making experience will highlight the biases in the workforce and get people curious to have questions and reflections on biases and discrimination.
My duty was to work on the all shaders, other effects and framework for the experience.
VR Experience
Virtual 3D Printer
Virtual 3D Printer Project Hot Metal is an educational project aiming to teach engineering students how to operate a Metal Additive Manufacturing (AM) machine. With dual-platform support of PC and VR, the goal of the project is to simulate the operation of a metal AM machine and provide instructional support for engineering students. Students will not only have detailed instructions and assessments on the PC platform but also have a practical experience operating the machine in the virtual world. Project Hot Metal will also integrate the prototype with a machine-based tutor created with CTAT (the Cognitive Tutor Authoring Tools), developed by the Human-Computer Interaction Institute (HCII) at Carnegie Mellon University
My duty was to build a framework for back-end communication between Unity and the Cognitive Tutor Authoring Tools (CTAT) in C#.
I also worked on a framework to simulate a 3D printing using SteamVR. In addition to SteamVR it was also used by web platform.
iOS Application
Web Bolts
Web Bolts is a tool for working with web elements like HTML, CSS, JS, jQuery, XML, and WebGL. Design is very subtle, and animations give it a really nice experience to the users.
Web Bolts is developed by Saumya Lahera. Web Bolts is an application used for working with web tools. Web Bolts is a fully-functional tool that can interpret and display HTML Web pages, JavaScript, Cascaded Style Sheets, and many more. Web Bolts extends the capabilities of the application so it can display Images. Also, there are a number of browsers that are designed to access the Web using a mobile device.
A mobile browser, also called a microbrowser, is optimized to display Web content on smaller mobile device screens and to perform efficiently on these computing devices, which have far less computing power and memory capacity as desktop or laptop. Mobile browsers are typically stripped down versions of Web browsers and offer fewer features in order to run well on mobile devices.
Web Bolts is engineered for testing web documents offline.
WebGL (Web Graphics Library) is a JavaScript API for rendering interactive 3D computer graphics and 2D graphics within any compatible web browser without the use of plug-ins.
WebGL is integrated completely into all the web standards of the browser, allowing GPU accelerated usage of physics and image processing and effects as part of the web page canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.
WebGL programs consist of control code written in JavaScript and shader code that is executed on a computer's Graphics Processing Unit (GPU). WebGL is designed and maintained by the non-profit Khronos Group.
Design
Supports HTML, JS, XML, CSS, jQuery, and WebGL.
Each project has its own directory.
Files are saved automatically.
Testing is done offline.
Animations are used for making it interactive.
Images can be imported from Photos or you can click images, and store them.
jQuery is added by default in every directory.
Files are linked with each other respectively.
Download and save the source code of any given link.
Screenshots:
This screen is the first page that retains names of the projects that you have created
This screen shows project directory.
This screen shows doucumentation section of a project.
My duty was to design the application and code the application
Download the application from here by Saumya Lahera.
iOS Application
Web Codes
Web Codes is a web editor for designing and testing web documents.
Design:
- HTML, CSS, JS, XML and jQuery projects are supported.
- Connect files with different projects.
- Files are saved automatically.
- Files are tested offline.
- The mini code viewer is given in the main view to see your html code.
- Added files will have example codes.
- jQuery library is added for jQuery projects.
- Files can be linked to different directories.
Screenshots:
This screen is the first page that retains names of the projects that you have created
This screen shows project directory.
This screen shows how to add files to the project directory.
My duty was to design the application and code the application
Download the application from here by Saumya Lahera.
iOS Application
Web Graphics
Web Graphics is a tutorial app that clears fundamentals of WebGL. WebGL is one of the best APIs for the web. It is also really important for making it easy for beginners to understand WebGL. Before getting the hands dirty, it is important to understand the base.
WebGL is a JavaScript API. It directly communicates with the GPU, and it is really important to know that. There are many alternatives to achieve interactive designs. Getting through the tough part will teach you a lot.
Why Web Graphics?
Web Graphics teaches fundamentals about the API. There are steps to be followed. If you don't, you may like it, or you may not. So, it is really important to follow the steps.
WebGL is based on OpenGL ES 2.0. There is a chapter that gives information about OpenGL ES 2.0. Yes, it gives all the information that can be helpful to understand WebGL.
Web Graphics helps to get a better understanding of the API. It gives an idea of how WebGL is.
This screen is the introduction screen that renders a cube using GLKit
This screen shows WebGL API chapters
This screen shows a chapter
My duty was to design the application and code the application
Download the application from here by Saumya Lahera.
iOS Application
Open Graphics
Open Graphics is a tutorial app that clears fundamentals of OpenGL ES for iOS Platform. It is a starting step for learning OpenGL ES. The OpenGL ES API requires a lot of understanding if one wants to work with.
Why Open Graphics?
Open Graphics focuses on the fundamentals of OpenGL ES. OpenGL ES directly talks with the core resources. Actually, it uses a lot of mathematical concepts. Matrices, trigonometry, vectors and coordinate geometry. Directly jumping to those parts will not give you the basic idea about OpenGL ES.
It assumes users have not cleared the fundamentals about OpenGL ES. Language is very basic, and not very technical. Sometimes, informal terms are useful.
Chapters:
Important chapters like Introduction to the OpenGL ES. Frame Buffers, Buffers, Shaders, Contexts, Pipelines and other basic things are covered. Knowing these chapters will help you understand higher level concepts.
Design:
- The Design is very simple, and clear.
- Index page shows chapters.
- Swipe pages to change chapters accordingly.
- Text to speech lets it read chapters.
- Chapters focus on fundamentals.
- Information page gives basic information.
- Very interactive
Screenshots:
This screen is the introduction screen that renders a 3D Object using Scenekit
This screen shows OpenGL ES API chapters
This screen shows OpenGL ES API chapters in cell mode
My duty was to design the application and code the application
Download the application from here by Saumya Lahera.
iOS Application
Game Math
Game Math is developed to focus on a very important topic for game developers. Vectors!
Vectors are not that really complicated as people think. Well, it wont be anymore after using Game Math. Game Math focuses on fundamentals. There are many tutorials for game development mathematics. But they may be complicated. It is good to learn things from a right place. Good understanding, and amazing research give better output.
Purpose of this application is to give better understanding of the topic. Making the application a bit interactive and subtle will help in understanding the topic better.
There are many API like OpenGL ES, Vulkan, even game engines require mathematical concepts to work on with many features. But these things will only work for developers if they have better knowledge of the topic.
Even game designers may need it indirectly. Designing is all about planning. Let me make this clear. Game developers and game designers are two different entities.
Game developers are the people who program games.
Game designer, are the ones who "designs" the features in the game. Designers focus on giving details about how game features are going to be implemented.
So, when it comes to game programming, math is all you need to understand.
Physics, moving characters, and other entities.
Topics covered:
- Introduction
- Position
- Velocity
- Direction
- 3D
- Addition
- Subtraction
- Multiplication
- Length
- Distance
- Normalization
- Dot Product
- Cross Product
Enjoy!
Screenshots:
This screen is the introduction screen that renders a 3D Objects using Scenekit and show chapters
This screen shows a chapter
My duty was to design the application and code the application
Download the application from here by Saumya Lahera.
iOS Application
OpenGL ES 2 Reference
This application includes complete descriptions of all OpenGL ES commands and functions contained in the OpenGL ES 3.2 API and Shading Language Specifications. All the information is provided from the official Kronos Group Website. It helps to work easily. OpenGL ES is the industry's most widely used, supported and best documented 2D/3D graphics API.
Purpose is very much clear from this document that developers need to refer functions, and obviously there are hundreds of functions, and it is really difficult to remember all of them.
This application is developed to make things easy.
Features:
- Functions are listed in a very systematic manner.
- All the information in this application is provided from the official Khronos Group website. So that it becomes easy to understand.
- Search bar makes it easier to work with.
- Search index list makes it easier to go through the sections.
- Landscape mode is supported.
- No Internet connection is needed.
- OpenGL ES Notes for free!
- It can also be used for beginners to learn the functions.
- Information provided is used from the official website of Khronos Group.
- No need to access internet for referring.
Purpose is very much clear from this document that developers need to refer functions, and obviously there are hundreds of functions, and it is really difficult to remember all of them.
OpenGL ES Reference application is developed to make things easy.
OpenGL ES Reference is of course a non profit application. OpenGL ES Reference is free of cost.
Purpose of this application is to provide knowledge about OpenGL ES for free. And also to make things easy. Because the content is online, this application gives the details offline.
Screenshots:
This screen shows a list of commands
This screen shows a command
My duty was to design the application and code the application
Download the application from here by Saumya Lahera.
iOS Application
Getaways
Book exciting outdoor activities and guides around you. Explore activities in a full 360 immersive experience before you book. I implemented the whole application from scratch. I used Scenekit for implmenting the 360 video player. I used Amazon AWS for backend. The most challenging part was to implement 360 video player because it required understanding of various Computer Graphics concepts.
Download the application from here developed by Saumya Lahera.
SteamVR Application
Woo Who?
It is a VR story experience, where you enter as a suitor of the beautiful Principessa, and must serenade her to win her love. Don Toadlioni is a statue in her garden that magically comes to life, and helps you win love.'"
I was one of the programmers who worked on this experience. My task was to work on the simulations and characters movements. We developed this experience in a week and I managed to finish Juggling simulation.
Worked with a team of 2 programmers
iOS Tool
iOS Scene Creator
It is getting developed using METAL API noew! Under development
iOS Scene Creator is an iOS application that I have been working on for creating 3D scenes on iOS devices. It is possible, however it requires deep knowledge of iOS System. Embedded devices have limited resources that does not make type the best sources for 3D codes performance unless of the upgradation. My Approach is totally different. What I feel about it is that everything has been given to the developers by Apple. Collada is the file that can hold meshes, and many graphical elements. In a Framework called SceneKit , developer can upload Collada files for SceneKit elements only. So, Over here I will have to use OpenGL ES, for handling the resources.
iOS Scene Creator is not only about importing COLLADA files or creating 3D Objects. It is also about creating different sets of Layers so that they work with each other as a single Scene. For instance, Game engines help to design scenes by dragging and droping objects for making work easier and to save time. iOS devices have small screen sizes and also may not handle heavy 3D codes. So, the main purpose of the project is to work on efficiency and set constraints so that the applictaion doesnt crash.
iOS development includes WebKit that may play a really important role in the development. iOS web browser (Safari) also supports WebGL. Three.js is a library for doing in-browser 3D with javascript. It also supports canvas rendering instead of just webGL rendering. However safari (iOS) may not work effecienty with three.js canvasrenderer.
iOS Scene Creator includes features like:
1. Import Collada files using internet connection using NSURLConnection Object. The NSURLConnection class provides convenience class methods to load URL requests both asynchronously using a callback block and synchronously.
2. Interaction of Scene Objects using any combination of the UIGestureRecognizer class gestures.
3. Use web browser (using WebGL or other libraries) to support 3D models.
Fig 1. First Look
Introduction
Collada has been imported to the scene, but the problem comes when you are doing that at runtime. Apart from manual importing of the Collada files, problem arrises when you are getting the models from different sources like internet or from document's directory. Example: Using iTunes to import 3D models to the applictaion's document directory. The model shown in figure 1 is imported manually, and in the application's' bundle. scnassets folders hold collada files. Even if the folder does hold models, it can be placed outside xcassets folder.
Scene Layers:
1.self.view added a layer that shows small boxes for the background.
2. 3D object is shown on top of the background layer.
3. Scrollview is added on top of the 3D Object layer for selecting various objects.
4.sceneview.allowsCameraControl = true allows interactions of the 3D objects.
3D Objects
scenessetup function defines scene and sceneview where all the 3D objects will be displayed.
scnassets
Folders with .scnassets extension are special folders. It is very easy to run Collada files when you do it manually.
Apple applies some magic to scnassets to optimise included collada files. And the main idea is that Apple calls a script named copySceneKitAssets, and the script calls scntool to optimise the included .dae files.
Everytime users should create a folder with .scnassets extension and then run the magic script.
./copySceneKitAssets product-1.scnassets/ -o product-1-optimized.scnassets
Then any of the objects in the scene should refer to the collada file in SceneView. The objects node should be allocated with the Collada files.
Scenes
Scenes are placed on SCNView. An SCNScene object represents a three-dimensional scene, and Scene are these objects. Scenes hold COLLADA models. A method below explains how to code a scene so that it can hold 3D objects. iOS Scene Creator will have to connect various layers to make all the scenes work together.
iTunes Files Sharing
1. Add the UIFileSharingEnabled key to your app’s Info.plist file, and set the value of the key to YES.
2. Add files to the app’s Documents directory.
3. When the device is plugged into the user’s computer, iTunes displays a File Sharing section in the Apps tab of the selected device. The user can add files to this directory or move files to the desktop.
Xcode Scene Editor
1. Add objects by dragging and dropping. You can also rotate the view around the point you are currently looking at.
2. Pressing Alt or Option and scrolling vertically allows you to zoom the scene in and out and it can also be done by pinching on a trackpad.
3.Object Library has objects for scenes.
4.Attributes Inspector will help to edit various properties of objects.
This is an example of a SceneKit editor.
Purpose
It is simple that we do not have mobile applications that can help to create 3D Scenes. This experiment is to demonstrate that having powerful devices that support many features of 3D codes may help us work on these complex problems. Initiative is must. For the project to work it is important to know how .scnassets works.
Note: This page only shows few modules of the project and not the whole project is shown. It is getting worked on. As to work on the efficiency, there will be a need to test few modules, and prototypes will help to understand it the best.
Adobe Premier Pro Project
Music Video project
This video is just a fun music video project. I was learning how to use Adobe Premier Pro. Took some time, but it is fun and I hope you like it. Thank you.
iPad version
Paradigm Shaders
3D models are, essentially, a collection of 3D coordinates called vertices. They are connected together to make triangles. Each vertex can contain few other informations, such as a colour, the direction it points towards (called normal) and some coordinates to map textures onto it (called UV data). 3D models have a material and material has shaders. Models cannot be rendered without a material. Materials are wrappers which contain a shader and the values for its properties. Hence, different materials can share the same shader, feeding it with different data. Model->Material->Shader. Shader functions run on the GPU. Vertex Functions - Are used to play with vertex positions. For instance, animating an object. Fragment Functions - Are used to change pixel colors. Kernel Functions - Are used in Machine Learning and Kernel shaders are used for that
Swift Playground subscription can be found here by Saumya Lahera
iPad Version
Paradigm PEMDAS
The PEMDAS Rule is a set of rules that prioritize the order of calculations, that is, which operation to perform first. Otherwise, it is possible to get multiple or different answers. We don’t want that to happen.
Swift Playground subscription can be found here by Saumya Lahera