Hugin Speed Test Tab
Hugin Speed Test Tab
Generally performance is the key issue for any panorama stitcher and manipulation software like Hugin. Also these days end user computational platforms are shifting towards tablet PCs, pads and smart phones etc. With advancement of these technologies, today, we have very diverse hardware and software specifications. In order to chose right hardware for Hugin one needs to know the performance per different hardware (with different operating systems installed).
In order to know the performance of Hugin, one possible solution (as quoted on launchpad.net) would be to create a system that will offer “Speed Test” tab on Hugin’s GUI. This system should automatically download the batch set of images and .pto files from server and should do automated stitching tests. On successfully completion of these local tests it should upload the test results with determined hardware platform, Operating System, running process finger-printing , Hugin client identification (including MAC address, public IP, time-stamp etc). Then server should do analysis in detail of all the uploaded data by Hugin clients. Finally consolidated performance reports will be generated using Web-UI which will help entire community or users to choose right hardware.
Proof Of Concept (POC) system diagram
A. Hugin Speed Test - Brief class diagram 
Per shown in class diagram, proposed system is divided into two parts namely client side Hugin speed tester and server side Hugin test results (Web). At client side, Hugin will execute tasks given by server. This task need not be same for all clients. Tasks fetched might be small, medium or large one. For example machine which has limited computation resource should not be asked to stitch batch of 20 high resolution images with size more than 20 MB per image etc. Client will be doing self screening test before fetching either small, medium or large task. Vice-versa will be applicable for clients with high computation resource. Upon completion of task(s) clients will send results to server in XML event response if there is any Internet connectivity.
On server side, multi-threaded server will parse this response and will log into database per client identification. These row data will be processed by server side analytic engine to generate reports which will help community or users to choose best hardware. These reports might help for benchmarking Hugin on different platform.
B. Hugin Speed Test - Brief sequence diagram 
Sequence diagram shows clear flow of activities across proposed system.
==Programming languages and skills needed== C, C++, PHP, XML (library for XML parser), Bash or Shell scripting, HTML, Ajax (basic), Mysql (library api in C).