The now iconic Curve logo started as something of an afterthought. As Michi tends to describe it, the logo is merely βa few lines of Python.β
In fact, you can confirm it yourself if you have matplotlib installed. It clocks in at a svelte 37 lines, including documentation.
import matplotlib.pyplot as plt
import numpy as np
cos = np.cos
sin = np.sin
sqrt = np.sqrt
pi = np.pi
def surf(u, v):
"""
http://paulbourke.net/geometry/klein/
"""
half = (0 <= u) & (u < pi)
r = 4 * (1 - cos(u) / 2)
x = 6 * cos(u) * (1 + sin(u)) + r * cos(v + pi)
x[half] = (6 * cos(u) * (1 + sin(u)) + r * cos(u) * cos(v))[half]
y = 16 * sin(u)
y[half] = (16 * sin(u) + r * sin(u) * cos(v))[half]
z = r * sin(v)
return x, y, z
# Generate points for the Klein bottle
u, v = np.linspace(0, 2 * pi, 40), np.linspace(0, 2 * pi, 40)
ux, vx = np.meshgrid(u, v)
x, y, z = surf(ux, vx)
# Create a 3D plot
fig = plt.figure(figsize=(80, 80))
ax = fig.add_subplot(111, projection="3d")
# Plot the Klein bottle
ax.plot_surface(x, y, z, cmap="jet", edgecolor="black")
plt.show()
DISCLAIMER FOR AMERICAN READERS: we do not know if executing this code is permissible in your country. We always recommend you consult with a lawyer before attempting any mathematics.
We YOLO-ed into running the code anyway and hereβs what it spit out. Not bad!
We cite the ancient history of Curve Financeβs logo to set some context. Curve has always been meticulous on the math and science, but extremely light on marketing. After about a year focused on testing, it was only after the first four $crvUSD pools hit the UI that a logo contest got announced.
Yet again, we see the process of developing a logo serving mostly as an afterthought. When Curve made a request in public for help, it was not a marketing gimmick, but nonetheless has inspired the community.
While weβre flattered that so many people pushed a meme version we hacked together, note that the design Curve is seeking here has to be circular/square and compress nicely to 16x16 px. Hence our pull request has been sitting in purgatory.
Instead, we point to some fan favorites, ordered by likes at time of publication:
Loads more good ideas in the comments. For instance, adhering to the communityβs emphasis on math canβt be a bad choice.
We hope the final logo goes to a talented community member. We also took some cuts at a design, which weβre paywalling because the βCalvin Klein Bottleβ gets a bit too steamy for a family friendly Substack, and more importantly because we are not artistic.