diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cabe06..269d538 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ CHANGELOG ========= +## v1.2 - 18/1/2026 + +Added a second visualisation of the 120-cell's 5-cells without the 120-cell links +and with more colours added so you can get a sense of the individual 5-cells. + ## v1.1 - 1/1/2026 The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly diff --git a/colours.js b/colours.js index 7fda5d8..47c7542 100644 --- a/colours.js +++ b/colours.js @@ -9,12 +9,11 @@ export const get_colours = (basis) => { const luminance = hslb['color'][2]; const scheme = new ColorScheme; scheme.from_hue(hue).scheme("tetrade").distance(0.75); - const colours = scheme.colors().slice(1, 9); - colours.reverse(); + const scolours = scheme.colors(); + const colours = [ ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours ]; const hsl = colours.map((c) => Color("#" + c).hsl()); const resaturated = hsl.map((hslc) => hslc.saturationl(saturation).rgbNumber()); resaturated.unshift(basis); - console.log(resaturated); return resaturated; } diff --git a/index.html b/index.html index 0460f61..b58cb6b 100644 --- a/index.html +++ b/index.html @@ -36,7 +36,7 @@
-
release 1.1 | +
release 1.2 | by Mike Lynch | source
diff --git a/main.js b/main.js index e075c5a..a5f498e 100644 --- a/main.js +++ b/main.js @@ -1,6 +1,10 @@ import * as THREE from 'three'; const RELEASE_NOTES = ` +

v1.2 - 18/1/2026

+ +

Added a second visualisation of the 120-cell's 5-cells without the 120-cell links and with more colours added so you can get a sense of the individual 5-cells.

+

v1.1 - 1/1/2026

The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly diff --git a/polytopes.js b/polytopes.js index 8fc7669..b9520d0 100644 --- a/polytopes.js +++ b/polytopes.js @@ -475,7 +475,7 @@ export const cell120_inscribed = () => { export const cell120_inscribed_cell5 = () => { const nodes = make_120cell_vertices(); - const links = auto_detect_edges(nodes, 4); + const links = []; for( const cstr in CELLINDEX.INDEX120 ) { label_nodes(nodes, CELLINDEX.INDEX120[cstr], Number(cstr)); @@ -483,17 +483,25 @@ export const cell120_inscribed_cell5 = () => { links.map((l) => l.label = 0); + const CELL5S = CELLINDEX.CELL120_CELL5.cell5s; + for( const c5 in CELL5S ) { + const nodes5 = nodes.filter((n) => CELL5S[c5].includes(n.id)); + const links5 = auto_detect_edges(nodes5, 5); + links5.map((l) => l.label = Number(c5)); + links.push(...links5); + } + const show_links = Array.from({ length: 128 }, (_, i) => i); return { - name: '120-cell-5-cell', + name: '120 5-cells', nodes: nodes, links: links, options: [ - { name: "5-cells", links: [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ] }, - ], - description: `The 120-cell with one of its 5-cells.`, + { name: "none", links: show_links}, + ], + description: `The 120 5-cells from the 120-cell, without the latter's links. This colouring is pretty arbitrary, being based on the algorithm which partitioned the nodes: a later version will have something that's based on the symmetries of the 600-cells which each of the 5-cells has its nodes in.`, } } @@ -913,6 +921,7 @@ export const build_all = () => { cell600(), cell600_layered(), cell120_inscribed(), + cell120_inscribed_cell5(), cell120_layered() ]; }