Git Product home page Git Product logo

terrain-gan's Introduction

TerrianGAN

3D terrian generated using SinGAN.

The method is roughly based on the paper [World-GAN: a Generative Model for Minecraft Worlds](https://arxiv.org/abs/2106.10155).
The project consists of two parts Block2Vec and SinGAN-3D.

Implementation Details

  • block2vec model comes from skip-gram and auto-encoder.
  • The 3D space down/up sampling is based on grid sampling and trilinear interpoltation.
  • re-implementation of SinGAN part with some fixes: 1. BatchNorm replaced by InstanceNorm, 2.reconstruct loss from MSE to Cosine Similarity.

Block2Vec

3D terrian has a large number of available tokens: dirt, water, grass, tree, etc. A space with 100 x 100 x 20 blocks with 100 different tokens will cost 2e7 float bytes.
block2vec uses skip-gram and auto-encoder model to transform geo space into a latent token-based space with few dims.

fig. a list of tokens reprenseted in three-dimensional space

SinGAN-3D

Down/Up sampling method using grid sample and trilinear interpoltation is happend in the latent space.

fig. down sample in latent space then reprensted in geo space

Random Generate

Random Generate

raw terrian

random noise generated 1

random noise generated 2

Random Size Generate
Can generate any size of terrian, due to full convolution network.

2x size

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.