Saturday, April 7, 2012

The Inner Eye

Motivation

 “Ah! This is where mechanical engineering becomes beautiful. You just have to visualize the things”, barked the dreaded mechanical engineering professor, twirling his thick moustache, elegantly looking down at his cowering students, who sat fixed in their hard seats, quite oblivious to the revelation (which had just occurred to the professor), which made to the professor the otherwise boring mechanical engineering problem so beautiful.
                This is a dilemma that every engineering student, at some point of time in his academic career, faces. And one such situation in my life is what motivated me to think of this project The Inner Eye.

Objectives

The inner eye is supposed to be a offline software (one which the user would download in his PC and run) that objectifies specialization in visualization to help students and technicians simplify their problems at hand in any engineering situation.
By making this software, I intend to remove most of the visualization difficulties that a student faces in various technical courses.
The Inner Eye will help us visualize situations in the engineering world. The inner eye has two basic components: the HIDEOUT and the specific visualizers. There will be different visualizers for different subjects (say electrical, mechanical, electronic etc.).

Explanation

Technically,
·         The HIDEOUT provides the environment to run the visualizers.
·         Visualizers are applets that actually do the work of visualization and projecting the same in the output.
·         The visualizers will have various features like animated view, reading table, 3d view, print project, saving project, etc. integrated in itself. The animated view is enabled for situations in which it is indispensible. The reading table gives a quantitative overview of the situation projected.
·         The hideout comes with integrated NOTEPAD not different from any simple text editor.
What does the software do?
Suppose the user has an electrical engineering problem, which need the concept of magnetic effects of current. What he does is, he feeds in the circuit diagram and the circuit parameters (using inbuilt features) into the software and the software shows the magnetic field lines’ distributed throughout the circuit, which would simplify the visualization of the problem.
What is the HIDEOUT, the visualizer and a user project?
Suppose a user wishes to view a flash animation. To see the animation, he needs a flash player. Similarly, what I provide the user with is, the visualizer. To run this visualizer, the user needs the HIDEOUT.
Again, suppose the user wishes to print a graph. He will use a suitable graph plotter and print it. Here, the graph will be plotted by the plotter and the user just has to feed in the relevant input. Similarly, in case of this software, the user feeds in his data to the visualizer to get a project. This project (displayed on screen) can also be saved or printed.
Demonstration of the GUI:
To demonstrate the working of the GUI, I will take a simple, very non-specific example of a 1st year mechanical engineering problem:
Suppose a user wants to enter the following data: A cuboidal beam is subjected to a load equal to 80N in some direction, at some point. Find the equation of the elastic curve, so generated. This is how the software will look like to the user:

P.S.: This is an overview of the GUI that I made about 3 months back, when this idea struck me. Since then, the idea has seen a lot of developments in terms of content and idea, which due to their design complexity, were not incorporated in the basic model that I presented above.

Objective in GSoC

What I want to clarify is: This project needs a lot of ground work to be done prior to coding or thinking of algorithms. So far, I have done substantial groundwork on the elementary college level Electrical Engineering, Programming and Data Structures courses and am in a state of making the laboratories on these two courses. Also, I have started ground work on mechanical engineering. If I am to incorporate more number of subjects in the laboratory list, it would involve a lot of ground work, which would lead to use of time without any tangible development on the project. Thus, I want to start off with the thinking of algorithm, coding and structuring the project. Thus, in this GSoC, if selected, I want to achieve these things in the project:
  • Develop the Visualizer for electrical engineering.
  • Develop the Visualizer for programming and data structures.
  • After this, I would take up designing the Visualizer for Mechanical engineering.
Apart from the technicalities, I want to maintain a video log throughout the process of the project so as to assist various other people who will follow same/similar project after me.

Timeline

21st to 31st June:
The project will require a lot of documentation in terms of groundwork, algorithm and layout. I intend to spend the first 10 days (up to May 31st) by planning out the execution of the requirements of the project.
1st to 7th June:
This time will be dedicated to devising algorithms for the visualizer of Electrical Engineering. This will be done step-wise according to the chapters. Making flowcharts and documenting the same will be also a part of this.
8th to 28th June:
Whatever be the status of algorithm, I plan to start coding the electrical part by 8th. As the coding will proceed, I will also continue developing the algorithms for the subsequent chapters.
I wish to run the process of debugging simultaneously with the coding. This will remove the problem of cumbersome debugging at the end of the project.

29th June to 5th July: Buffer and post development work week.
Although, I expect to complete the Electrical visualizer by the aforementioned period, for the sake of practicality, I will keep a buffer week, which will be utilized to complete the visualizer, if required. Otherwise, I wish to develop and remove the loopholes in the project in this week.
The above plan for Electrical visualizer has 35 days for ideal completion.
Similarly, the subsequent part of the project will be divided into two more 35 day segments.
I will similarly employ the second segment of the project in developing the Programming and Data Structures visualizer and the last segment will be utilized for making the Mechanical Engineering visualizer following a similar plan as that of the electrical engineering.

1 comment:

  1. Debugging would go on automatically with coding because of unit testing which would be mandatory in a project as detailed as yours.

    ReplyDelete