Skip to content

Blamad/ESTree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESTree

Simple game engine capable of rendering scene, performing physics simulations and generating tree models using Lindenmayer sytem formal grammar. Created as a part of masters dissertation.
Executable available in release tab.

YouTube clip demonstrating project capabilities:
main_scene_clip

ESTree is using few libraries:

  • BOOST: general perfomance purposes, multithreading
  • GLFW, GLM, GLAD, OpenGL: scene rendering
  • BulletPhysics: physics simulation (collisions, mouse picking, collapsing towers made of blocks)
  • RapidJSON: parsing configuration files
  • FreeType: text rendering
  • STB: texture loading
  • Freetype: fonts

Single tree scene clip:
single_tree_scene_clip

Sample screenshots presenting current engine abilities regarding tree generation:

  • Simple bush model:
    Sample screenshot
  • Ternary tree models generated from rules described in "The Algorithmic Beauty of Plants":
    Sample screenshot Sample screenshot

Project setup

To setup VS 14 project locally recursively clone repo and run setup.bat. Script will create build directory which will contain project files.
Run build/ESTree.sln and remember to mark ESTree as startup project.
Project requires built x64 Boost linked via env variable (check CMakeLists.txt) and freetype.dll which can be placed in either Windows/System32 or project build directory.

Usage

Scene navigation: RMB + WSAD (Space and left alt to move vertically)
Object selection/pick up: LMB
Console toggle: ~

Application has number of commands available in built-in user console such as:

  • adding and removing objects from scene,
  • creating movable light sources,
  • generating Lindenmayer trees from configuration files,
  • exporting models to .obj files,
  • help listing all actual commands.

For further initialisation launch options you can execute app with --help.