All Projects → StoDevX → humke-4d-geometry

StoDevX / humke-4d-geometry

Licence: MIT license
A web-based 4D Geometry viewer

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to humke-4d-geometry

geometer
A geometry library written in Python
Stars: ✭ 89 (+74.51%)
Mutual labels:  geometry, mathematics
three-csg-ts
CSG library for use with THREE.js
Stars: ✭ 312 (+511.76%)
Mutual labels:  threejs, geometry
source-engine-model-loader
Three.js loader for parsing Valve's Source Engine models
Stars: ✭ 54 (+5.88%)
Mutual labels:  threejs, geometry
Math Toolbox
Lightweight and modular math toolbox
Stars: ✭ 71 (+39.22%)
Mutual labels:  geometry, mathematics
Threef.js
three.js addon, to produce almost infinite many time-varying geometries / buffer geometries with functions (cylindrical coordinates)
Stars: ✭ 19 (-62.75%)
Mutual labels:  threejs, geometry
Algorithms
A collection of algorithms and data structures
Stars: ✭ 11,553 (+22552.94%)
Mutual labels:  geometry, mathematics
THREEg.js
three.js addon to create special or extended geometries. The addon generates indexed or non indexed BufferGeometries.
Stars: ✭ 33 (-35.29%)
Mutual labels:  threejs, geometry
Dotscad
Reduce the burden of mathematics when playing OpenSCAD
Stars: ✭ 344 (+574.51%)
Mutual labels:  geometry, mathematics
3dtilesrendererjs
Renderer for 3D Tiles in Javascript using three.js
Stars: ✭ 333 (+552.94%)
Mutual labels:  threejs, geometry
Cga.js
CGA 3D 计算几何算法库 | 3D Compute Geometry Algorithm Library webgl three.js babylon.js等任何库都可以使用
Stars: ✭ 313 (+513.73%)
Mutual labels:  threejs, geometry
Korma
Mathematics library focused on geometry for Multiplatform Kotlin 1.3
Stars: ✭ 65 (+27.45%)
Mutual labels:  geometry, mathematics
Ifc.js
Ifc viewer for client applications.
Stars: ✭ 211 (+313.73%)
Mutual labels:  threejs, geometry
Jsxgraph
JSXGraph is a cross-browser library for interactive geometry, function plotting, charting, and data visualization in a web browser.
Stars: ✭ 605 (+1086.27%)
Mutual labels:  geometry, mathematics
Root
The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
Stars: ✭ 1,377 (+2600%)
Mutual labels:  geometry, mathematics
Cindyjs
A JavaScript framework for interactive (mathematical) content.
Stars: ✭ 495 (+870.59%)
Mutual labels:  geometry, mathematics
three-strip
Generate strip geometry for three.js. Supports taper, twist, dasharray and uvgen.
Stars: ✭ 15 (-70.59%)
Mutual labels:  threejs, geometry
spherical-cow
A high volume fraction sphere packing library
Stars: ✭ 24 (-52.94%)
Mutual labels:  geometry, mathematics
Mather
zzllrr mather(an offline tool for Math learning, education and research)小乐数学,离线可用的数学学习(自学或教学)、研究辅助工具。计划覆盖数学全部学科的解题、作图、演示、探索工具箱。目前是演示Demo版(抛转引玉),但已经支持数学公式编辑显示,部分作图功能,部分学科,如线性代数、离散数学的部分解题功能。最终目标是推动专业数学家、编程专家、教育工作者、科普工作者共同打造出更加专业级的Mather数学工具
Stars: ✭ 270 (+429.41%)
Mutual labels:  geometry, mathematics
Three Mesh Bvh
A BVH implementation to speed up raycasting against three.js meshes.
Stars: ✭ 302 (+492.16%)
Mutual labels:  threejs, geometry
Threejs Sandbox
Set of experiments and extensions to THREE.js.
Stars: ✭ 163 (+219.61%)
Mutual labels:  threejs, geometry

4D Geometry Viewer

Thinking about 4 spatial-dimensional geometry is fun, but it's very hard to develop an intuition for at first. We developed this web-based viewer as our capstone project at St. Olaf College. Its original purpose was to teach an Introduction to 4D Geometry class for non-math majors.

4d slicing
(Left) Projection of a distorted 4D cube. (Right) The 3D cross-sections of the yellow hyper-plane with the 4D object

Our goal was to let you view 4D objects through a projection view on the left (projected onto an intermediate 3D "screen" which is then projected onto your 2D screen) while seeing the cross sections on the right. The hope is that seeing objects in these two views simultanously aids understanding.

It's still hard to fully grasp high dimensional ideas like this, so another tool is dimensional analogy. You can always drop down one (or two) dimensions and inspect the same phenomenon. It's not obvious why the cross sections of this sheared 4D cube look like a shrinking cube:

4d shrinking cube
Slicing a sheared 4D cube along the W axis gives us cross sections that look like a shrinking cube

Until you see why the same thing happens in 3D:

3d shrinking square
Slicing a sheared 3D cube along the Y axis gives us cross sections that look like a shrinking square

How to Use

The viewer itself is live at: https://stodevx.github.io/humke-4d-geometry/

Not everything is as intuitive as it should be. Check out our usage guide for everything the app can (and cannot) do:

https://github.com/StoDevX/humke-4d-geometry/wiki/Usage

How it Works

The developer docs provide a brief overview of the project structure.

Credits

The main developers on this project have been Omar Shehata, Joe Peterson, Tianyu Pang and Justin Pacholec.

Thanks to Professor Paul Humke for spearheading this project and acting as our advisor.

Thanks to Nick Nooney for the marching cubes implementation.

We would never have gotten this far without all the insightful research we've built upon.

One More Example

This is not currently possible to do using just the web viewer, so it's not included with the examples above. But it's really cool, so I wanted to show it.

Rotating Tesseract
A rotating tesseract with one face highlighted

To me, this is much easier to understand than standard animations of rotating tesseracts. This 4-dimensional cube appears to distort as it rotates. Being able to follow one face, and to see how it actually is a cube that just gets distorted as the view changes is really helpful.

Even though we have no UI to set this up in the app, it is not difficult to put together with a few lines of code. We simply define the 16 points in a tesseract, as well as the connecting edges then we define a cube in 4D space. We draw the former as a wireframe and the latter as a solid. We hope others interested in this topic will find the source code useful for constructing more complex visualizations and examples not possible in the app today.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].