Mehran Hoodeh, Work Experience
  Fields of Work  
Any software mentioned below has been fully explained in the "Developed Softwares" section.
    - Windows, Web-based & Internet-Enabled Apps

According to the requirements, I have developed several softwares each of which in the
required platform; some pure Windows Apps, others used as a Web App while the rest somewhere in the middle, as Internet-Enabled Apps. 
    - C, C++ and C# Languages

C-family languages have always been of my interest. All my softwares have been developed with one of the C-family-member languages depending on the time of development.

Date Language IDE
1991-1996 C Turbo C
1994-2006 C++ Borland C++, Visual Studio
2006 to present C# Visual Studio

    - 2D & 3D Graphics

 3D Graphs Master
3D Hall (Tallar)
Computer Graphics is my major interest in the computer programming field. Actually, the pleasure of visualization of a set of data done by the Graphic Algorithms is nothing that can be simply substituted.

I started graphics programming with Basic language first in 1989 on a Sinclair ZX81 and then in 1991 on a 80286 PC, drawing lines, circles, then improved to drawing mathematical functions both on XY axis and after a while on a 3D XYZ environment.

My first serious graphics program was out in 1994 which could draw any mathematical function you defined. It was called "3D Graphs Master." You could define the mathematical function in a text-typing environment, give it the desired range and when drawn, you could zoom into it, pan it or even rotate it if in 3D.

After that, I tried to add 3D Graphics Rendering capability to my graphics programs, which finally resulted in a 3DStudio-like software, in 1996, and I called it "3D Hall" (or Tallar in Persian.) In this software you could define a 3D scene by determining the objects, their position, the material of their surface, lightening positions, etc. This software could then render the whole scene in 3D like what 3D-Max or other 3D Graphics softwares do.

This was completed in the final years of my BSc. After university, I had to do a Compulsory National Service. At that time, I was chosen to work in the Army. It was there where I became familiar with popular GIS softwares like ArcView, Caris, SmallWorld, MapInfo, etc. alongside with some Remote Sensing and Image Processing softwares like IDRISI, PCI Geomatica, ER Mapper and so on.

Because of my previous experiences in Computer Graphics, I suggested the bureau I was doing my service in to develop a GIS software and it was accepted. So, I was trained on what the above mentioned softwares did in order to develop a similar one. (I didn't practically work with those softwares; in fact, just a presentation of them and a training on GIS and Remote Sensing principals sufficed.)

In the next 16 months, we created a software in which 2D Vector Maps including Contour-Lines could be imported from AutoCAD DXF format (which were manually digitized) and the 3D Terrain Model was generated by the software I developed to be used as the basis of 3D Viewing and 3D Analysis that I will describe below. I called this software "Martial Assistant" and after finishing my national service it was awarded by the Army and became the basis of a work proposal from ISIRAN Co. which is the biggest computer company in Iran and is a part of the Ministry of Defence.
    - GIS (Geographic Information Systems)

In 1999, I started my work in ISIRAN Co. and in 2 years we could manage to develop the first 3D GIS software in Iran which was then called mGIS. At that time, there existed other Iranian GIS softwares mostly focused only on 2D Maps with different vector layers while having a connection to a database for querying on objects on the map. But, mGIS was the first of its own to have full 3D capabilities alongside with Satellite Image Processing functionalities as described below. After that, it was continuously developed until 2005 and a few sub-systems were added to it. In 2005, it became a complete 3D GIS software which could replace a lot of other softwares in many places, because of its simplicity, security and targeted functionalities.

  - 3D Modeling & Analysis

mGIS is capable of 3D Modeling of the terrain with natural features on it like woodlands, lakes, etc.

It can also do some 3D Analysis on the model including:
- Distance calculations
- Volume calculations
- Path Finding
- Viewshed
- Height Zoning
- Slope Zoning
- Shooting
- Watershed
- Radar (waves propagation analysis)
- etc.

    - Image Processing

On the other hand, mGIS is also involved with displaying different types of Satellite Images to be combined with vector layers and/or to be draped on the 3D models.

Being involved with reading and displaying such images, we decided to add some Image Processing capabilities to the software, too. These capabilities include:

- Image Rectification: with standard algorithms
- Image Rectification: with visual algorithm (my innovation)
- Image Classification
- Image Filtering
- Combination of different Satellite Image Bands to generate a colorful image
- Data Fusion: Merging Satellite Images of different resolutions 
- Merging Satellite Image with scanned maps (with a simple tool) for building most possible enriched Raster layer
- Change Detection, with an innovative idea: Morphing between the two images
- etc.
    - Simulation

War Atlas
War Game
One of the most wanted, useful and interesting application as a sub-system in all GIS softwares is Flight Simulation and flight-through over the 3D Terrain model enriched with a Satellite Image and other 3D objects on it.
We created HeliFly at the time of developing mGIS for this purpose. In this software, you can load any workspace already created in mGIS and do a flight-through over the 3D model, simulating fog, collision and so on.
On the other hand, you can draw a 3D airline in mGIS environment and generate a flight animation over the airline for future playbacks.

One of the other requirements at that time was to create animation of the military actions for training purposes. This was used to be done in softwares such as 3ds Max, Maya, Poser, etc. But, the problem with such softwares were:
- the cost of each animation,
- the time consumed to create one, and more importantly
- the cost of editing a part of scenario.
So, I thought that could be very useful if mGIS had a sub-system for creating such animations.
Based on the idea that making an animation in above named softwares need a lot of knowledge and training, I developed the "War Atlas" sub-system which could graphically simulate a military action whose interesting part (which was an innovation at that time) is that the whole story (scenario) of the action is just typed and the Language Interpreter that I developed at that time could parse the whole text, find syntax and semantic errors of the text and when fixed, the animation of the action is instantly generated. It then enables you to move (fly) in the 3D model and watch the animation from any point you wish. This was actually another major difference from the animations created by the other softwares in which the camera point is defined at the design time and the view-point cannot be changed while animation (movie) is being played back. In fact, what those softwares create is a fixed movie. But, with the animation that WarAtlas creates, the user can move (fly) to any part of the battle field and look at any object he wishes; or start it over again and this time to go to another location and watch other objects doing the action. It is also possible to slide the animation forward or backward like a normal movie player.

Another requirement which I felt could complete the set of mGIS sub-systems at that time was War Simulation or WarGame application. The main purpose of simulating a war (or a military action) is to reduce the cost of the action either in lives or in equipments. To do so, there have been developed and utilized many mathematical methods and statistical data sometimes alongside with mechanical machines in the past 70 years by which an action scenario can be tested and ranked before practically being carried out in the battle field. The WarGame sub-system of mGIS is a networked software in which the participants (commanders) could play their pre-defined roles and a referee (another node in the network watching all events) could finally rank the scenario or the players. The execution of the action could be done either over a 2D or in a 3D environment including the set of units defined in the action while users can select them and command them to do some actions, affecting the opposite party and its units/forces. A unit or object in the WarGame can be a company, a battalion, a regiment, a helicopter, an aircraft, an artillery and so on, each of which having their own set of commands.
    - Script Parsers

3D Graphs Master
mPL in mGIS
War Atlas
(MEHRANN is "Mega-Edged Highly Reusable Artificial Neural Network")

In some of my softwares I needed to parse a text as an input to a process. To do so, I have created many parsers that fit into the requirements of the application. Each parser/interpreter has its own Grammar. These interpreters include:

1- 3D Graphs Master: User can give the mathematical function and the software draws it in a 2D or 3D environment.

2- mPL in mGIS: mPL is "mGIS Programming Language." User could write a program in mGIS and run it inside the mGIS software. This is very similar to what you can do with VBA in EXCEL or with Python in ESRI products. With mPL IDE, the user can load a workspace, pan map to a location, zoom into map, rotate the 3D model (change camera point), draw graphical shapes, etc. The language supports for-loops, do-whiles, conditional expressions, etc. Besides, writing to and reading from files are supported both in text and binary formats. There are many other abilities in mPL which makes it a great part of this GIS software by which users can extend their mGIS to do a lot of other things than just those built-in ones. Each program written in mPL can then become a menu item in mGIS.

3- War Atlas: The user can tell the story (scenario) of an action in Persian language. (This can also be simply extended to other languages, too.) The system reads the text, finds the syntax and semantic errors, and when fixed and matched to the grammar, the software starts animating the action.

4- MPE (or MEHRANN Programming Environment) is an IDE which was developed mostly for programming Neural Networks and comes with a programming language and a programming environment. I developed MPE during my MSc for creating, designing, training and testing Back-propagation Neural Networks. In this environment, one can define the layers and the edges, give it the training set, start training it and graphically see the RMS error until it reaches the desired level; and, when trained, it can be saved and used with the future incoming (un-seen) data. The scripting in this environment and its grammar is very simple; mostly a combination of Basic and C++ languages.
    - Artificial Intelligence

(MEHRANN is "Mega-Edged Highly Reusable Artificial Neural Network")

My MSc dissertation was on Feed-Forward Back-propagation Neural Networks. This was a great chance for me to bring all what I had already studied on Neural Networks into practice. The project was to recognize the state of the mouth from within an image and to find out if the mouth is closed, open or semi-open. On this project I created a software to do the task.
    - Internet-Enabled Apps


( IWS is Integrated Web-Sites.)

After I started my job in Viraman, Touchin and ArvinMetals companies in 2006, I was requested to create softwares for inter-communications of the staffs in all companies all around the world in the countries in which the investor company had offices. The main idea of this type of communications and work follow up was first initiated by our boss, the owner of the companies in Spain, Dubai, Iran, and some offices in China, Russia and South Korea. For this, we started creating some web-sites for the communications of the staffs and follow up of the works based on the initial ideas of our boss.
After a while the web-sites grew in number and keeping the website addresses in mind or as bookmarks in browsers could bother the users. So, we started developing an Internet-Enabled software which integrated all web-sites under one single application and we called it IWS (Integrated Websites.)
This software allows the staff to log into the network of the staffs and see who is online, do chat with online staffs or send chats to offline ones, open the web-sites without the need to enter username and password each time again, download required softwares, see the local times in the connected countries, find holidays and working days in the related countries, get the weather in the related cities, write daily working report which are automatically emailed to the managers every evening, connect to the Google Translate, etc.
    - Accounting & Financial Apps

 Fractal Accounting

In the late 2008, I was requested to create a web-based Accounting software in order to be used by all companies as their standard accounting system. So, we started with one of the small-sized companies in Dubai, and in mid-2010 they started practically using it. They entered their opening balances, inventories and started recording the rest of data such as purchase, sales, productions, payments, receipts, etc. At the end of 2010, the Financial Year was closed by the software and the new Financial Year 2011 was automatically created and they have been using it since then.
After that, this software has been under a continuous development and has been currently installed for 5 more places since 2011 and is under use. The software has the standard abilities an accounting software should have.

Also, in 2017, Fractal Accounting was requested to be deployed for another company in Dubai, UAE. In 4 months, being beside the users in there to have their opinions, know their requirements and routines, all new functionalies were added to it. Then, again in December 2018, a newly stablished company in Sharjah, UAE, requested to have Fractal Accounting as their financial software.

Fractal Accounting is a web-based application and is currently used among more than 50 users in different companies in their different departments like management, stock, production, sales and accounting.