Non-Euclidean Worlds Engine

CodeParade
13 Aug 201805:15
EducationalLearning
32 Likes 10 Comments

TLDRThe video script introduces a groundbreaking rendering engine designed for non-Euclidean worlds, offering a unique perspective on space and distance. The engine defies conventional geometry by creating tunnels that appear long on the outside but are short on the inside, and vice versa. It also presents a four-room house with only three rooms, demonstrating how our brains can be deceived by non-Euclidean spaces. The engine further showcases rooms with infinite space within finite dimensions and the ability to scale objects and beings to fit through seemingly impassable tunnels. The technology is explained as a seamless extension of the game 'Portal', with advanced rendering techniques that account for occlusions and multiple perspectives. The script highlights the engine's potential for virtual reality, allowing for the exploration of vast virtual worlds within confined physical spaces. The creator shares their journey from Unity to developing their own OpenGL engine and provides a GitHub link for the curious to explore the demo.

Takeaways
  • 🎨 The rendering engine is designed for non-Euclidean worlds, which allows for unusual spatial experiences.
  • 🌐 The engine can create a long tunnel that appears short on the inside and vice versa, challenging our perception of distance.
  • 🏠 It can render a four-room house with only three rooms, or a six-room house, by bending spatial logic.
  • 🔄 The shortest path between two points is not always a straight line in this engine, defying Euclidean geometry.
  • 🧠 The human brain may not naturally detect the spatial anomalies unless they are pointed out.
  • 🚪 The engine can create rooms that lead to other unique spaces upon walking around objects.
  • 🔄 It allows for the possibility of an infinite amount of space within a finite space, by using non-Euclidean geometry.
  • ⛰ The engine can simulate scenarios like walking downhill to go uphill, creating a surreal experience.
  • 🧍‍♂️ It can change the scale of objects or characters as they move through spaces, allowing for a tunnel that becomes passable.
  • 🖥️ The rendering process is complex, requiring recursive rendering of surfaces and conditional occlusions.
  • 🛠️ The developer had to create a custom rendering engine in OpenGL due to limitations in Unity's scriptable pipeline.
  • 🤖 The technology has potential applications in virtual reality, allowing for larger explorable spaces within confined physical areas.
  • 💾 The source code and executable for the engine are available on GitHub for interested developers to explore.
Q & A
  • What is the primary challenge in creating a rendering engine for non-Euclidean worlds?

    -The primary challenge is to create an illusion of non-Euclidean geometry where the shortest path between two points is not a straight line, and spaces can be compressed or expanded in ways that are not intuitive to our understanding of Euclidean space.

  • How does the rendering engine differ from the game Portal in its approach to portals?

    -Unlike Portal, where portals have visible seams, the rendering engine uses solid geometry surfaces with textures that act as virtual cameras, creating a seamless transition when a user walks through them.

  • Why did the developer switch from Unity to creating their own rendering engine in OpenGL?

    -The developer found it impossible to achieve the desired rendering effects in Unity without lower-level access to the rendering pipeline. Even the scriptable pipeline in Unity did not suffice, leading to the creation of a custom engine in OpenGL.

  • What is the significance of the house with four rooms that only appears to have three?

    -This demonstrates the brain's tendency not to notice spatial anomalies in non-Euclidean spaces unless explicitly pointed out. It also showcases the potential for creating deceptive architectural designs in virtual environments.

  • How does the rendering engine enable the creation of rooms that seem to have an infinite amount of space within a finite area?

    -By using recursive rendering and the principles of non-Euclidean geometry, the engine can create the illusion of infinite space by continuously transitioning between different spatial perspectives within a confined physical space.

  • What is the practical application of this rendering engine in the context of virtual reality?

    -The engine allows for the compression of large, open-world environments into smaller physical spaces, which is particularly useful for room-scale VR. It enables users to explore vast virtual spaces without the need for teleportation or other methods that can break immersion.

  • How does the engine handle the rendering of surfaces behind others, considering occlusions?

    -Each surface in the engine must recursively render the surfaces behind it, with conditional rendering based on whether those surfaces are occluded or visible from each perspective.

  • What is the unique feature of the room with a pillar and an object that allows for multiple unique spaces?

    -The unique feature is that as one walks around the pillar, they are teleported to different unique spaces, even though the physical objects remain unchanged. This is possible due to the non-Euclidean nature of the space.

  • How does the tunnel that changes the scale of the user as they pass through it work?

    -The tunnel is designed with the ability to alter the perceived scale of the user as they traverse it. By walking through the tunnel multiple times, the user can be made to appear smaller or larger, allowing them to fit through or be too large for the tunnel.

  • What is the source of inspiration for the hill that slopes up but can be ascended by going down a tunnel?

    -The inspiration comes from the humorous anecdotes of 'walking uphill both ways,' suggesting that the concept of non-Euclidean geometry could explain such seemingly paradoxical experiences.

  • Why did the developer decide to upload the source and executable to GitHub?

    -The developer uploaded the source and executable to GitHub to allow others to explore, learn from, and potentially contribute to the project, fostering a community around this innovative rendering technology.

  • What is the main takeaway from the script regarding the human perception of non-Euclidean spaces?

    -The main takeaway is that humans are not naturally accustomed to perceiving non-Euclidean spaces, and thus, may not immediately notice the spatial anomalies unless they are explicitly made aware of them.

Outlines
00:00
🔍 Introduction to Non-Euclidean Rendering Engine

The speaker introduces a rendering engine designed for non-Euclidean worlds, demonstrating its capabilities through various examples. The engine allows for the creation of spaces that appear long on the outside but are short on the inside, and vice versa. It challenges the conventional understanding of spatial relationships, such as the shortest path between two points not being a straight line. The speaker also showcases a house with an unexpected twist, where a four-room house only has three rooms, and another with six rooms, suggesting the possibility of infinite space within a finite one. The engine uses a rendering technique similar to the game Portal, but with seamless transitions and multiple portals. The rendering process is complex, requiring each surface to render surfaces behind it based on occlusion from different perspectives. The speaker mentions the limitations encountered when trying to implement this in Unity and the decision to create a custom engine in OpenGL. The potential applications of this technology extend beyond puzzle games to virtual reality, where it could enable larger explorable spaces within a confined physical area. The source code and executable are made available on GitHub for further exploration.

Mindmap
Keywords
💡Rendering Engine
A rendering engine is a type of software that generates 2D or 3D computer graphics from geometric data. In the context of the video, the rendering engine is designed to create non-Euclidean worlds, which are spaces that do not follow the standard rules of Euclidean geometry. This engine is crucial for visualizing and interacting with the complex geometries presented in the video.
💡Non-Euclidean Worlds
Non-Euclidean worlds refer to spaces that do not adhere to the principles of Euclidean geometry, where traditional concepts like parallel lines or the shortest distance between two points do not apply. The video showcases how a rendering engine can simulate these worlds, creating environments that appear to bend or distort space in ways that are not possible in our everyday experience.
💡Tunnel
In the video, tunnels are used as an example to illustrate the properties of non-Euclidean geometry. The first tunnel appears long from the outside but is short on the inside, while the second appears short but takes a long time to traverse. These examples demonstrate how the rendering engine can manipulate the perception of distance and size in a non-Euclidean space.
💡House
The house in the video serves as another example of non-Euclidean geometry. The four-room house is shown to have only three rooms, and the six-room house is an example of how an infinite amount of space can be contained within a finite space. These examples highlight the mind-bending properties of non-Euclidean spaces and how the rendering engine can create these environments.
💡Pillar and Object
The pillar and object in the video are used to demonstrate how walking around a single pillar can lead to different rooms, each with a unique space. This concept challenges our understanding of space and continuity, and it is made possible by the rendering engine's ability to seamlessly transition between different spatial perspectives.
💡Hill and Tunnel
The hill and tunnel example in the video show a scenario where going down the tunnel leads to the top of the hill. This is a playful take on the concept of non-Euclidean geometry, where the usual rules of direction and elevation do not apply. It serves to illustrate the surreal and counterintuitive nature of the spaces created by the rendering engine.
💡Scale Change
The scale change is a feature of the rendering engine where the size of an object or character can change as they move through a non-Euclidean space. In the video, the presenter walks through a tunnel that is too small to pass through, but with each loop around the tunnel, the presenter's scale changes, allowing them to eventually fit through. This concept is central to the engine's ability to create dynamic and interactive non-Euclidean environments.
💡OpenGL
OpenGL is a cross-platform graphics API that is used to render 2D and 3D vector graphics. In the context of the video, the presenter mentions creating their own rendering engine in OpenGL after encountering limitations with Unity. This indicates the level of customization and control required to achieve the complex rendering needed for non-Euclidean worlds.
💡Recursive Rendering
Recursive rendering is a technique where a rendering engine renders surfaces behind others conditionally, based on whether they are occluded or visible from a given perspective. This is a complex process that the rendering engine must perform to create the illusion of non-Euclidean spaces. The video explains that each surface must be rendered with consideration for what is visible behind it, which adds to the complexity of the rendering task.
💡Virtual Reality (VR)
Virtual reality is a simulated experience that can simulate the presence of a user in an artificial environment. The video discusses the potential use of the rendering engine for VR, suggesting that it could allow users to explore larger, open worlds within the confines of a small physical space. This application of the engine could significantly expand the possibilities for VR experiences.
💡Source and Executable
The source code and executable files are the fundamental components of software that allow it to be run on a computer. In the video, the presenter mentions uploading the source and executable to GitHub, which means that interested individuals can access, modify, and run the rendering engine's code. This sharing of resources is a common practice in the tech community and can lead to collaboration and further development of the project.
Highlights

Developing a rendering engine for non-Euclidean worlds which presents unique spatial properties.

Tunnels that appear long from the outside but are short on the inside, and vice versa.

The shortest path between two points is not a straight line in non-Euclidean spaces.

A four-room house that only has three rooms, demonstrating the mind's adjustment to non-Euclidean geometry.

A house with six rooms that can contain an infinite amount of space within a finite area.

A room with a pillar and an object that leads to another room when walked around, showcasing unique spatial transitions.

A hill that can be ascended by going downhill, a peculiar feature of non-Euclidean geometry.

A tunnel that changes the scale of an object as it passes through, allowing for traversal.

Rendering technique similar to 'Portal' game, but with seamless portals and more than two at a time.

Solid geometry surfaces with textures that act as virtual cameras, creating an illusion of different perspectives.

Recursive rendering of surfaces behind each other, conditional on occlusion from each perspective.

Challenges faced in Unity led to the creation of a custom rendering engine in OpenGL.

Potential use cases beyond puzzle games, particularly in virtual reality for creating larger explorable spaces.

The engine allows for compression of entire levels to fit into a single room-scale VR space.

A demonstration of a 20x20 foot room that actually contains a volume four times larger.

The belief that the illusion created by the engine feels as real in VR as on a screen.

Source code and executable for the demo are available on GitHub for public exploration.

Transcripts
Rate This

5.0 / 5 (0 votes)

Thanks for rating: