Skip to content
View inecik's full-sized avatar
🦦
🦦

Organizations

@theislab

Block or report inecik

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
inecik/README.md

Kemal İnecik, written by 300 rotating circles

kemalinecik.com  ·  scholar  ·  bluesky  ·  x  ·  linkedin


The outline of each word is one closed curve $z(t)$ in the complex plane, $t \in [0, 1)$. Sample it at $n = 2048$ points and take its discrete Fourier transform:

$$c_k = \frac{1}{n} \sum_{j=0}^{n-1} z_j , e^{-2\pi i k j / n}$$

Each coefficient is a circle with radius $\lvert c_k \rvert$ and starting angle $\arg c_k$, turning $k$ times per lap. Keep the 150 largest, chain them tip to tail with the largest first, and the last tip walks the outline:

$$z(t) \approx c_0 + \sum_{k \in K} c_k , e^{2\pi i k t}$$

There are two machines, one per word, and they run on the same clock. The jumps between letters are part of the curve but are never inked. There is no JavaScript: it's SMIL animation inside a static SVG, generated by assets/fourier.py.

Pinned Loading

  1. theislab/cellucid theislab/cellucid Public

    See every cell. Query any gene. Fly through millions, right in your browser.

    JavaScript 8

  2. theislab/idtrack theislab/idtrack Public

    Time- and Namespace-Aware Identifier Harmonization for Reproducible Workflows

    Jupyter Notebook 12 1

  3. theislab/tardis theislab/tardis Public

    Jupyter Notebook 3 1

  4. theislab/chimera theislab/chimera Public

    Cross-species scRNA-seq integration with learnable per-gene evolutionary gating

    Jupyter Notebook 2