Feel free to contact me for beta access.
Introduction
Past World Navigator is a digital platform that enables users to explore a 3D model of the world, travel through time, and experience historically accurate city recreations. The inspiration came from a casual exploration of Google Maps' street view. I was curious about how much of my room's window was visible and pondered the year it was captured. Different places have been photographed at different times, and some locations have multiple captures spanning decades, allowing us to see how they have evolved. This sparked a question in my mind: Could I do this for any place and any year? What if I could go back to the year 1234 and see what Egypt was like? While history often focuses on significant events, I wanted to offer a perspective for those who simply wish to understand what everyday life was like at any time and place. Although we lack the data to recreate every single detail, I believed that by narrowing the scope, we could capture the essence and provide a solid representation of the past, offering the closest experience to traveling through time.
Design Process
Navigating the project presented a significant learning curve, particularly in breaking down the task into manageable components within the Unreal Engine framework, a platform with which I had familiarity but not extensive experience in development. I divided the platform into two primary views: Globe View and Landscape View. In Globe View, users interact with a 3D model of the world represented as a sphere, featuring a year slider for time travel and the ability to click on cities to access basic statistical data. Transitioning to Landscape View, users immerse themselves in first-person exploration of historically accurate city representations.
Development Approach
I initially narrowed the project scope to focus on country-level exploration rather than city-level detail, prioritizing development progress over extensive data collection. Integrating country borders proved to be a crucial step, and after researching, I found GeoJSON files to be a valuable resource. These files allowed me to texture the earth mesh with country borders using Bresenham's line algorithm, laying the foundation for user interaction. However, enabling users to click on countries required a method to determine mouse hover locations. To achieve this, I utilized UV coordinates to map mouse positions to the texture. Additionally, I rasterized GeoJSON data into a bin file, enabling efficient storage and retrieval of country information. Implementing a flood-fill algorithm highlighted selected countries, enhancing user interaction. Establishing the core gameplay loop—navigating the globe, selecting countries, transitioning to first-person exploration, and returning—was a significant milestone. However, the prospect of manually creating 3D environments for every country and year was daunting in terms of time and resources. Procedural generation emerged as the solution, leading to the next phase of development: defining country representation and implementing procedural world generation.
Representation and Procedural Generation
If you were transported back to a random year and place, how would you know where you are? People's clothing? Architectural style? This question spurred ideas on how to best represent and capture a specific time and place. For procedural generation, I decided to break down a country into nine key elements, arranged in a 3x3 grid. These elements include Agriculture, Mining Field, Factory, Landmark, Government, Religion, Residential Area, Downtown, and Education Level. By developing each of these elements separately and creating variations for each, I could utilize textual data about the country and era to procedurally generate a comprehensive map. This approach allows for dynamically constructed environments that reflect the historical context of any given time and place.
Defining Regions and Data Consistency
What counts as a country? The USA and Spain are clear examples, while Greenland and Bermuda are recognized as territories. But what about 5000 years ago? Egypt was a nation with defined borders and a centralized government, but what about the Afanasievo culture? To accurately break down the world into regions at any given year, we need a flexible approach since not every society existed within recognized borders, and there is no definitive list. Currently, as of June 2024, the goal is to create a proof of concept for the modern world, focusing on the 193 countries recognized by the United Nations. However, historical and geographical data are often inconsistent. GeoJSON data, for example, includes separate entries for small islands owned by countries and lists the same country under different names, such as South Korea and the Republic of Korea. This necessitated extensive data cleaning to ensure uniformity, so the world is consistently divided into the same number of regions, with standardized names for each country.
Data Collection and Credibility
The current data collection approach involves curating a comprehensive information base about history, drawing from sources such as Wikipedia, textbooks, and national archives. By utilizing a vector database, we can gather specific information about each country at any given time. This method not only allows for the detailed representation of historical data but also ensures that the information is easily citable. Users can assess the credibility of the sources, enhancing the educational value and reliability of the platform.
3D Modeling and Environment Art
The other key aspect of the project is 3D modeling and environment art. As a solo developer, my focus is on overall development rather than getting bogged down with specific parts of the project for extended periods. While delays might still occur, it's crucial to ensure that the time invested translates into tangible progress within the project. To manage this, I utilize a platform that allows me to create AI-generated 3D meshes using text prompts. Although the AI output is not yet refined enough for the final product, it serves as an excellent tool for visualizing potential worlds and experimenting with different layouts. This approach allows me to rapidly prototype and iterate without the risk of wasting weeks on models that might not make it into the final version.
Expanding Features and Future Goals
In addition to the core functionalities, other work includes implementing gamepad support for a release on Steam, aiming to attract a gamer audience similar to educational tools like SpaceEngine, which offers a 1:1 recreation of the universe for observational purposes. VR support has also been added to enhance the immersiveness of the environments. Currently, the platform is available on Steam for beta testers, whose feedback, along with drawn prototypes, helps refine the UI/UX for this type of application. The immediate goal is to finalize the dataset and integrate everything to enable exploration of the modern world using my concept. The next steps involve expanding to historical times and providing city-level information using the previously mentioned data collection pipeline. If the product is successful, I plan to write a paper detailing the pipeline and conduct a pilot study with students to test the platform's effectiveness in learning, which will result in a separate research paper.
Conclusion
Past World Navigator represents an innovative approach to exploring and understanding history through an immersive 3D platform that facilitates temporal and spatial travel. By integrating procedural generation, comprehensive data collection, and advanced technologies such as VR and AI-driven 3D modeling, the platform offers a unique intersection of education and interactive engagement. The iterative development process, informed by user feedback and a commitment to historical accuracy, ensures the project's continual enhancement. As the development progresses, the objective is to broaden the temporal and spatial scope of the exploration, optimize the user interface, and rigorously assess the platform's educational efficacy. Ultimately, Past World Navigator aspires to become a valuable tool for both educational purposes and historical research, providing users with an in-depth and dynamic means of engaging with the past.