Added a new view of the 120-cell's 5-cells with more colours #25

Merged
bombinans merged 1 commits from feature-120-cell-details into main 2026-01-18 06:00:33 +00:00
5 changed files with 26 additions and 9 deletions

View File

@ -1,6 +1,11 @@
CHANGELOG 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 ## v1.1 - 1/1/2026
The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly

View File

@ -9,12 +9,11 @@ export const get_colours = (basis) => {
const luminance = hslb['color'][2]; const luminance = hslb['color'][2];
const scheme = new ColorScheme; const scheme = new ColorScheme;
scheme.from_hue(hue).scheme("tetrade").distance(0.75); scheme.from_hue(hue).scheme("tetrade").distance(0.75);
const colours = scheme.colors().slice(1, 9); const scolours = scheme.colors();
colours.reverse(); const colours = [ ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours, ...scolours ];
const hsl = colours.map((c) => Color("#" + c).hsl()); const hsl = colours.map((c) => Color("#" + c).hsl());
const resaturated = hsl.map((hslc) => hslc.saturationl(saturation).rgbNumber()); const resaturated = hsl.map((hslc) => hslc.saturationl(saturation).rgbNumber());
resaturated.unshift(basis); resaturated.unshift(basis);
console.log(resaturated);
return resaturated; return resaturated;
} }

View File

@ -36,7 +36,7 @@
<script type="module" src="/main.js"></script> <script type="module" src="/main.js"></script>
<div id="description"></div> <div id="description"></div>
<div id="release_notes"></div> <div id="release_notes"></div>
<div id="info"><a href="#" id="show_notes">release 1.1</a> | <div id="info"><a href="#" id="show_notes">release 1.2</a> |
by <a target="_blank" href="https://mikelynch.org/">Mike Lynch</a> | by <a target="_blank" href="https://mikelynch.org/">Mike Lynch</a> |
<a target="_blank" href="https://git.tilde.town/bombinans/fourdjs">source</a></div> <a target="_blank" href="https://git.tilde.town/bombinans/fourdjs">source</a></div>

View File

@ -1,6 +1,10 @@
import * as THREE from 'three'; import * as THREE from 'three';
const RELEASE_NOTES = ` const RELEASE_NOTES = `
<p><b>v1.2 - 18/1/2026</b></p>
<p>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.</p>
<p><b>v1.1 - 1/1/2026</b></p> <p><b>v1.1 - 1/1/2026</b></p>
<p>The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly <p>The 120-cell now includes a visualisation of its inscribed 5-cells, which honestly

View File

@ -475,7 +475,7 @@ export const cell120_inscribed = () => {
export const cell120_inscribed_cell5 = () => { export const cell120_inscribed_cell5 = () => {
const nodes = make_120cell_vertices(); const nodes = make_120cell_vertices();
const links = auto_detect_edges(nodes, 4); const links = [];
for( const cstr in CELLINDEX.INDEX120 ) { for( const cstr in CELLINDEX.INDEX120 ) {
label_nodes(nodes, CELLINDEX.INDEX120[cstr], Number(cstr)); label_nodes(nodes, CELLINDEX.INDEX120[cstr], Number(cstr));
@ -483,17 +483,25 @@ export const cell120_inscribed_cell5 = () => {
links.map((l) => l.label = 0); 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 { return {
name: '120-cell-5-cell', name: '120 5-cells',
nodes: nodes, nodes: nodes,
links: links, links: links,
options: [ options: [
{ name: "5-cells", links: [ 0, 1, 2, 3, 4, 5, 6, 7, 8 ] }, { name: "none", links: show_links},
], ],
description: `The 120-cell with one of its 5-cells.`, 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(),
cell600_layered(), cell600_layered(),
cell120_inscribed(), cell120_inscribed(),
cell120_inscribed_cell5(),
cell120_layered() cell120_layered()
]; ];
} }