No description
Find a file
2026-05-05 07:12:34 +00:00
.gitignore initial commit 2026-05-05 06:55:45 +00:00
Dockerfile initial commit 2026-05-05 06:55:45 +00:00
index.html fix: remove link copied text 2026-05-05 07:12:34 +00:00
Makefile fix: Makefile 2026-05-05 06:57:34 +00:00
README.md initial commit 2026-05-05 06:55:45 +00:00

Girlspace

A client-side 3D visualization of feminine identity as a vector in three dimensions: aesthetic, energy, and agency.

Every woman is a vector in girlspace. \vec{G} = (x, y, z) where x, y, z \in [-1, 1]. Your position is fluid. Your identity is yours to define.

No position is inherently better. Girlspace is descriptive, not prescriptive. You get to move, evolve, and exist exactly as you are.

Axes

Axis Negative pole Positive pole
x — Aesthetic Goth (dark, alternative, moody) Girly Pop (bright, playful, hyper-feminine)
y — Energy Babygirl (soft, cute, needs care) Mommy (dominant, nurturing, handles everything)
z — Agency Girl Failure (chaotic, struggling, a mess) Girl Boss (disciplined, driven, in control)

A handful of archetypes are plotted for reference — Dark Dominatrix, Goth Mommy, High Femme Exec, Corporate Girlboss, Alt Softie, Chaotic Babygirl, Girlypop Babygirl Failure, Tryhard Failure, Soft Girl Next Door.

Running

It's a single HTML file (index.html) with all dependencies loaded from CDNs (Three.js + KaTeX). Because it uses ES modules, it must be served over HTTP — opening it as a file:// URL won't work.

Any static file server is fine. With Python:

python3 -m http.server 8765

Then open http://localhost:8765/.

Controls

Input Action
Sliders Set your (x, y, z) position
Archetype point Hover for label and coordinates
Left-click drag Spin the graph around its Y axis
Right-click drag FPS-style mouse-look (yaw + pitch)
Scroll wheel Dolly zoom
W / S Fly forward / back along the view direction
A / D Strafe left / right
Q / E Roll counter-clockwise / clockwise
Space Toggle play/pause for the auto-spin
Esc Reset to the default viewpoint and resume auto-spin
Play/pause button (bottom-right) Same as Space

The page captures the mouse (pointer lock) while either button is held so the cursor doesn't escape the canvas during a drag.

Sharing

The URL hash always reflects your current vector — e.g. index.html#0.42,-0.30,0.85. The Copy link button copies the current URL to the clipboard; pasting that link in another tab restores the same vector. Hashes are read on load and on hashchange.

File layout

This is a single static file. There's no build step, no bundler, and no package.json. Just:

girlspace/
├── index.html      ← everything (HTML, CSS, JS)
├── README.md
├── LICENSE
└── .gitignore

External libraries are pulled at runtime from unpkg.com and cdn.jsdelivr.net.

License

GPL-3.0 — see LICENSE.