gdmc2024

"Vault of Immeasurable Knowledge", a submission by Niels-NTG for the 2024 Minecraft AI Settlement Generation Challenge

https://github.com/niels-ntg/gdmc2024

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.6%) to scientific vocabulary

Keywords

architecture game-ai minecraft pcg procedural-content-generation
Last synced: 6 months ago · JSON representation

Repository

"Vault of Immeasurable Knowledge", a submission by Niels-NTG for the 2024 Minecraft AI Settlement Generation Challenge

Basic Info
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
architecture game-ai minecraft pcg procedural-content-generation
Created over 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

GDMC 2024

Submission by Niels-NTG for the 2024 Generative Design in Minecraft AI Settlement Generation Challenge.

In this competition participants design and implement an algorithm that constructs a settlement in Minecraft. Submissions are judged on the aesthetics and narrative qualities of the output, on how functional the structure is from a gameplay perspective, and how well it adapts to any arbitrary Minecraft landscape.

Vault of Immeasurable Knowledge

The Vault of Immeasurable Knowledge is a massive underground library that contains every computer science paper ever published on ArXiv, the free and open science repository by Cornell University.

After entering the surface access building you are greeted by an atrium that spans the entire depth of the library, The contents of the library are grouped by publication year ranging from 1990 till now. Each year is sorted alphabetically by primary author of the work. Each landing has way finding indicating the range of works on this floor, as well as an index listing the range of works for each cabinet on that floor.

2024-07-23_22.36.09 View up of the central atrium.

2024-07-23_22.50.54 One of many labyrinthine hallways filled with books containing abstracts of real-life scientific papers.

2024-07-23_22.36.19

2024-07-21_20.30.34 Staircase that winds around the central atrium connecting all floors.

2024-07-21_21.25.48

2024-07-23_22.35.44 Small garden located at the bottom of the atrium.

2024-07-24_14.51.05 Exterior view of the surface entrance.

isometric Isometric rendering of the whole structure. Image credit goes to Arhur van der Staaij, who created this using his mcrender tool.

2024-07-21_21.33.382024-07-21_21.33.43 Book generated based on the metadata of Context-free multilanguages (1991) by Donald E. Knuth.

Setup

This program is designed to work with Minecraft 1.20.2 combined with the HTTP Interface Forge mod. The program itself is written for Python 3.11 and requires the packages listed requirements.txt (with the exception of kaggle, which is only needed to update the dataset). Also don't forget to run git submodule update --init in install the custom fork of the gdpc package. To start the generator, open a world in Minecraft, run the in-game /setbuiltarea fromX fromY fromZ toX toY toZ command and run main.py, no CLI arguments required.

Method

Pre-built structures

The generator is primarily designed around placing discrete pre-build structures into the world. Each structure is designed by hand and are defined as folders containing an NBT file and a Python file with the same name of a class inheriting from StructureBase.py that defines custom behaviour and properties of that structure.

Wave Function Collapse (WFC)

The layout of each floor is constructed using the Wave Function Collapse (WFC) algorithm. Each structure has constraints defining which structures can be adjacent to other structures, which includes relative position (front, back, left, right, up and down) and rotation. When initialising, the system creates a volume grid where each cell contains all possible states (all structures with all possible rotations). Then the system propagates through all cells trying to reduce the entropy of the volume either until all cells are fully collapsed to a single state. Depending on the size of the volume and the complexity of the constraints this may require more than one attempt. For this reason the generator spawns parallel processes to find a valid solution quicker.

Written books

Since Minecraft 1.20 it's possible to construct book shelves with actual written books inside of them.

The books in this generator are created from the Kaggle dataset that contains metadata of all works on ArXiv. This metadata includes the title, authors, publication dates, version history, abstract and additional notes, amongst other things, but not the content of the papers itself. Kaggle provides this data as one massive text tile where each entry is represented by a JSON object and a line break. To parse this into a format Minecraft can understand we first split the entries per its primary category (eg. cs.AI, math.CT, physics.atom-ph, etc.) and publication year. It writes a file for each category-year combination, with each entry converted into an SNBT format for Minecraft's written books. This includes the title, authors, DOI, ArXiv ID, topics, publication year and additional notes. Sadly due to limitations on memory/storage size of chunks in Minecraft it isn't possible to include the abstracts for very categories such as computer science or mathematics without the game becoming unresponsive or crashing.

Owner

  • Name: Niels NTG Poldervaart
  • Login: Niels-NTG
  • Kind: user
  • Location: The Netherlands

Front End Developer at Dedact.nl + AI researcher at Leiden University Generative artist + Data, Interaction and Game Designer 🇪🇺 🇳🇱

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 200
  • Total Committers: 1
  • Avg Commits per committer: 200.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 175
  • Committers: 1
  • Avg Commits per committer: 175.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Niels NTG n****9@g****m 200

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels