Designed by /Saumya Lahera

iOS Application

Paradigm

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#.

Download the application from here

AR Experience

Career2040

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.


Chapters:


Introduction, OpenGL ES, WebGL API, HTML5, Flow, Browsers, 3D Coordinate, 2D coordinate, Elements, Context, Textures, Transforms, Projection, Shaders.


Design:


- The Design is very simple, and clear.


- Index page shows the chapters.


- Swipe pages to change chapters accordingly.


- Text to speech lets it read chapters.


- Chapters focus on the fundamentals.


- Information page gives basic information.


- Very interactive.


Screenshots:




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