Inspiration
Since 10 years I am developing my own fantasy world as a dungeon master in Dungeons and Dragons. 2 weeks ago I wanted to explore Codex, originally to test it for data analysis. However, I had the spontaneous idea that I could implement a simple map for my DnD campaign as an offline-usable program. This idea quickly escalated into an ever evolving project with already several features. From an ever increasing monolith file I quickly started to reach its limits, resulting in the restructuring of the project into a modularized js system. Everything completely done in the combination of ChatGPT 5.6 and Codex.
What it does
Sumatas is an offline worldbuilding engine designed to help Dungeon Masters and worldbuilders in general to build, organize, and explore complex fantasy worlds within a single interactive application. Instead of separating maps, notes, timelines, and relationship diagrams across multiple tools, Sumatas is able to combine them into a single interconnected ecosystem.
The platform features a fully interactive map where users can create and manage kingdoms, cities, villages, landmarks, roads, rivers, lakes, mountains, and custom locations with detailed information. Filters enable creators to show only relevant information and to switch between layers, for example to examine duchies instead of kingdoms. Custom pictures can be included and placed on the map, for example to show the exploration path of a customized adventurer. Travel times are calculated automatically for roads and rivers, after a reference point was set.
A linking system with the possibility of automatic citations makes it easy to connect factions, religions, characters, historical events, and other entities, allowing the entire world to function as a living network instead of isolated pieces of information. An interactive graph visualizes these relationships for a detailed overview.
A built-in customizable timeline enables users to chronologically organize events across centuries. New cities are funded, others are destroyed. Borders change, countries fall under occupation, change names or dissolve. Armies move on the map. Sumatas allows this kind of living world to be presented in one interactive environment. These systems make it easy to understand both the geographical and narrative structure of a world.
Sumatas is built with a modular architecture that emphasizes performance, scalability, and extensibility. World data is stored in structured JSON files, allowing projects to be saved, shared, and expanded over time. The application is designed to handle increasingly large and detailed worlds while remaining responsive through optimized rendering and efficient data management.
How I built it
I built the project completely using Codex and ChatGPT 5.6. I started with my own map and told Codex to create all the features that I wanted to be implemented. Many features are still to come. ChatGPT created the images that are being implemented into js using Codex. These images included among other ships and cities of different sizes, elements for the animated weather system, or environmental elements like forests and mountains. Also, ChatGPT created series of images that were being animated as sprites via Codex, for example to place an exploding volcano. Originally, I prompted directly in Codex. However, especially for the modularization and to increase performance, I sent ChatGPT 5.6 the files, told him to analyze whether Codex did what it should and to create a prompt for Codex to correct and implement new modularizations. Since then, 72 modules were implemented and the monolith was reduced from around 10.000 rows in app.js into around 2830 rows. The modularization is still not finished - According to ChatGPT 5.6, modularization reached around 80-85 %.
Challenges I ran into
The monolith increased over the time drastically in complexity and the system was not designed for performance. The first limitation of the program was that FPS dropped significantly, which is why I needed to give Codex the task to increase performance. Codex achieved that task by replacing expensive full re-renders with targeted updates, using requestAnimationFrame, pausing idle simulations, reducing DOM work, and preventing duplicate listeners/RAF loops. Another problem resulted later, where I wanted to add another feature, which let to widespread regressions: map controls, editing, object creation, and UI broke simultaneously. A once functioning system was not working anymore after a single prompt. I was able to restore it using a backup and started afterwards the process of modularization. Besides that, the linking system did not include everything I wanted and other languages but German were only insufficiently implemented. At that time, I did not have any tokens left in Codex, which is why I changed my work flow and gave ChatGPT 5.6 data and instructions to write and correct code in js and to teach me how to implement that code in the existing data structure.
Accomplishments that I am proud of
I was able to include a linking system like in Obsidian into my program and complemented it with a citation system, where everything inside the citation is automatically posted in all included linked files. For example, if I write The adventurer [[Jeb]] is currently inside the city [[Misusk]]., The entire sentence between the ** is placed both in the files of Jeb and Misusk. This linking system is then presented in a graph view, were every dot inside the graph view can be freely moved. Furthermore, I made it possible to place pictures of adventurers inside their files and place them on the map using circles. I love the possibilities that the system gives me as a dungeon master and cant wait to see how it will unfold in the future.
What I learned
I learned a lot. Before Codex, I simply analyzed data in R. I never programmed anything and had no idea how java script works. I had no idea what sprites are, what a monolith is or what the benefits of modularization is. I learned how to use power shell and what the benefits of a .exe are, even though I decided against this type of program and stuck to the offline html-version due to it being easier to use for other players in my campaign. The last 2 weeks were for me a crash-course in the basics of programming, and I had a lot of fun with it.
What's next for Sumatas Worldbuilding Platform
The UI will be optimized, modularization will be completed, and I want to implement multiplayer systems in the future. Currently, it is already possible to place monsters, characters and NPCs on the map that includes the possibility of a hex-feld with different colors and transparency-options. There is a statistical dice simulation included as well. I want to add new features that will make it possible to have lines of sight and fog of war. As it is already possible to add new maps into the system, this would transform it from a system for lore-building into a program over which we can play our campaign, including encounters etc. For that to work perfectly, more calculatory systems will need to be implemented to make it easier for players to include their characters in the system and to automatically add modifiers. Furthermore, I want to add data anlytic possibility, for example to filter for the cities with the highest number of residents, to calculate general statistics of the world, to find the oldest adventurer etc. Besides that, the current features still need to be adapted, for example the timeline still doesnt look quite like I want it to and the system could currently be quite overwhelming, which is why it needs to be designed beginner-friendly. Additionally, the translations still need to be corrected. While English is currently in a working state, small errors might still need to be corrected. Other languages besides German and English are still work in progress. Performance still needs to be tested for large projects with hundreds or thousands of elements and optimization might still be required for such projects.

Log in or sign up for Devpost to join the conversation.