inkwork / gs-proposal

Apache License 2.0
1 stars 1 forks source link

Visuals for Glyph Development Phase and Glyph Set Design Work Completion #3

Open chrissimpkins opened 5 years ago

chrissimpkins commented 5 years ago

Goal

Use designer-specified glyph color highlighting metadata or free text metadata (or both!) stored in UFO / glyphs source by GUI editors to automate visualization of Unicode code point design/development work stage and proportion of glyphs that have reached the final design stage across a known final character set target.

The ideal approach:

  1. presents a simple, easily interpreted summary data visualization, ideally without the need for free text data
  2. is flexible and supports existing designer workflows
  3. is font editor-independent (could be an issue because I suspect that these data are going to be in lib data fields that are filed under editor-specific namespaces) or at least able to be customized so that it will support commonly used font editors' metadata storage approaches
  4. supports UFO and *.glyphs source files
  5. provides data summaries that are useful to design teams during project work
  6. provides data summaries that are useful to other typeface development stakeholders during project work

Data Needs

Level of glyph development granularity can be relatively minimal:

or can be much more granular if this is helpful. For example:

Will need to create an approach to define the full final character set in order to create the expected for O:E ratios that display overall work completion.

Visualization Options

Possible dataviz options:

Implementation Details/Research

  1. How to pull glyph by layer specific color data out of *.glyphs source files
  2. How to pull glyph by layer specific color data out of UFO source files
  3. How to pull glyph by layer specific free text data out of UFO source files (is this also supported in glyphs source/with glyphs editor as it is with Robofont + UFO source?)
  4. How to render desired visual(s) with Plotly Python library? Need a different dataviz library to support the desired visual(s)?
  5. Can we support custom designer-specified labeling approach (e.g., custom colors by project team, custom text field labels by project team, etc.)

Open for comment!

cc: @Colophon-Foundry @jeremiehornus @kalapi @gunnarvilhjalmsson - please feel free to share with anyone on your teams who take part in the design work and might have an interest in providing feedback. This thread is open for comments/criticisms/feedback from anyone. And the repository is open for new issue reports with any reporting / dataviz ideas that you have for the new reporting tools.

cc: @davelab6

chrissimpkins commented 5 years ago

Grid heatmap mock with Plotly library:

https://plot.ly/~chrissimpkins/3/

39q3d-image
alexeiva commented 5 years ago

Scatter plot with heatmap color scheme for phase of work across Unicode code point range. X axis could be Unicode code point value, unclear what Y axis might represent

The Y axis might represent the number of times the glyph has been changed, i.e. touches.

Will unencoded glyphs be supported, like u.ss03?

chrissimpkins commented 5 years ago

The Y axis might represent the number of times the glyph has been changed, i.e. touches.

Good suggestion! I am not aware that this information is stored in the source. We would have to pull it from git VC in some fashion maybe?

Here is how I am currently implementing the state of glyph completion -> Python object data pulls with glyphsLib: https://github.com/inkwork/gs-proposal/blob/master/src/python/glyphs-color-pull.py and I imagine these data being used to generate the heatmap figure. Currently have glyph name, glyph Unicode hex, glyph color that is assigned by the designer in the editor.

Will unencoded glyphs be supported, like u.ss03

I will need to check whether stylistic sets and other non-Unicode encoded positions are pulled with the above approach. I think that they should be. I have some test glyphs source and will add some ssXX glyphs to confirm!

Also, the work on this is now taking place over in https://github.com/inkwork/fb-reporter. I am trying to define (1) metrics; (2) analyses; (3) data visuals; (3) processes that are used in type development workflows to build a library that can be used through jupyter notebooks and likely independent of notebooks (e.g., to write an image like the heatmap above to disk or return the binary data for the image for other use cases). Would greatly appreciate any other feedback that you have!