Want to learn more about ingimp? In this section, we provide the motivation for creating ingimp, what it can tell us, and what you should know about your privacy.
Who uses GIMP? What do they use it for? What size images do they work on? How many layers do they have in their images? What tools do they use? How frequently do they use the software?
These are all important questions to consider during design. However, precise answers to these questions are generally unknown for the GIMP. While usability studies of the GIMP exist, and mailing lists and bug tracking software host ongoing discussions regarding the GIMP's design, it is difficult to characterize how the GIMP is actually used in the real world, on a day-to-day basis.
ingimp is an instrumented version of the GIMP designed to gather this information, with minimal effort required. Just use ingimp as you would the normal version of GIMP and it will automatically collect information about how you use it -- the commands you use, characteristics of your documents (number of layers, image width/height, etc.), and so on. When you quit the application, your usage data is sent to this website where it is publicly available for anyone to analyze.
ingimp is part of human-computer interaction (HCI) research at the University of Waterloo investigating new forms of sustainable open usability. In particular, our goal is to research new tools that assist open source projects in their efforts to make more usable software, without creating significant new overhead to end-users, developers, or other project members.
Collecting usage data is only one part of ingimp. We provide a number of analyses of the data in our Community Interaction Mirrors. A Community Interaction Mirror is a dynamic mirror of the community's software usage. In essence, it shows the "heartbeat" of GIMP users worldwide -- how the software is put to use on a day-to-day basis in the real world.
ingimp can provide answers to a number of questions, including:
There are many more ways we can characterize ingimp's use via the data it collects. Go to Stats to see more.
ingimp automatically logs three types of information: command use, document characteristics, and interaction data.
ingimp records the names of commands used (e.g., "Paintbrush"), but not their parameters. For example, ingimp records when you use the text tool, but not the text you use. Similarly, it records that you use the Paintbrush, but not the colors used nor where you paint. It also records the names of scripts, so if you have custom scripts you have created, their names will be recorded for anyone to see.
Commands provide a picture of what you are doing, but don't tell us anything about the nature of documents on which you are working. Thus, ingimp logs general descriptions of the documents edited: Their size, number of layers, image histograms, and so on. These data give an indication of whether people generally work on large or small images, complex or simple images, and photographic images or graphic illustrations.
Finally, ingimp logs interaction data, or information regarding how you use the application in general. ingimp records keyboard and mouse activity, but not the actual keys or mouse location. That's worth repeating: ingimp does not record what keys are pressed nor where clicks, drags, or pointer movements happen when using a pointing device like a mouse or stylus. ingimp also records the sizes and locations of windows, when they gain "focus" (i.e., when they are in the front), the platform you use it on (e.g., Windows or Linux), the size(s) of your monitor(s), among other data.
For a more complete list of data collected, please see the consent agreement.
ingimp automatically collects usability data, but only after getting your permission to do so. Because all data collected by ingimp is made publicly available on this website, you should be aware of what data are collected and implications for your privacy. Additionally, please make sure to read the consent agreement when you run ingimp for the first time.
We have designed ingimp to collect data useful to usability analyses, without intentionally collecting any personal information. For example, ingimp does not record the actual keys pressed, just when they are pressed, along with any modifier keys used (i.e., Shift, Alt, and Control). Furthermore, ingimp does not record command parameters (for example, it doesn't record the text you enter into the text tool) nor does it transmit the actual images on which you work.
We have taken a number of measures to make data collection process transparent. First, you can temporarily disable logging for any individual run of ingimp by checking the "Disable application usage logging for this run" checkbox at start-up. Note that you must do this every time you wish to disable logging.
Check the above box every time you wish to disable logging
Second, ingimp logs its data to human-readable XML files. For example, here are the log snippets corresponding to someone typing "ingimp" into the text tool's text editor:
<LogEntry entry_num="581" event_date="2007_05_03_11_52_55"
elapsed_time_usec="1140515625.000000">
<WindowKeyEvent window_name="GIMP Text Editor" window_role="gimp-text-editor"
event_type="9" modifier_state="0"/>
</LogEntry>
<LogEntry entry_num="583" event_date="2007_05_03_11_52_55"
elapsed_time_usec="1140656250.000000">
<WindowKeyEvent window_name="GIMP Text Editor" window_role="gimp-text-editor"
event_type="9" modifier_state="0"/>
</LogEntry>
<LogEntry entry_num="584" event_date="2007_05_03_11_52_55"
elapsed_time_usec="1140812500.000000">
<WindowKeyEvent window_name="GIMP Text Editor" window_role="gimp-text-editor"
event_type="9" modifier_state="0"/>
</LogEntry>
<LogEntry entry_num="585" event_date="2007_05_03_11_52_56"
elapsed_time_usec="1141234375.000000">
<WindowKeyEvent window_name="GIMP Text Editor" window_role="gimp-text-editor"
event_type="9" modifier_state="0"/>
</LogEntry>
<LogEntry entry_num="586" event_date="2007_05_03_11_52_56"
elapsed_time_usec="1141375000.000000">
<WindowKeyEvent window_name="GIMP Text Editor" window_role="gimp-text-editor"
event_type="9" modifier_state="0"/>
</LogEntry>
<LogEntry entry_num="587" event_date="2007_05_03_11_52_56"
elapsed_time_usec="1141531250.000000">
<WindowKeyEvent window_name="GIMP Text Editor" window_role="gimp-text-editor"
event_type="9" modifier_state="0"/>
</LogEntry>
Note that the log shows 6 keyboard events, but none of the actual keys are logged. (Entry number 582, the undo event, is not shown above.) A more complete log file can be found here: sample_log.xml.
Finally, since it is open source, you have the additional peace of mind that you can directly inspect all of the changes we have made to the GIMP within ingimp. For example, check out the patch in Downloads to see exactly how ingimp differs from the stock distribution.
At present, there are a few ways that potentially personal information could inadvertently be collected by ingimp:
If you create your own custom scripts, your script names will be recorded because all command names are recorded. Thus, if you named your script "john_smiths_acme_script", that script name would be recorded whenever you used it
When you first start ingimp, you have the opportunity to enter "activity tags" (free-form descriptions of how you plan on using the software -- see figure below). These are purely optional. You are free to enter any text in the activity tag field, but should remember that these tags will be available for anyone to see in your log file. Thus, if you enter, "Removing Aunt Edna from John Smith's family photo" in the Activity tags field, this text will be available for anyone to read in the uploaded log files

Any text added to the "Activity tags" field is recorded in the log file
If you have any additional questions about what data is collected, feel free to send us an email at ingimp@cs.uwaterloo.ca.