Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scripted Logo Generation #3764

Closed
wants to merge 17 commits into from

Conversation

trexfeathers
Copy link
Contributor

@trexfeathers trexfeathers commented Jul 28, 2020

Something I've been working on in my spare time for fun (don't judge)... This PR proposes generating Iris' logos via a script, rather than holding fixed image files in the repository. I appreciate integrating this will be a lower priority given our current projects.

For an idea of what the script can generate: see the comment below or run the script yourself 🙂

Advantages over existing method

  1. No reliance on fixed files that are created using un-traceable methods (typically via a GUI graphics program)

  2. Script is fully visible to version control

  3. Image configuration easily adjustable (colours, transparency, gradients etc.)
    Iris' logo is made from relatively few elements with mostly simple configurations

  4. Title image includes parameterised text - particularly useful if we continue to modularise Iris and need an matching title logo for each package

  5. SVG format renders crisply at any resolution
    Also doesn't blur in PDF's, unlike rasters (even high def ones)

  6. SVG format means very small generated file sizes (<30kB)

  7. Pythonic, in line with the rest of Iris' code

  8. Don't need to hold multiple versions of the same image - all generated by a single script

Rotation

The script also generates a zip archive of rotated-earth images, and a README, that can be used to generate a rotating GIF logo - useful for publicity (e.g. see this tweet). (Experiments were tried with animated SVG but those are not really designed for frame-based animation and caused high CPU demand.)

To do

I've got as far as I can solo. Should we proceed with this, here is what I would need help with:

  • Adjust image configuration to match existing logo.
    I did my best to reverse engineer from Iris7_1_trim_full.png, but a few things are a bit off since I didn't have access to the original Inkscape file (see advantage number 1). I believe @abooton has the original file for the current logo?
  • Integrate generate_logo.py into the docs build as a Sphinx extension. I would need @tkknight's help to understand and achieve this.
  • If above integration is successful:

@trexfeathers
Copy link
Contributor Author

Examples

iris-logo.svg
iris-logo-title.svg
iris_grib-logo-title.svg

@trexfeathers
Copy link
Contributor Author

This is now ready for review, whenever there is time. It should ideally have @abooton 's review for content, and @tkknight 's review for sphinx integration.

Proposal (left) compared to current logo (right)

  • Coastlines simplified (generate_logo.py#L103), but no longer smoothed.
    This is due to the difficulty of smoothing/rounding using the script, but personally I like the blocky coastlines.
  • Globe is now fully round.
    I'm told the current distortion is a mistake (rather than an attempt to simulate Earth's oblate-spheroidal shape!).
  • Globe is no longer tilted anti-clockwise.
    I assumed this was a mistake, but happy to be corrected.

iris-logo.svg Iris7_1_trim_full.png

@trexfeathers trexfeathers marked this pull request as ready for review August 25, 2020 06:26
@tkknight
Copy link
Contributor

I suggest updating your branch as there have been a few documentation related changes merged to master since youre branch was created, including conf.py

@trexfeathers
Copy link
Contributor Author

I suggest updating your branch as there have been a few documentation related changes merged to master since youre branch was created, including conf.py

@abooton what are your feelings on me rebasing? There's a lot of useful content in this PR so I'd be reluctant to create a new one just to get the latest changes, especially since the new PR might also stay un-merged for a week or two (during which time master will change some more).

@trexfeathers
Copy link
Contributor Author

I suggest updating your branch as there have been a few documentation related changes merged to master since youre branch was created, including conf.py

@tkknight done

@trexfeathers
Copy link
Contributor Author

A "What's New" entry will be provided in a separate PR once this one is approved.

@trexfeathers
Copy link
Contributor Author

Closing, since this is non-essential and there is limited interest

@trexfeathers trexfeathers deleted the program_logo2 branch October 12, 2022 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants