Exploring Thurston geometries
This project is joint work by Remi Coulon, Sabetta Matsumoto, Henry Segerman, and Steve Trettel to render accurate images of the eight Thurston geometries and their quotients.
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
This project is joint work by Remi Coulon, Sabetta Matsumoto, Henry Segerman, and Steve Trettel to render accurate images of the eight Thurston geometries and their quotients. We are working hard to make a version of this software accessible to anyone who wants to explore, and encourage you to check out the GitHub repository and our papers on the topic (both technical and expository) for much more information. This website hosts various demonstrations we have created along the way, as well as tutorials and documentation for the code. Enjoy!!
We are still in the process of creating new scenarios to explore the features of Thurston’s geometries. We will post them on this page regularly. So, do not hesitate to come back!
In the Geometries section you will find a short introduction about each of the eight Thurston geometries. Each of them comes with images, videos, and numerous simulations that you can explore in real time on your own computer.
The image Hyperbolic Blue has been awarded with the Grand Prix du jury from the competition La preuve par l’image organized by the CNRS in partnership with the Acfas.
Our software comes with several rendering mode. In addition to the standard view, there is
Check out the examples available in each geometry.
In this article, we provide a quick introduction to the Thurston geometries and describe all the mathematical tools involved in the project. In particular, for each geometry, we provide
More resources can be found in the Learn more section
We are working to make this project user-friendly by providing a means of building a scene in JavaScript similar to ThreeJS. We have implemented a number of basic primitive objects (spheres, planes, cylinders, etc.) and compact manifolds for each geometry. Building your own scene amounts to writing a scene description such as below, which renders the following example.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
// import the required tools from our library and Three.js import { ThurstonLite, freeAbelianSet as torus, Point, PointLight, CheckerboardMaterial, phongWrap, LocalBallShape, complement, Solid } from "thurstonEuc"; import {Color, Vector2} from "three";
// set up the renderer const thurston = new ThurstonLite(torus, {keyboard: 'us'});
// lights const light0 = new PointLight( new Point(1, 0, 0), new Color(1, 1, 1), ); const light1 = new PointLight( new Point(0, 0, -1), new Color(1, 1, 1) ); const light2 = new PointLight( new Point(0, 0, 1), new Color(1, 1, 1) );
// checkerboard material const checkerboardBase = new CheckerboardMaterial( new Vector2(Math.PI, 0), new Vector2(0, Math.PI), new Color(0.9, 0.9, 1), new Color(0, 0, 0.1) ) const checkerboardPhong = phongWrap(checkerboardBase);
// complement of a local ball const centerBall = new LocalBallShape( new Point(0, 0, 0), 1.3, ); const latticeShape = complement(centerBall); const lattice = new Solid(latticeShape, checkerboardPhong);
// add lights and objects in the scene thurston.add(lattice, light0, light1, light2); // run the renderer thurston.run();
Running the code
This executes the code above to provide an inside view of the 3-torus with a tiling built from the complement of a sphere.
If you want to learn more and build your own scenes, take a look that the tutorials in the documentation
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。