All Projects → a1studmuffin → Spaceshipgenerator

a1studmuffin / Spaceshipgenerator

Licence: other
A Blender script to procedurally generate 3D spaceships

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Spaceshipgenerator

Improved Sapling Tree Generator
A new version of Blenders sapling tree generator addon with improvements, new features, and bug fixes
Stars: ✭ 107 (-98.47%)
Mutual labels:  procedural-generation, 3d
Cpp 3d Game Tutorial Series
C++ 3D Game Tutorial Series is a YouTube tutorial series, whose purpose is to help all those who want to take their first steps in the game development from scratch.
Stars: ✭ 400 (-94.28%)
Mutual labels:  game-development, 3d
Cosmonium
3D astronomy and space exploration program.
Stars: ✭ 153 (-97.81%)
Mutual labels:  procedural-generation, 3d
Unity3d Ai And Procedural Generation Framework
Unity3D AI and Procedural Generation Framework.
Stars: ✭ 58 (-99.17%)
Mutual labels:  procedural-generation, game-development
Roygbiv
A 3D engine for the Web
Stars: ✭ 499 (-92.86%)
Mutual labels:  game-development, 3d
Icon Machine
Web application for randomly generating pixel art icons.
Stars: ✭ 73 (-98.96%)
Mutual labels:  procedural-generation, game-development
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (-95.27%)
Mutual labels:  game-development, 3d
Fxgl
Stars: ✭ 2,378 (-65.99%)
Mutual labels:  game-development, 3d
Engine Native
Native engine for Cocos Creator
Stars: ✭ 488 (-93.02%)
Mutual labels:  game-development, 3d
Godot 2d Space Game
A 2D space exploration and mining game made with Godot and our AI framework
Stars: ✭ 462 (-93.39%)
Mutual labels:  procedural-generation, game-development
Pioneer
A game of lonely space adventure
Stars: ✭ 979 (-86%)
Mutual labels:  procedural-generation, 3d
Silk.net
The high-speed OpenAL, OpenGL, Vulkan, and GLFW bindings library your mother warned you about.
Stars: ✭ 534 (-92.36%)
Mutual labels:  game-development, 3d
Babylon.js
Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
Stars: ✭ 15,479 (+121.38%)
Mutual labels:  game-development, 3d
Godot3 procgen demos
Exploring Procedural Generation algorithms in Godot
Stars: ✭ 85 (-98.78%)
Mutual labels:  procedural-generation, game-development
Dust3d
🐪 Dust3D is a cross-platform open-source 3D modeling software. Auto UV unwrapping, auto rigging with PBR Material support, pose and motion authoring all in one.
Stars: ✭ 2,263 (-67.63%)
Mutual labels:  game-development, 3d
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-96.02%)
Mutual labels:  game-development, 3d
Gplayengine
Cross-platform C++ 2D / 3D game engine.
Stars: ✭ 129 (-98.16%)
Mutual labels:  game-development, 3d
Zengine
2D | 3D Game development library
Stars: ✭ 145 (-97.93%)
Mutual labels:  game-development, 3d
Etengine
Realtime 3D Game-Engine with a focus on space sim. Written in C++ 14
Stars: ✭ 408 (-94.16%)
Mutual labels:  game-development, 3d
Hedera
paint 3D ivy in the Unity Editor, watch procedurally generated meshes simulate growth and clinging in real-time
Stars: ✭ 526 (-92.48%)
Mutual labels:  game-development, 3d

Spaceship Generator

A Blender script to procedurally generate 3D spaceships from a random seed.

Spaceship screenshots

Usage

  • Install Blender 2.80 or greater: http://blender.org/download/
  • Download newest add_mesh_SpaceshipGenerator.zip from the Releases section
  • Under Edit > Preferences... > Add-ons > Install... open the downloaded ZIP file
  • Under Edit > Preferences... > Add-ons enable the "Add Mesh: Spaceship Generator" script (search for "spaceship")
  • Add a spaceship in the 3D View under Add > Mesh > Spaceship
  • Expand the Spaceship tab that appears in the bottom left of the viewport to adjust procedural generation settings

How it works

Step-by-step animation

Watch on YouTube: https://www.youtube.com/watch?v=xJZyXqJ6nog

  • Start with a box.
  • Build the hull: Extrude the front/rear faces several times, adding random translation/scaling/rotation along the way.
  • Add asymmetry to the hull: Pick random faces and extrude them out in a similar manner, reducing in scale each time.
  • Add detail to the hull: Categorize each face by its orientation and generate details on it such as engines, antenna, weapon turrets, lights etc.
  • Sometimes apply horizontal symmetry.
  • Add a Bevel modifier to angularize the shape a bit.
  • Apply materials to the final result.
  • Take over the universe with your new infinite fleet of spaceships.

Extreme examples

The following screenshots were created using extreme values for the number of hull segments and asymmetry segments to show how the algorithm works.

Extreme spaceship screenshots

Tips and Tricks

  • By default the script will delete all objects starting with Spaceship before generating a new spaceship. To disable this feature, remove or comment out the call to reset_scene() around line 735 in the main function.
  • You can provide a seed to the generate_spaceship() function to always generate the same spaceship. For example, generate_spaceship('michael').
  • The generate_spaceship() function takes many more parameters that affect the generation process. Try playing with them!
  • You can replace the textures with your own ones. All textures are applied using global-space cube UVs. hull_normal.png is a normal map that adds extra surface "greebles". hull_lights_diffuse.png is an additive diffuse texture to set the color of the window lights. hull_lights_emit.png is an emissive texture to make the windows glow in darkness.

Credits

Written for fun as part of the /r/proceduralgeneration June 2016 monthly challenge.

Released under the MIT License.

Authored and maintained by Michael Davies.

GitHub @a1studmuffin Twitter @butterparty

Special thanks to @panzi for bugfixes, a proper GUI and build script. Also to @mjrthemes for bugfixing, and @LendoK for the 2.80 port.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].