Move renox-as-planet into self-contained versions/blue
Each design version now carries its own package.json, lockfile, script, README and rendered files, so versions can be built and changed independently. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@@ -1,21 +1,14 @@
|
|||||||
# Planet Renox logos
|
# Planet Renox logos
|
||||||
|
|
||||||
Logo designs for Planet Renox, written as code. Each design sits in its own folder under `designs/` and writes its SVG and PNG files next to its script.
|
Logo designs for Planet Renox, written as code. Every version is self-contained in `designs/<design>/versions/<version>/`, with its own `package.json`, script and rendered files. To build one, open its folder and run:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
bun install
|
bun install
|
||||||
bun run build
|
bun run build
|
||||||
```
|
```
|
||||||
|
|
||||||
## designs/renox-as-planet
|
## renox-as-planet
|
||||||
|
|
||||||

|
| version | |
|
||||||
|
|
||||||
The word **Renox** is the planet. The script uses [opentype.js](https://github.com/opentypejs/opentype.js) to turn the word, set in Unbounded Black, into vector outlines, and splits every curve into many short segments. It then wraps each point around a 3D sphere with an orthographic projection. That way the letters curve over the globe and get squeezed toward its edges like real continents. Stacked shells raise the letters off the surface, and gradients light the whole planet from one light source. Clouds, an ice cap, an atmosphere glow, a few islands, a ring and a moon finish it off. [resvg](https://github.com/thx/resvg-js) renders the PNGs.
|
|
||||||
|
|
||||||
| file | what |
|
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| `logo.svg` / `logo.png` | on a deep-space background |
|
| [blue](designs/renox-as-planet/versions/blue) | <img src="designs/renox-as-planet/versions/blue/logo.png" width="320" alt="Renox as a planet, blue"> |
|
||||||
| `logo-transparent.svg` / `logo-transparent.png` | planet only, transparent background |
|
|
||||||
|
|
||||||
The settings at the top of `index.js` control the camera tilt (`T`), how far the word wraps around the planet (`SPAN`), how high the letters rise (`RISE`), the letter spacing (`TRACK`), the light direction (`L`) and the ring bands (`RINGS`).
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# Renox as a planet: blue
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The word **Renox** is the planet. The script uses [opentype.js](https://github.com/opentypejs/opentype.js) to turn the word, set in Unbounded Black, into vector outlines, and splits every curve into many short segments. It then wraps each point around a 3D sphere with an orthographic projection. That way the letters curve over the globe and get squeezed toward its edges like real continents. Stacked shells raise the letters off the surface, and gradients light the whole planet from one light source. Clouds, an ice cap, an atmosphere glow, a few islands, a ring and a moon finish it off. [resvg](https://github.com/thx/resvg-js) renders the PNGs.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
bun install
|
||||||
|
bun run build
|
||||||
|
```
|
||||||
|
|
||||||
|
| file | what |
|
||||||
|
| --- | --- |
|
||||||
|
| `logo.svg` / `logo.png` | on a deep-space background |
|
||||||
|
| `logo-transparent.svg` / `logo-transparent.png` | planet only, transparent background |
|
||||||
|
|
||||||
|
The settings at the top of `index.js` control the camera tilt (`T`), how far the word wraps around the planet (`SPAN`), how high the letters rise (`RISE`), the letter spacing (`TRACK`), the light direction (`L`) and the ring bands (`RINGS`).
|
||||||
@@ -5,7 +5,7 @@ import { Resvg } from '@resvg/resvg-js'
|
|||||||
import { readFileSync, writeFileSync } from 'fs'
|
import { readFileSync, writeFileSync } from 'fs'
|
||||||
|
|
||||||
const at = p => new URL(p, import.meta.url)
|
const at = p => new URL(p, import.meta.url)
|
||||||
const fb = readFileSync(at('../../node_modules/@fontsource/unbounded/files/unbounded-latin-900-normal.woff'))
|
const fb = readFileSync(at('node_modules/@fontsource/unbounded/files/unbounded-latin-900-normal.woff'))
|
||||||
const font = opentype.parse(fb.buffer.slice(fb.byteOffset, fb.byteOffset + fb.byteLength))
|
const font = opentype.parse(fb.buffer.slice(fb.byteOffset, fb.byteOffset + fb.byteLength))
|
||||||
|
|
||||||
const { sin, cos, hypot, ceil, min, max, PI } = Math
|
const { sin, cos, hypot, ceil, min, max, PI } = Math
|
||||||
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 374 KiB |
|
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 387 KiB After Width: | Height: | Size: 387 KiB |
@@ -1,14 +1,14 @@
|
|||||||
{
|
{
|
||||||
"name": "logo",
|
"name": "renox-as-planet-blue",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"description": "Planet Renox logo designs, written as code",
|
"description": "Renox as a planet, blue ocean version",
|
||||||
|
"scripts": {
|
||||||
|
"build": "bun index.js"
|
||||||
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource/unbounded": "^5.3.0",
|
"@fontsource/unbounded": "^5.3.0",
|
||||||
"@resvg/resvg-js": "^2.6.2",
|
"@resvg/resvg-js": "^2.6.2",
|
||||||
"opentype.js": "^2.0.0"
|
"opentype.js": "^2.0.0"
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"build": "bun designs/renox-as-planet/index.js"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||