R
Rouslan Korneychuk
I have been working on something I thought was interesting and I wanted
to know what other people think. It's a ray-tracing library than can
work with any number of spacial dimensions greater than two. It's a
Python package that uses Pygame.
The project and a screenshot are at: https://github.com/Rouslan/NTracer
For those not familiar with the concept of hyper-space: a simple example
of a three-dimensional object is a cube. A two-dimensional analogue is a
square. With one dimension, it would be a line (and with zero
dimensions, a point). Although our universe only has three spacial
dimensions (ignore theoretical physics for a moment), there is actually
no reason why it can't be any other number, and so you can go the other
way. A four-dimensional analogue of a cube is a tesseract, and when
generalized for any number of dimensions it's called a hypercube.
Of course, it's really hard to imagine anything with more than three
dimensions, which is precisely why I wrote this library. The screenshot
in the link shows a three-dimensional cross-section of a six-dimensional
hypercube at a particular angle. So far, all the library can draw is a
scene with one hypercube (although you can position the camera anywhere
you want), but I'm planning to add support for complex scenes where you
can put various kinds of shapes with arbitrary transformations and
materials (color and opacity at least).
to know what other people think. It's a ray-tracing library than can
work with any number of spacial dimensions greater than two. It's a
Python package that uses Pygame.
The project and a screenshot are at: https://github.com/Rouslan/NTracer
For those not familiar with the concept of hyper-space: a simple example
of a three-dimensional object is a cube. A two-dimensional analogue is a
square. With one dimension, it would be a line (and with zero
dimensions, a point). Although our universe only has three spacial
dimensions (ignore theoretical physics for a moment), there is actually
no reason why it can't be any other number, and so you can go the other
way. A four-dimensional analogue of a cube is a tesseract, and when
generalized for any number of dimensions it's called a hypercube.
Of course, it's really hard to imagine anything with more than three
dimensions, which is precisely why I wrote this library. The screenshot
in the link shows a three-dimensional cross-section of a six-dimensional
hypercube at a particular angle. So far, all the library can draw is a
scene with one hypercube (although you can position the camera anywhere
you want), but I'm planning to add support for complex scenes where you
can put various kinds of shapes with arbitrary transformations and
materials (color and opacity at least).