Skip to content
/ Lumo Public

A realtime lab software for experimentation around 3D models

License

Notifications You must be signed in to change notification settings

aiekick/Lumo

Repository files navigation

Win Lumo Linux Lumo

Lumo

Lumo is a realtime lab software arount 3D models

why this name ?

Lumo is "Light" in Esperanto, its a short and pretty word to me :)

Goals :

  • Implement all realtime rendering Algo used in Games / realtime Presentation softwares
  • Mastering all theses tech for learning purposes
  • Implement my own idea ( by ex related to SubSurface Scatering, or Shadows )
  • Implement a modern use of 3D vulkan Api, and Node Graph related stuff
  • Can Render mesh's or sdf's in the same way
  • And finally can export rendering to picture, video, and maybe a self little portable binary form to be used everywhere
  • Implement some specific VFX algo by plugigns like (compute based mesh sim, morphogenesis, sdf meshing)
  • all these algos at max as possible in GPU only (include mesh generation)

at least, support all rendering features and result of the SketchFab Renderer (yes im loving it haha)

Gettings Started

  • Create a new project (automatically saved when you quit the soft for the moment for easier dev)
  • Click right in the graph and add nodes.
  • Left mouse double click on a texture slot (Orange) of nodes for show the result in the 3d viewport
  • Middle mouse double click on a texture slot (Orange) of nodes for show the result in the 2d viewport
  • select a node and you can tune it in the tuning pane

thats all

How to build

Build dependencies

  • Vulkan SDK 1.2 at least : latest and a compatible GPU
  • Python 3.7 at least : latest

Succesfully Tested with Vulkan SDK 1.3.224.1

Cmake

You need to use cMake. You can use the gui (my prefered way). but, if you run cmake by command line, For the 3 Os (Win, Linux, MacOs), the cMake usage is exactly the same,

Choose a build directory. (called here my_build_directory for instance) and
Choose a Build Mode : "Release" / "MinSizeRel" / "RelWithDebInfo" / "Debug" (called here BuildMode for instance)
Run cMake in console : (the first for generate cmake build files, the second for build the binary)

cmake -B my_build_directory -DCMAKE_BUILD_TYPE=BuildMode cmake --build my_build_directory --config BuildMode

Some cMake version need Build mode define via the directive CMAKE_BUILD_TYPE or via --Config when we launch the build. This is why i put the boths possibilities

Platforms Support

all libs and code used here are cross platform, so compatible (win, linux).

The mac platform is not supported for the moment, due to the vulkan driver. Could be tested at some stage with the Molten-VK implementation..

Build Status Matrix

Target Win (x64) Linux (x64) MacOs (x64)
Lumo Build Status Build Status -
Plugin Audiart Build Status Build Status -
Plugin CodeGenerator Build Status Build Status -
Plugin Landscape Build Status Build Status -
Plugin Lighting Build Status Build Status -
Plugin MeshGen Build Status Build Status -
Plugin Misc Build Status Build Status -
Plugin Particles Build Status Build Status -
Plugin Planet System Build Status Build Status -
Plugin Post Processing Build Status Build Status -
Plugin Screen Space Build Status Build Status -
Plugin Simulation Build Status Build Status -
Plugin Smoke Build Status Build Status -
Plugin RTX Build Status Build Status -

Lumo Native Nodes :

Category Name status Description
Assets/Loader Cube Map img load a cube amp texture
Assets/Loader Model img load a model
Assets/Loader Texture 2D img Load a texture
Assets/Saver Model Exporter img Export model to file. support sketchfab animations
Assets/Saver Texture Exporter img Export texture to file
Assets/Misc Grid img -
Assets/Misc Scene Merger img Meerge many node in the same FBO target
Assets/Renderer MatCap Renderer img Render a matcap on the model
Assets/Renderer Model Renderer img -
Assets/Utils Math img -
Assets/Utils Mesh Attribute img extract mesh attribute (pos, nor, tan, btan, col, depth)
Assets/Widgets Variable img -
Assets/Widgets Color img -

Lumo plugins :

Audiart Plugin :

Description :

Audio Manipulation for Art

Status :

Win Audiart Linux Audiart

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Effects / FFT Node img
✔️ Operations / Historize Node img
✔️ Sources / Speacker Node img
✔️ Viewers / Source Preview Node img
✔️ Viewers / Visu Hex Grid Node img
✔️ Windowing / Blackman FIlter Node img
BluePrints Plugin :

Description :

Blue Print node system like in Unreal Engine for shaders

Status :

Published Open Source Free status
img

Nodes:

Published Node status
Code Generator Plugin :

Description :

This plugin not expose nodes, but a pane for easy node generation ready to compile. you can set inputs and outputs of one or many nodes. then with one operation, generate base cades for :

  • node class
  • module class
  • pass class

Status :

Win Code Generator Linux Code Generator

Published Open Source Free status
✔️ ✔️ ✔️ img
Landscape Plugin :

Description :

Landscape generation

Status :

Win Landscape Linux Landscape

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status
Lighting Plugin :

Description :

Status :

Win Lighting Linux Lighting

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Breaks / Break Texture 2D Group Node img
Exporters / Export Texture Group to file Node img
Joins / Join Texture 2D Group Node img
Lighting / Fog Node img
✔️ Lighting / Diffuse Node img
✔️ Lighting / Light Group Node img
✔️ Lighting / Refraction Node img
✔️ Lighting / Reflection Node img
✔️ Lighting / Model Shadow Node img
Lighting / RoughNess Node img
✔️ Lighting / Shadow Mappings Node img
✔️ Lighting / Specular Node img
✔️ Lighting / Cell Shading Node img
✔️ Preview / Cube Map Preview Node img
✔️ Preview / LongLat Preview Node img
✔️ Renderers / Deferred Renderer Node img
✔️ Renderers / PBR Renderer Node img
✔️ Renderers / Billboard Renderer Node img
✔️ Utils / Depth Converter Node img
✔️ Utils / Pos To Depth Node img
Utils / Cube Map to LongLat Node img
Utils / Cube Map To MatCap Node img
Utils / LongLat to Cube Map Node img
Utils / LongLat To MatCap Node img
✔️ Utils / Flat Gradient Node img
MeshGen Plugin :

Description :

Mesh generation

Status :

Win MeshGen Linux MeshGen

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Curve / Parametric Curve Node img
✔️ Curve / Parametric Curve Differential Node img
✔️ Mesh / Primitive Node img
Mesh Ops / Extrusion along path Node img
✔️ Surface / Parametric UV Surface Node img
MeshSim Plugin :

Description :

Simulation on mesh without texture or uv map

Status :

Published Open Source Free status
✔️ img

Nodes:

Published Node status
Lighting / Shadow Map Node img
Modifiers / Simulator Node img
Renderers / Renderer Node img
MeshSSS Plugin :

Description :

My Mesh Sub Surface Scattering (SSS) Idea

Status :

Published Open Source Free status
✔️ img

Nodes:

Published Node status
Misc Plugin :

Description :

Many misc nodes

Status :

Win Misc Linux Misc

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Misc / Layering Node img
✔️ Misc / Sdf Texture Node img
✔️ Modifiers / Smooth Normals Node img
✔️ Tesselation / Alien Rock Node img
MorphoGenesis Plugin :

Description :

Morphogenesis Nodes like on https://github.com/jasonwebb/morphogenesis-resources

Status :

Published Open Source Free status
img

Nodes:

Published Node status
Particles Plugin :

Description :

GPU particles nodes

Status :

Win Particles Linux Particles

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Emitters / Point Emitter Node img
Simulation / Simulation Node img
Constraints / Force Node img
Planet System Plugin :

Description :

A generation of planet system, like in Universe Sandbox

Status :

Win PlanetSystem Linux PlanetSystem

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Planet Node img
Post Processing Plugin :

Description :

Post Processing Effects

There is a summary nodes for all effects

Status :

Win Processing Linux Processing

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Postpro / Effects / Bloom Node img
✔️ Postpro / Effects / Blur Node img
✔️ Postpro / Effects / Chromatic Aberration Node img
Postpro / Effects / Color Corrector Node img
Postpro / Effects / Depth of Field Node img
✔️ Postpro / Effects / Dilation Node img
✔️ Postpro / Effects / Heat Map Node img
Postpro / Effects / Fog Node img
Postpro / Effects / Grain Node img
Postpro / Effects / LUT Node img
Postpro / Effects / Motion Blur Node img
Postpro / Effects / Outlining Node img
Postpro / Effects / Posteriztion Node img
Postpro / Effects / Pixelisation Node img
✔️ Postpro / Effects / Sharpness Node img
✔️ Postpro / Effects / Tone Mapping Node img
✔️ Postpro / Effects / Vignette Node img
✔️ Postpro / PostProcessing Node img
Screen Space Plugin :

Description :

Many nodes of Simulation

Status :

Win Simulation Linux Simulation

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Postpro / Effects / Screen Space Ambient Occlusion Node (SSAO) img
Postpro / Effects / Screen Space Interior Node (SSI) img
✔️ Postpro / Effects / Screen Space Reflection Node (SSRe) img
Postpro / Effects / Screen Space Refraction Node (SSRa) img
Simulation Plugin :

Description :

Many nodes of Simulation

Status :

Win Simulation Linux Simulation

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Differential Operators / Curl Node img
✔️ Differential Operators / Divergence Node img
✔️ Differential Operators / Gradient Node img
✔️ Differential Operators / Laplacian Node img
✔️ Simulation / GrayScott Node img
✔️ Simulation / Conway Node (Game of Life) img
Smoke Plugin :

Description :

GPU Smoke nodes

Status :

Win Smoke Linux Smoke

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status
RTX Plugin :

Description :

Ray Tracing Integration (RTX)

Status :

Win RTX Linux RTX

Published Open Source Free status
✔️ ✔️ ✔️ img

Nodes:

Published Node status
✔️ Builders / Model to Accel Structure Node img
✔️ Renderers / Model Shadow Node img
✔️ Renderers / PBR Node img
Renderers / SSS Node img
SdfEditor Plugin :

Description :

Sdf Editor like Magica CSG

Status :

Published Open Source Free status
img

Nodes:

Published Node status
SdfMesher Plugin :

Description :

Sdf to Mesh Generation

Status :

Published Open Source Free status
img

Nodes:

Published Node status
SoGLSL Plugin :

Description :

Scripting Over GLSL system for write shaders

Status :

Published Open Source Free status
img

Nodes:

Published Node status
UVDiffMap Plugin :

Description :

UV Mapper of high def Model based of Vertex Diffusion

Status :

Published Open Source Free status
img

Nodes:

Published Node status
VDBTools Plugin :

Description :

OpenVDB Nodes

Status :

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status
Voxel Plugin :

Description :

Voxel Manipulation like Magicavoxel

Status :

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status
VR Plugin :

Description :

Virtual Reality integration

Status :

Published Open Source Free status
✔️ ✔️ img

Nodes:

Published Node status

ScreenShots

v0.3.802 (Vulkan 1.2) :

A bloom effect implemented whith nodes v0_3_802

v0.2.798 (Vulkan 1.0) :

My Shadow mapping (max 8 lights), diffuse, specular and SSAO v0_2_794

v0.2.32 (Vulkan 1.0) :

My MeshSim plugin, with a basic deferred renderrer, one light shadow + ssao v0_2_32

Libraries used by Lumo :

And my libs :

Releases

No releases published

Packages

No packages published