Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
3bcde38
docs: add unified API design document
apresmoi May 19, 2026
6dcd600
feat(core): add sphere, cylinder, cone, torus, pyramid generators
apresmoi May 19, 2026
9d36da4
feat(core): add prism, antiprism, bipyramid, trapezohedron families
apresmoi May 19, 2026
67c482b
feat(core): add Kepler-Poinsot star polyhedra
apresmoi May 19, 2026
ec22155
feat(core): add cuboctahedron, icosidodecahedron, truncated tet/cube/oct
apresmoi May 19, 2026
c97018f
feat(core): add remaining Archimedean solids (truncated, rhombi, snub)
apresmoi May 19, 2026
839c15e
feat(core): add Catalan polyhedra as duals of Archimedean solids
apresmoi May 20, 2026
aedd4c5
feat(react,vue): re-export all polygon generators
apresmoi May 20, 2026
80fac08
feat: add geometry shortcut and use dodecahedron on landing
apresmoi May 20, 2026
dbcdf69
refactor: rename Glyphcss prefix to Glyph across API
apresmoi May 20, 2026
99678a0
refactor: flip tree shape to camera-wraps-scene
apresmoi May 20, 2026
51f4c40
refactor: default GlyphCamera to orthographic and drop FPV camera
apresmoi May 20, 2026
a9cf896
docs: sweep landing, docs, and CodePanel to new shape
apresmoi May 20, 2026
a450a80
fix(rasterize): per-pixel barycentric depth, half-space inside test
apresmoi May 21, 2026
c6037ae
feat(rasterize): opt-in Gouraud smooth shading with crease angle
apresmoi May 21, 2026
bea778a
feat(rasterize): opt-in backface culling
apresmoi May 21, 2026
730d2bb
feat(rasterize): opt-in 4x4 Bayer ordered dithering
apresmoi May 21, 2026
abe5b63
refactor(rasterize): make backface cull and dither always-on
apresmoi May 21, 2026
bdc29ad
feat(examples): add cross-path parity scaffold (vanilla/html/react/vue)
apresmoi May 21, 2026
46fb1e7
fix(core): outward-facing normals for axially-symmetric helpers
apresmoi May 21, 2026
fd0cace
feat(gallery): primitives dropdown, auto-rotate toggle, and wireframe…
apresmoi May 21, 2026
49fbce3
fix(core): correct cap windings and cuboctahedron face order
apresmoi May 21, 2026
22ba99d
fix(website): keep unfiltered base edges so wireframe never goes empty
apresmoi May 21, 2026
86952cb
fix(website): skip placeholder render for primitive presets
apresmoi May 21, 2026
628ac43
fix(gallery): hotspot at cell center + lower zoom in hotspot examples
apresmoi May 22, 2026
2eebe43
fix(styles): hotspot positioning + stacking context
apresmoi May 22, 2026
d49a387
feat(scene): add opt-in autoSize option for fitting cols/rows to host
apresmoi May 22, 2026
125648c
refactor(website): migrate gallery to createGlyphScene public API
apresmoi May 22, 2026
9853759
feat: wire autoSize through bindings + enable in all examples
apresmoi May 22, 2026
feaa5e1
fix(gallery): keep orbit controls alive across setTunables calls
apresmoi May 22, 2026
eb1a325
fix(gallery): reconnect lineHeight slider via scene.fit() + inherit-b…
apresmoi May 22, 2026
7f3a4ad
feat(gallery): remove axes/show-ground/light-helper toggles and dots/…
apresmoi May 23, 2026
c970e78
fix(gallery): preserve N-gons through setPolygons + polygon-outline w…
apresmoi May 23, 2026
6bc66fb
fix(gallery): pass n-gon polygons to scene.add so wireframe skips fan…
apresmoi May 23, 2026
d123006
fix(gallery): code panel updates when primitive is selected
apresmoi May 23, 2026
93ce301
chore: drop stray verify.mjs
apresmoi May 23, 2026
3cd3cfc
fix(website): docs demos use resolveGeometry; intro shows apple in solid
apresmoi May 23, 2026
23d2796
feat(landing): auto-rotate apple hero, lock interaction, tighter line…
apresmoi May 23, 2026
fe4bc7c
feat(landing): split how-it-works diagram into JS-once / CSS-forever …
apresmoi May 23, 2026
1c7e8cf
fix(landing): taller mobile hero frame; orient apple leaf upright (ro…
apresmoi May 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 9 additions & 9 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Monorepo layout (pnpm workspaces):
| Package | npm name | Role |
|---|---|---|
| `packages/core` | `@glyphcss/core` | Pure math: Vec3, Polygon, scene, camera, mesh ops, parsers. Zero browser globals. |
| `packages/glyphcss` | `glyphcss` | Vanilla renderer + custom elements (`<glyphcss-scene>`, etc.). Owns the ASCII rasteriser, custom element definitions, and imperative API. |
| `packages/glyphcss` | `glyphcss` | Vanilla renderer + custom elements (`<glyph-scene>`, etc.). Owns the ASCII rasteriser, custom element definitions, and imperative API. |
| `packages/react` | `@glyphcss/react` | React components + hooks. Thin wrapper over core + glyphcss. |
| `packages/vue` | `@glyphcss/vue` | Vue 3 mirror of the React package. |
| `website` | `@glyphcss/website` | Astro + Starlight docs site. Not published. |
Expand Down Expand Up @@ -53,15 +53,15 @@ Controls (orbit, map, first-person) mutate a single camera state object; the ras

## Naming

Every public export gets a `Glyphcss` prefix. Exceptions are generic math/geometry types: `Vec2`, `Vec3`, `Polygon`, `TextureTriangle`.
Every public export gets a `Glyph` prefix. Exceptions are generic math/geometry types: `Vec2`, `Vec3`, `Polygon`, `TextureTriangle`.

- **Hooks/composables:** `useGlyphcssCamera`, `useGlyphcssMesh`, `useGlyphcssSceneContext`, `useGlyphcssAnimation`.
- **Components:** `GlyphcssPerspectiveCamera`, `GlyphcssOrthographicCamera`, `GlyphcssOrbitControls`, `GlyphcssMapControls`, `GlyphcssFirstPersonControls`, `GlyphcssAxesHelper`, `GlyphcssDirectionalLightHelper`.
- **Types:** `GlyphcssDirectionalLight`, `GlyphcssAmbientLight`, `GlyphcssAnimationMixer`, `GlyphcssAnimationAction`, `GlyphcssAnimationClip`, `GlyphcssAnimationTarget`.
- **Functions:** `createGlyphcssAnimationMixer`, `injectGlyphcssBaseStyles`.
- **Vanilla factories:** `createGlyphcssScene`, `createGlyphcssCamera`, `createGlyphcssOrbitControls`, `createGlyphcssMapControls`, `createGlyphcssFirstPersonControls`.
- **HTML custom elements:** `glyphcss-` prefix + kebab-case. Existing tags: `<glyphcss-scene>`, `<glyphcss-mesh>`, `<glyphcss-hotspot>`, `<glyphcss-perspective-camera>`, `<glyphcss-orthographic-camera>`, `<glyphcss-orbit-controls>`, `<glyphcss-map-controls>`. Any new element follows the same shape.
- `GlyphcssCamera` is a kept alias for `GlyphcssPerspectiveCamera` — the ergonomic default. **Not deprecated.**
- **Hooks/composables:** `useGlyphCamera`, `useGlyphMesh`, `useGlyphSceneContext`, `useGlyphAnimation`.
- **Components:** `GlyphPerspectiveCamera`, `GlyphOrthographicCamera`, `GlyphOrbitControls`, `GlyphMapControls`, `GlyphFirstPersonControls`, `GlyphAxesHelper`, `GlyphDirectionalLightHelper`.
- **Types:** `GlyphDirectionalLight`, `GlyphAmbientLight`, `GlyphAnimationMixer`, `GlyphAnimationAction`, `GlyphAnimationClip`, `GlyphAnimationTarget`.
- **Functions:** `createGlyphAnimationMixer`, `injectGlyphBaseStyles`.
- **Vanilla factories:** `createGlyphScene`, `createGlyphCamera` (ortho alias), `createGlyphPerspectiveCamera`, `createGlyphOrthographicCamera`, `createGlyphOrbitControls`, `createGlyphMapControls`, `createGlyphFirstPersonControls`.
- **HTML custom elements:** `glyph-` prefix + kebab-case. Existing tags: `<glyph-scene>`, `<glyph-mesh>`, `<glyph-hotspot>`, `<glyph-perspective-camera>`, `<glyph-orthographic-camera>`, `<glyph-camera>` (ortho alias), `<glyph-orbit-controls>`, `<glyph-map-controls>`. Any new element follows the same shape.
- `GlyphCamera` is the ergonomic default alias — it resolves to `GlyphOrthographicCamera`. The voxel render mode and iso/diagrammatic scenes are glyphcss's differentiator; ortho is the more representative default.

## Cross-package discipline

Expand Down
Loading
Loading