HMI Report
Introduction
The HMI Report parses your current solution and gathers information regarding the various elements that populate it. The information provided by this report can allow you to answer several questions regarding your solution. These can include, but are not limited to:
- How many bitmaps are loaded in my solution?
- How many of these bitmaps are actually being used within my solution?
- What is the biggest/smallest bitmap within my solution?
- What controls/widgets/behaviors/texts are contained in my solution, and where are they used?
The HMI report will be presented in the browser as a set of HTML documents. The documents that comprise this report are interlinked and can be navigated by using the navigation bar.
Requirements
To run the HMI reports, certain additional software is necessary, aside from SceneComposer.
Please ensure that you have Python 2.7.X or Python 3.3 or greater in your system's PATH variable, if not already set.
The exact Python version that was used for testing can be found in the Product Release Notes. Also, to check for the exact Python version installed, just run "python" in the command line as seen below:

Any Python dependencies can be resolved by running the provisioning script in bin/Reporting/setup.bat after Python, together with pip, has been installed.
setup.bat
Generating the Report
Upon opening Scene Composer and loading your solution, click ReportsReport within the main toolbar. Select the Create solution report option to display the HMI Report Customization dialog box, in which you can customize several aspects of your report.

Report Output Path is where you will designate the output location offor the HMTL documents. The Styling file will specify where to retrieve the necessary .css file to apply to HTML the documents.
The checkbox grid will allow you to customize which sub-reports are included in your report (see also next section "Report Content").

Report Content
Report
Report Options fill generate the following report pages:
Bitmaps(summary)Bitmaps->bmaps
- Bitmaps(summary): An overview of all the bitmaps within your solution. Contains data on bitmap averages, largest and smallest bitmaps, referenced pixel formats, and the frequency at which said formats are referenced.
Bitmaps Details(detailed):
Used Bitmaps(summary):
Used Bitmaps Details (detailed):
Unused Bitmaps(summary):
Unused Bitmaps Details(detailed):
ContainsFontsandStyles:a table summarizing the following information:Text count
Fully:Controls:The percentage of text fully translated for all cultures. If no additional cultures are present, this parameter will display that 100% of text has been fully translated.
-
- Also includes a list of all controls and how many times each control was used within all available scenes.
ABehaviors:list of the 30 most popular widgets (if available) and the frequency each widget was used in all scenes.Also includes a list of all widgets, indexed by widget name and each scene in which said widget was used.
Widgets: A list of the 30 most popular widgets (if available) and the frequency each widget was used in all scenes.
Also includes a list of all widgets, indexed by widget name and each scene in which said widget was used.
- 2D Scenes: A list of all 2D scenes within the solution. A table will be created for each scene showing the quantity of each of the following elements:
Bitmaps- Bitmaps
- Controls
- Render Nodes
- Text Nodes
- Widgets
-
- Bitmaps
- Controls
- Render Nodes
- Text Nodes
- Widgets
Annotations
- Annotations: A list of all annotations in the scene, for any node whose annotations property is set.
- Rendering: A list of all effects that are used, and how often each effect was used within the
solution.
Report Formats
HTML: Html pages with navigation and basic sorting and filtering will be generated under the selected path in reports_html. The particular sites can be accessed through the navbar.
After selecting the report’s output path, style file, and contents, press the Generate report button to proceed with generating your report. Scene Composer will then generate several .csv files containing the requested information. Note that Scene Composer will be temporarily unavailable while the report is being generated for thread safety reasons.
Once the necessary files have been prepared, Scene Composer will process the data using python scripts and generate the report. If successful, the report will appear in your default browser.
HMI Report Data (CSV)
The CSV files within the output folder’s data subfolder contains data points available for the report:
File Structure
HMI Reporting binaries are located within the Reporting folder of the bin directory (bin/Reporting).
- images - The various icons required to generate the html report.
- js - Utility scripts and other dependencies (i.e. jquery).
- styles - The available CSS files.
templateslogs-– ContainsthelogsHTMLthattemplatesdescribeembeddedpotentialwithinerrors.the data.
doc - Contains a developers guide for the Python pipeline.
scripts - Contains the Python scripts responsible for generating each subreport.
apy.py - Contains several helper functions for computation purposes.
driver.py - Contains the driver logic that generates the report.
setup.bat - Script that install the necessary Python modules (dependencies).
Standard HTML Assets
HMI Reporting assets for HTML pages like css, icons, and js are available under /bin/ HMIReportAssets.
Using the Command Line for Report Generation
To generate HMI reports using the command line, a script named "driver.py" is provided in the bin/Reporting directory.
Usage: driver.py [-h] --reports REPORTS [REPORTS ...] --output_file OUTPUT_FILE --style STYLE

The following parameters are required for report generation:
Parameters
You can define which subreports are added to your report with the --reports option. The argument string is created by attaching the corresponding keywords (see table below) separated with a "#". For example:
2dscenesdetails#widgets#2dscenes#texts#textsdetails#behaviors#bmapsdetails#bmaps#rendering#usedbmapsdetails#usedbmaps

Report Customization
The report will be generated based on data gathered within Scene Composer.
Scene Composer generates a set of .csv files with a fixed format, which are interpreted by python scripts to present that data. These scripts as well as the style sheets can be modified by the user to customize the style of the presentation.
In order to customize the report, knowledge of HTML/CSS/JS, a templating language (for example, Jinja), and Python (specifically, the Pandas Data Analysis tool) will be required.
You can customize your report’s appearance by using your own CSS files. The default styling sheet (default.css) is located in the bin/Reporting/assets/styles folder, and can serve as a template for future modifications.
The report’s structure can also be changed by modifying the document’s HTML template located in the bin/Reporting/assets/templates/html folder. However, knowledge of HTML, Jinja2, and JavaScript is a prerequisite.
You will need to modify the Python scripts to customize the data within your report. While knowledge of Python is required, reference documentation can be found in the bin/Reporting/doc folder.