 Good afternoon everyone. My name is Gurleen Kaur and I'm from Guru Nanak Devi University, Amritsar. I'm here representing my team, Online Physics Laboratory, which is an Eksiksha initiative. This presentation is powered by Summer Internship Program 2013 at Institute of Technology, So, before proceeding further, I would like to thank our guides and mentors who guided at each and every step of this learning experience in 8 weeks. Our guides are Professor D.B. Fatak, Mr. Avinash Awate, Mr. Rajnikan Jhangir and Mr. Mayank Palival. Next, I would like you to introduce you to my team, which comprises of 9 members, Harsh Agarwal, Lavaraja, P.B. Krishnachitanya, Rajat Dube, Satya Prakash, Sneha, Sumati, Vishal Pandey and myself Gurleen. So, as we all know, Eksiksha is an initiative by IIT Bombay, which emphasises on the concept of e-learning. So, let us first know what are the advantages of e-learning. E-learning provides us with the standardisation. All the content available to us is uniform throughout the country. Eksiksha provides us an initiative with one country and one education system. Next, we have this easy learning content, which can be updated rapidly. So, the content here is easy to make as well as update, because as soon as we make the content, it can be updated online and can be modified in the similar way. Next is interactivity. The modules and the simulations we are preparing are not just the ones where the user has to see. In these kind of simulations, a user gets involved. We provide with the interactive simulations where a user can see multimedia text, images and videos. Next, we have is we can access this content anywhere and at any time. As internet is available at the back and call of everyone at 24-7, so are these e-courses. Next, this technique is cost-effective. This is cost-effective because we have to prepare the content only once and can be re-used and re-loaded thereafter. So, in making these simulations, we have used PI framework. So, what is PI framework? PI stands for Physics, Interactive, Experiment and Framework. This framework is free to use and it is developed by students of IIT Bombay. Graphic operations are supported by easy-to-use PI objects. As it is easy to use, therefore, development becomes faster. User can create objects by drawing circles, arcs, blocks, polygons. User can transform real-world coordinates to pixels and maintain a spec ratio. User can create visually appealing simulations by using a variety of images. So, let's get on to the objectives of our project. Our first objective was completion of physics interactive simulations. We had a target of completing 230 simulations in a span of 8 weeks, which we were the course of the internship program. 90 simulations were already done by the software contribution quota people and rest 140 simulations were made by us. Our next objective is extension of PI framework. In extension of PI framework, we had three objectives further. Our first objective was extending the framework for 3D simulations. We extended PI from 2D to 2.5D and then we enabled a camera where we can change the position of the camera so that the user can see the object in 3D. Next was independent motion of objects in the experimental space. We made an animate function where the user can change color, size, location and opacity of the object in a hassle-free manner all at the same time. Next, we have is enhancement of text in the framework. By enhancing the text, we mean we made the text draggable and droppable and we added certain functionalities of the format in the text. So, next we go to our first objective which was completion of these simulations. As I already told you, we were given a target of completing 230 simulations and we made 140 simulations here, 90 were already available. We use them by making PI interactive software. This software, we increase the efficiency to 50% so we can concentrate only on the coding part of the thing. Therefore, we were able to complete 140 activities in such a short span of time. Now let me introduce to the simulations for the first demo. Here we have first is from mechanics part where we are going to show how uniform motion is created. The specifications for this activity are show a card along a straight track moving with uniform velocity show a distance versus time graph, allow the user to change the input and check the speed of the car. So, here we have show the graph, we are changing the values, the initial distance is 10, the speed is 10 and the time lapse is 2 seconds. So, the graph is already plotted and the graph line is started from 10-0 which is the initial position of the car. Now when we start the car, the simulation runs, the car covered a distance of 20 meter which is speed into time 10 into 2. So, the user can change the values at the text check boxes which are already available there. Now let's move on to the next activity which is from electricity. This activity will show us the electricity experiments. This activity is from the sixth class textbook. The specifications are show various home appliances which are switched on by electric switch and appliances should function where the switch is turned off and it should be off when the switch is turned off. So, here we are showing the next activity. We have a bulb when we on the switch the circuit is complete and the bulb starts glowing. Same as the case with fan when we on the switch the fan starts moving. Our next activity is from light. In this activity we are going to show a reflection of convex lens. Here the specifications are show a convex lens, show principal axis and the center. For each ray draw a refracted ray and refracted rays meet at the point. Allow student to change the thickness of the lens. In this activity rays are coming from infinity and they converge at the foreside of the convex lens. So, when we move the slider the radius of curvature of the convex lens changes and say the foci also shifts forward. Now, I like to call my friend Vishal Pandey to continue with the presentation. Hello everyone, I am Vishal Pandey student of NIT Silture. I worked on the module extension of pi to pi 3D. Pi as the name stands for physics interactive experiment. We use pi to create interactive physics experiment simulations. That we see we learn around us in our day to day life. Pi framework has only two axis X and Y. So, only 2D objects and experiment simulations can be represented using this. But as we know we are surrounded by real 3D objects. So, for better understanding and better visualization we need some 3D look. Here comes the need of pi 3D. Pi 3D framework has three axis. X, Y, Z. Positive X axis points towards the light of the screen. Positive Y axis points downward the screen. So, by the right hand thumb rule, negative Z axis will point outward the screen. Experiment simulation by using pi 3D framework gives real look, have better visualization and are easy to understand. For development of pi 3D we followed step by step approach. First we assigned Z positions to the 3D object. Now, our point in pi 3D framework has three coordinates. X, Y and Z. But our screen only knows to coordinate X and Y. So, how we are representing our 3D point in there? We are actually using mathematics projection for projecting this point on the 2D plane that is our screen. Next thing, how an object behaves when its Z value is changed? We know where objects would look bigger when it comes closer. So, this is done by a scale ratio formula that gives a fake illusion of object movement in 3D space. An object that is nearer should hide the object at behind. These three approaches can be seen by the following demonstration. Here you can see there are three objects or three men. X Y position of them are fixed only they are changing in Z position. When man comes closer it looks bigger and it also hides the man present behind it. Next we allowed user to create his own 3D objects. Now, he can use pi 3D framework to create his own 3D object using the same specification as he uses, as he creates 2D object using pi framework. This can be seen by the following demonstration. It is a 3D object cube, but actually it's a two dimensional figure. All its eight vertices are projected on the screen. Every time its vertices are changed it are projected on the screen. So, we get a rotating cube. Next we have provided user the facility to change camera view point. Now what is camera view point? Currently we feel like we are standing at some negative Z value and we are looking perpendicular to the screen. We can change this camera view point. We can see in the following demonstration there are some rectangles. They are fixed in XYZ position only our camera view point changes. It changes in a circular trajectory from front to back. Camera was initially in front. Now it is changing in circular trajectory coming to back, so it follows a 180 degree rotation. But our main motive is still the same as pi. That is to use all educational purpose. As you can see in the following demonstration, here is a mirror, a tetrahedral object and its image formed in the back of the screen. We are changing camera view point for better visualization. As you can see green cube of the object is in the front of the cube of the image and yellow cube of the object is in the front of yellow cube of the image. So the concept of lateral inversion or the concept of chirality can be explained with this simulation. So many such simulations can be performed using pi CD framework. Now my friend Lavarajya will proceed the presentation. Good afternoon everyone. I am Lavarajya and I am going to present here another extension of pi which is independent object motion of objects. Here you can see that existing version of pi supports only moment change. But sometimes we need to change time constant also. And as pi supports only moment change with less complexity, if you want to increase the number of changes, the complexity will be more. So we want to make user free from all these complexities. So that is why we have extended the pi for independent object motion. The next slide we are going to show our approach towards the independent object motion. Here you can see that how we have approached for this. And we have defined a change specification class. This class will provide the following facilities to the user. It consists of follow path and side change and color change. Now I am going to explain one by one with the following demo. And first here you can see that a simple example division by distribution. Here you can see that in this module, users only define the start point and end point and start time and end time. The rest of the things will be calculated by our class and software will does automatically. Here you can see that this is an aquarium. The fishes are moving and the fishes are generating the air bubbles. You can see that the size of the bubble is gradually increasing. Users only define here the initial size of the bubble and final size and initial start point and final start point. The rest of the things will be done by our class. And now this is another extension which is defined in independent object motion. This is color change. Here you can see that we have taken a simple demo for this, which is chameleon. Here you can see that initially it was in one color and it changes color according to its surroundings. And that's why users only specify the initial color and final color. It will specify the gradient color also. And it will specify start time and end time. The remaining things will be done by our class. And now I would like to invite my friend Chaitanya to speak for us. Good afternoon, one and all. I'm Chaitanya. I'm here to present you the theme regarding the context of pytext. But before going right into the presentation, let me initially explain you what actually a text is. A text is a scripture that we define which actually helps the user understand something orally that what we mean. As py is a framework, we need to define some text, right? We define this text by using an object called pylabel. It was initially defined the previous time. So the problem is that py has very little development in text. So we have enhanced this pylabel by adding many other features upon which you can perform any manipulation to be precise many manipulations. So now we have enhanced its features by introducing, as I said, we have chopped the parts into three different divisions. So I'm going to explain you three different divisions. The first one comes drag and drop followed by rotation and finally the change of text. So first coming to a concept of drag and drop. So drag and drop is a concept which was initially applied over to py objects. So now this time we have extended and inherited that property over to the py text. So it is used for improving the interactiveness where we do it by using a mouse click event. The thing that it happens is that we give the user freedom to drag and drop the text on the display screen wherever he wants it to be displayed. So now going to the second thing that is rotation. So rotation is also used to improve the interactiveness. But the thing is that here we rotate the text along x-axis, y-axis and z-axis. Now finally coming to change font. So change font in the sense that it is a compilation of all the features that we have defined over text regardless of drag and drop and rotation. It includes many features like changing background color, foreground color. We can change the text dynamically on the display screen itself. We can set underline. We can set font color, I mean font size, font style. And we can also set the indent. It means that you can set the value between the left margin and the first letter of the text. You can also set the block indent like the margin between the space between left margin and the paragraph. You can set leading, the spacing between two things and many other things. And also we can perform string manipulations. So this ends this. And now I would like to demonstrate a demo which demonstrates the demonstration of pie text. So here comes the slide. The slide is that you can see on the upper part. These are defined by using pie text which is a pie label. And down you can see many images. The thing that happens is that mouse click. By clicking on different images, we can get their names. Here the thing happening is you can see they're flying over to reach their destinations. The ball, book, cell, sun, dice, bird. So this ends our pie text thing. And now we will be moving over to the challenges. So these are the challenges that we are going to define, that we faced. And we tried to overcome them. The first one is that to make the student understand to the maximum extent. So this is our primary motto. We made our activities in such a way that it will be understandable to the student in the perfect manner so that he need not use, he need not refer external references. So coming to second one, the thing here happening is that we are showing two objects in 3D. And if we want to bring the second thing over to the front, it should hide the second thing, right? This is the challenge that we have faced and we have overcome that too. And third one is that synchronization and management of large number of simultaneous changes. It is independent object motion where we need to move large number of objects simultaneously that you have seen in the demo. And the final one to make text draggable and droppable is difficult. So I've been telling you that this is the new feature and we have defined that too. So this ends the challenges. Now moving quickly over to the limitations. So anything that is flawless is flawless, right? So here you can see our project is also not an exception to that. We also have some flaws. So the first one is that in Pi 3D we cannot go inside an object since it is actually a 2D interpretation of 3D objects. The thing here happening is that the 3D objects that you have seen are actually 2D objects which have been projected onto the 2D space. So they are not actually 3D objects, they are assumptions by some formulas. So here as they are 2D objects itself, we cannot go inside the 3D objects and explore them. Here the thing happening is that the drag and drop and rotation. Both of them can be performed only with mouse click event. So as it cannot decide what to do, whether to do that or that, we think this has a limitation. But we have overcome this by using a handle which disables one thing when we are using other thing. Like if we are using drag and drop, it disables rotation and vice versa. So now moving into the learning. So learning is the most important thing in anything that we do. We learn something. So here we feel that we learn this. We have learned to develop software on industrial standards. We believe that all the projects that we are doing here are of industrial standards. And it gives a lot of experience for us when we go to the industries. I am going to second one to apply the object orientation principles for making our code reusable. So here we have seen the objects cuboid. They are all defined and you can use them in other projects also. Which is a principle of object orientation principles and that is what we learn. Coming to third one to work in a team. This is the most important thing that we believe. Because working in a team is the most important thing that we will face when we go in the future when we go to industries. So this has been a very good experience for us. And finally to develop code in library which helps us understand how languages are actually created. See, when we use any language, we actually work on that using its things. But we cannot work on the library. But we luckily or somehow got a chance to work on the library. We feel that we have done enough job for that. And finally I would like to summarize that the 3D objects, independent object motion, text and a lot of activities that we have emphasized on in the online physics laboratory have been done in the best possible way that we can to make it more interactive, more stimulated and more attractive thing. So I would like to thank everyone who has been a part of this and has been backing up right from the beginning. So that's all from us and thank you for your kind and patient's attention. Ordinarily I would say lines of code in terms of programming language lines of code. But here you would have a whole lot of prescriptive lines of code. Approximately do you have any idea? Of course sir, you should say. Actually we have defined at least 500 lines of code for each activity. Sir in 3D there are different classes. There is main class Py3D, it has 324 lines. We have worked in a different module. I have worked in 3D too. There will be similarities. No seriously do this exercise later just for the record. Okay. Because what we are also interested in finding out is what is the productivity of individual teams in terms of programming. Okay. If I have to run all this material on Akash, what does it take? Actually it works on a browser. So browser should have flash player, then it will work. But if browser has flash player then the entire interaction will work exactly as it is. And flash player should run that action script 3.0. It is some new version of flash that runs action script. Sir in case of online physics laboratory we haven't but our other groups have tested on Akash tablet. Yes sir. The third one, if I wanted to use these for children who are studying using Indian languages. Marathi, Telugu, Marathi, Gurumukhi, Hindi, what would be the effort involved in your case and whether you have given any directional statements which say that if you want to change the interaction language then the strings in the following table have to be replaced by something else. Sir while coding. So is there any string which is hard coded in the code? Sir while coding the whole program we have used labels. The labels can be changed and it can be modified using a Google translator. So it can be translated into any language. As in the case of AXXIA portal they have provided a translator functionality. So anyone, this activity is going to be linked in the AXXIA portal. You cannot always be as simple as that because for example the names that you put in some kind of an order here like ball, kite, whatever that will change from language to language. And that means the animation or simulation order itself might have to be changed if the order is implied. Otherwise these labels are stored here. Are they part of the code or is there a separate table? So if they are part of the code how will I change it? Sir we have tried to keep the text to the minimum and we have tried to explain. No that's okay. It's not a question of minimum or more. It's a question of ease with which things can be changed. In fact if it is minimum it is harder to find and replace. Sir we have a separate class for text. Like we have developed text. Separate class for text. Yes sir. So I am answering it on their behalf because they don't know because it is in future. The philosophy is that all text written goes through pi label. They have been told not to use flash text. Hopefully everybody has followed that. Now what we do at least in the earlier versions what we have done? Not done for pi. We modify pi label so that in a testing mode the pi label will make a database entry for all the strings it has received. So if pi label is given both ball and whatever. All those entries will come inside the database. So that is the training. I have to exit. Okay good. Thank you very much. I hope sooner rather than later we will see all this work on Aakash tablets. Thanks a lot. Once again let us give them a big hand.