Skip to main content

An Inkscape extension with allows to create and modify hand postures and representations of hand microgestures with or without the associated commands. This work has been initiated for the experiences presented in the paper 'Studying the Simultaneous Representations of Microgestures' published by MobileHCI 2024.

Project description

microrep

Project Settings screenshot Project Settings screenshot

A Python Package to Create Representation of Microgestures

Vincent Lambert1 · Alix Goguey1 · Sylvain Malacria2 · Laurence Nigay1
1Université Grenoble Alpes 2Université Lille - INRIA


General Information - Home Page


This package is made of 6 subpackages that allows you to batch export and modify representations of microgestures. You can create a large number of representations and find the designs that best matches your needs or quickly create representations and iterate on them for research purposes.

Each subpackage can be used in a Command Line Interface (CLI), in Python scripts or even directly in Inkscape (tested with Inkscape v1.2.0, see the Inkscape installation steps :art:).

Main Concepts

This package is based on a few main concepts:

  • Microgestures are quick and subtle finger movements that do not involve the wrist nor the arm. In this package, we focus on three microgestures: tap, swipe and hold.
  • Representations visually explain how to perform microgestures by showing the moving finger, i.e. the actuator, the target, i.e. the receiver, and the trajectory of the microgesture. There are two types of representations:
    • Single-picture representations of microgestures describe illustrations that shows one microgesture per hand shape. Multiple single-picture representations are typically used to illustrate a set of microgestures.
    • Simultaneous representations of microgestures describe illustrations that shows multiple microgestures on the same hand shape.
  • Families describe the consistent set of visual cues used to shape the representations of each microgesture. You can use the mgrep-family-layer and the mgrep-path-element attributes to attribute your own visual cues to the available microgestures.
  • Markers define the key points of the representations. They are used to define the position of the visual cues defined by the families for the different microgestures. You can use the mgrep-marker attribute to define the markers. It accepts a value with the shape [finger],[microgesture],[characteristic],[markerType]. [finger] can be one of thumb, index, middle, ring or pinky. {microgesture] can be one of tap, swipe or hold. [characteristic] can be one of nail, tip or middle, base, up, down, left, right. [markerType] can be one of actuator, receiver, traj-start, traj-end.

The file initial.svg is an example of a base file that can be used as a starting point (with the export_hand_poses :raised_hand: subpackage). If you inspect it, you will find that it is structured and annotated according to these concepts.. For more details, please refer to the detailed documentation of each subpackage

Documentation for each subpackage

:bookmark_tabs: Export Hand Poses :raised_hand:    Export different hand poses from a base file (see initial.svg).

:bookmark_tabs: Create Representations :cyclone:    Create one or multiple representations based on a previously exported hand pose (see the export_hand_poses :raised_hand: subpackage).

:bookmark_tabs: Map Commands :game_die:    Create one or multiple command mappings for an existing representation of microgestures (see the create_representations :cyclone: subpackage).

Optional subpackages

This package also includes 3 optional subpackages that were developped for experiment purposes (see experiment 1 and experiment 2).

:bookmark_tabs: Add Enhancement    Create modified versions, of a given representation, e.g. changed colors or shrunken visual cues (optional step after the create_representations :cyclone: subpackage).

:bookmark_tabs: Add Legend    Add a legend to the copy of a given representation (optional step after the create_representations :cyclone: subpackage).

:bookmark_tabs: Add Overlap Adaptation    Modifies the copy of a given representation to make sure the commands do not overlap when working on representations using both the tap and the hold microgestures (optional step after the create_representations :cyclone: subpackage).

Installation

You can install the microrep package by simply running python3 -m pip install microrep in a terminal. Pip should automatically install the required dependencies. If not, please check the main dependencies of this package with the list below :

  • inkex
  • lxml
  • shapely
  • svg.path

If during your installation another module is missing, please check your local distribution before warning us for a missing module in this list.

In case you want to build the module locally, you can run python3 -m build in the root folder of the project. This will create a .tar.gz file in the dist folder that you can install with python3 -m pip install dist/microrep-{version}.tar.gz.

Credits

This microrep package was developed using Nikolai Shkurkin's extension export-layers-combo (https://github.com/nshkurkin/inkscape-export-layer-combos) as a base.

License

Except for the cairosvgmg folder (tests/experiment_help_interface/cairosvgmg), which is a copy of the cairosvg library, this project is licensed under the MIT License. The cairosvgmg folder contains the source code of the cairosvg library, which is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0). You can find its full license text in the cairosvgmg/LICENSE file.

The MIT License of this project as a whole can be found at the root folder of the project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

microrep-1.0.0.tar.gz (2.0 MB view details)

Uploaded Source

File details

Details for the file microrep-1.0.0.tar.gz.

File metadata

  • Download URL: microrep-1.0.0.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for microrep-1.0.0.tar.gz
Algorithm Hash digest
SHA256 45930675acfdf67febcb36fe32eef3c842d5a755a3d5f26f49345883ed88e4da
MD5 1ae154b3d48b803867fa8375374fc613
BLAKE2b-256 42fedcda7795780d364cb4fdb6fb883e2fc9dfb3d58ad0a59be171db5bb48d10

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page