🎨

Juliaパッケージのロゴ制作

2023/12/04に公開1

これはJulia Advent Calendar 2023の4日目の記事です。

はじめに

Juliaのパッケージエコシステムの素晴らしさには幾つか理由がありますが、ロゴのデザインの指針が決められていることは幸運だったと思います。

https://twitter.com/termoshtt/status/1641696576677756929

Julia logo graphics

julia-logo-graphicsというJuliaのロゴ関係のグラフィックスを管理しているリポジトリがあります。
このリポジトリのREADMEには以下の画像が用意されており、Juliaパッケージの管理者はロゴ策定の際にこれの色やデザインを参考にすることができます。

  • どんなロゴが良いロゴか?
    • パッケージの動作や目的を反映している
    • Juliaパッケージであることが明示されている
    • 上記2点がシンプルなデザインで実現できている
    • (つまりjulia-logo-colorsの4色でパッケージ動作に沿ったデザインができればOK!)
  • なぜ良いロゴを作りたいのか?
    • 良いロゴがあると気持ちいいから
    • 良いロゴの存在は開発のモチベーション維持に繋がるから
    • 良いロゴの追加は人々に感謝されやすいから

私が関わってきたロゴの紹介

以降の節では私がこれまでに関わってきたロゴ制作について一覧で紹介したいと思います。
本記事が新たなロゴ制作の助けになると嬉しいです。

BasicBSpline.jl

B-splineをJuliaで扱うためのパッケージ。

  • B-spline基底関数をそのままロゴに使う
  • ノット列も描画してlogo.svglogo-dark.svgを用意
  • 色がJulia本体のロゴと同一の順番になるように配置
  • フォントにFuturaを採用してトップ画像も用意

FastGaussQuadrature.jl

Gauss求積をJuliaで扱うためのパッケージ。

  • gausslegendre, gausschebyshev, gaussjacobiの実行結果から円板の中心座標を決定
  • 各円板が接するように半径を決定
  • 単純な重ね合わせではなく、左下と中央で重複順序が異なるように設定

関連: PR#95

Replay.jl

REPLの実行結果を再生するためのJuliaパッケージ。

  • Replayの文字列がREPLを含んでいるので、その4文字にjulia-logo-colorsを適用
  • JuliaのREPLと同様にascii-artで文字を描画
  • フォントにはJuliaMonoを使用

関連: issue#6, PR#7, PR#55

Aqua.jl

  • badgeのためのSVGファイルがあったので、微修正してロゴとして登録。
  • Aquaなので水分子を意図したロゴデザインだった(らしい)

関連: issue#119, PR#126, PR#128

ImageClipboard.jl

Juliaでクリップボード上の画像を扱うためのパッケージ。

  • クリップボード上の画像をロゴで表現
  • フォントにはFuturaを使用してRGBの順で色付け

ElasticSurfaceEmbedding.jl

紙を編んで曲面を作るためのパッケージ。

  • 紙を編む部分をグレースケールで表現
  • 色がうるさくなりすぎないように、紙の端のみをjulia-logo-colorsで着色

Rotations.jl

Juliaで回転行列を扱うためのパッケージ。

  • xyz軸にRGBを採用して右手系のみを扱うことを明示。
  • 背景に行列を表示し、Rotation型がAbstractMatrixの部分型であることを明示。

関連: PR#172

Quaternions.jl

Juliaで四元数を扱うためのパッケージ。

  • 四元数の掛け算のCayleyQ8グラフを参考にデザイン。
  • ただし 1-1 に対応するノードは除く。
  • 色配置はJuliaのロゴと同一に設定。

関連: issue#70, PR#80

IntervalSets.jl

  • julia-logo-colorsの4色に合わせて4つの区間を配置
  • 各区間は [a,b], [a,b), (a,b], (a,b) の4種類の開閉に対応
    • \textcolor{#4063D8}{I_1} : OpenInterval
    • \textcolor{#389826}{I_2} : ClosedInterval
    • \textcolor{#9558B2}{I_3} : Interval{:closed, :open}
    • \textcolor{#CB3C33}{I_4} : Interval{:open, :closed}
  • 中心付近がJuliaロゴになるように配置
  • \textcolor{#4063D8}{I_1} \cap \textcolor{#389826}{I_2} = \textcolor{#CB3C33}{I_4} のような集合演算をサポートすることを暗示

関連: PR#165

おわりに

かっこいいロゴを追加してかっこいいドキュメントを作ろう!

GitHubで編集を提案

Discussion