Logo for the JuliaDiff organization?

I like it! I can try to make it prettier

I’m not a fan of shades :-). Here a SVG with an idea and the code for anyone to play with:

image

Summary
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   width="210mm"
   height="297mm"
   viewBox="0 0 210 297"
   version="1.1"
   id="svg5"
   sodipodi:docname="drawing.svg"
   inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:svg="http://www.w3.org/2000/svg">
  <sodipodi:namedview
     id="namedview7"
     pagecolor="#ffffff"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageshadow="2"
     inkscape:pageopacity="0.0"
     inkscape:pagecheckerboard="0"
     inkscape:document-units="mm"
     showgrid="false"
     inkscape:zoom="0.6512193"
     inkscape:cx="323.2398"
     inkscape:cy="260.28098"
     inkscape:window-width="2526"
     inkscape:window-height="1408"
     inkscape:window-x="34"
     inkscape:window-y="0"
     inkscape:window-maximized="1"
     inkscape:current-layer="layer1" />
  <defs
     id="defs2">
    <g
       id="g3996">
      <symbol
         overflow="visible"
         id="symbol9093">
        <path
           style="stroke:none;"
           d=""
           id="path4371" />
      </symbol>
      <symbol
         overflow="visible"
         id="symbol4785">
        <path
           style="stroke:none;"
           d="M 7.78125 -6.59375 C 7.796875 -6.625 7.828125 -6.6875 7.828125 -6.734375 C 7.828125 -6.796875 7.8125 -6.8125 7.59375 -6.8125 L 0.703125 -6.8125 C 0.484375 -6.8125 0.46875 -6.796875 0.46875 -6.734375 C 0.46875 -6.6875 0.5 -6.625 0.515625 -6.59375 L 3.875 0.140625 C 3.953125 0.265625 3.984375 0.328125 4.140625 0.328125 C 4.3125 0.328125 4.34375 0.265625 4.421875 0.140625 Z M 1.703125 -6.09375 L 7.171875 -6.09375 L 4.453125 -0.609375 Z M 1.703125 -6.09375 "
           id="path2740" />
      </symbol>
    </g>
  </defs>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1">
    <g
       inkscape:label=""
       transform="matrix(5.2263378,0,0,5.2263378,-438.7394,-343.43591)"
       id="g838"
       style="fill:#4063d8;fill-opacity:1;stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693">
      <g
         id="g5147"
         style="fill:#4063d8;fill-opacity:1;stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693">
        <g
           style="fill:#4063d8;fill-opacity:1;stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
           id="g6466">
          <g
             id="use209"
             style="fill:#4063d8;fill-opacity:1;stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
             transform="translate(91.925003,81.962997)">
            <path
               style="stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
               d="M 7.78125,-6.59375 C 7.796875,-6.625 7.828125,-6.6875 7.828125,-6.734375 7.828125,-6.796875 7.8125,-6.8125 7.59375,-6.8125 H 0.703125 c -0.21875,0 -0.234375,0.015625 -0.234375,0.078125 0,0.046875 0.03125,0.109375 0.046875,0.140625 L 3.875,0.140625 c 0.078125,0.125 0.109375,0.1875 0.265625,0.1875 0.171875,0 0.203125,-0.0625 0.28125,-0.1875 z m -6.078125,0.5 h 5.46875 l -2.71875,5.484375 z m 0,0"
               id="path32330" />
          </g>
        </g>
      </g>
    </g>
    <circle
       style="fill:#389826;fill-opacity:1;stroke:#000000;stroke-width:1.001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
       id="path1019"
       cx="96.741776"
       cy="59.120014"
       r="9.2048397" />
    <circle
       style="fill:#cb3c33;fill-opacity:1;stroke:#000000;stroke-width:1.001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
       id="circle7460"
       cx="85.435707"
       cy="78.720039"
       r="9.2048397" />
    <circle
       style="fill:#9558b2;fill-opacity:1;stroke:#000000;stroke-width:1.001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
       id="circle7462"
       cx="108.8783"
       cy="78.734283"
       r="9.2048397" />
  </g>
</svg>

Here’s how it looks with Luxor.jl and the official Julia font and logo.
I think we’re starting to converge to something cool?


using Luxor

@draw begin
	background("white")
	translate(150, 0)
	juliacircles(150)
	setfont("TamilMN Bold", 630)
	setcolor(Luxor.julia_blue)
	settext("∇", Point(-600, 290))
end 1000 600

That is elegantly simple.
I kinda like it.

And it says “Differentiate Julia”
which is what we do.

Should we do a version with text for stickers, just saying “JuliaDiff” below?

yes, and one saying JuliaDiff to the right? as a banner sticker?
So we can look at both

I’ll get on that

The font you’re using setfont("TamilMN Bold", 630) doesn’t have the nabla () glyph, so you’re going to be seeing some kind of font fallback working, and these vary a lot from system to system.

On my Mac I see this with your code:

Screenshot 2024-05-01 at 10.06.36

and this isn’t as nice as yours… :slight_smile:

On Mac, “Symbol” will get you this:

Screenshot 2024-05-01 at 10.08.53

but the alignment needs work.

Drawing the triangle the hard way is probably best. :slight_smile:

Here’s what it looks like with the text




@cormullion what do you mean? How do I use Symbol?

using Luxor

function juliadiff_logo(scaling; name_placement=nothing, name_color="black")
	juliacircles(scaling * 100)
	setfont("TamilMN Bold", scaling * 420)
	setcolor(Luxor.julia_blue)
	settext("∇", O + scaling * Point(-410, 200))
	if !isnothing(name_placement)
		setcolor(name_color)
		setfont("TamilMN Bold", scaling * 150)
		if name_placement == :below
			settext("JuliaDiff", O + scaling * Point(-430, 330))
		elseif name_placement == :right
			settext("JuliaDiff", O + scaling * Point(200, 52))
		end
	end
end

@draw begin
	background("white")
	origin(500, 200)
	juliadiff_logo(1; name_placement=:below, name_color="black")
end 800 550

Your code produces this on my Mac:

because fonts are a pain in the neck to work with, particularly on different platforms and OSes… :slight_smile:

I can get the nabla symbol looking closer to yours on mine if I use setfont("Symbol", scaling * 420) but again that’s probably not a cross-platform solution.

I like this a lot, but the kerning between the “D” and the “i” looks off. I parse the text as “Julia D iff”.
Is there a way to tweak the kerning in Luxor?

Haha - there’s a low-level function that can do a bit of kerning.

Kerning code
@draw begin
    background("white")
    origin(500, 200)
    textplace("JuliaDiff", O + (-300, -100), [
        (size=120, face="TamilMN-Bold"), 
    ])
    textplace("JuliaDiff", O + (-300, 0), [
        (size=120, face="TamilMN-Bold"), # J
        (kern=-8,), # u
        (kern=-5,), # l
        (kern=-7,), # i 
        (kern=-6,), # a
        (kern=-10,), # D
        (kern=-12, ), # i
        (kern=-6, ), # f
        (kern=-8, ), # f
    ])
    textplace("JuliaDiff", O + (-300, 100), [
        (size=120, face="Barlow-Bold"), # J
         # f
    ])
end 800 400

but using a better font in the first place is probably easier. :wink:

It’s the official Julia font so I kinda like it?

Question about that: I need two different thicknesses so I have to draw two separate paths, but how can I get the corners to play nicely together? Something like the square linecap here

Might be better as:

@draw begin
    background("white")
    sethue("black")
    setfillrule(:even_odd)
    ngon(O, 100, 3, -π/6, action=:path)
    ngon(O + (10, 0), 70, 3, -π/6, action=:path)
    fillpath()
end 800 400

Screenshot 2024-05-01 at 11.35.32

It’s always better to avoid line thicknesses if you can, because of scaling issues.

Do you need or want it to be drawn with code? Adjusting the details in a SVG is much easier.

I think it’s nice to use ecosystem tools like Luxor.jl, especially cause we get first class support from @cormullion. And because it makes it easier to change things programmatically

Now time for bikeshedding on thicknesses and spacing

One think I like about having stroke lines in the symbols is that the contrast in dark backgrounds can be adjusted:

vs:

True but it feels slightly less “modern”?