Coollab is a node-based software to create visual effects and generative-art, similar to TouchDesigner.
Coollab's main goal is to be as intuitive and easy to use as possible. Effects are high-level and they just work out of the box! You don't need to know any math or programming to make your own very cool effects! (Although having those skills allows you to do some advanced stuff).
Start with any image or shape, like your Webcam, add any modifier on top of it, like a Kaleidoscope, and you already have some cool results. You can then play with the 100s of effects to change the color, distort the image, add particles, react to audio, and much more!
Coollab can be used for VJing, exporting videos, creating interactive installations, etc.!
Here are some tutorials to help you get started.
⚠ Since we use Git submodules you need to clone them alongside the project. The easiest way is to use the command:
git clone --recursive https://github.com/Coollab-Art/Coollab
If later on while compiling you get an error like:
[cmake] CMake Error at CMakeLists.txt:44 (add_subdirectory):
[cmake] The source directory
[cmake]
[cmake] C:/Users/fouch/Downloads/Coollab/Cool
[cmake]
[cmake] does not contain a CMakeLists.txt file.
it most likely means you forgot the submodules. To grab them after having cloned the project, use:
git submodule update --init --recursive
Coollab is built using CMake. If you don't know how to install and use it, here is a tutorial.
Install clang-format and clang-tidy. Clang-format will format your code automatically, and clang-tidy will warn you when you make programming mistakes. These are two very important tools!
- TODO create a page explaining how to edit the Default User Data (imgui.ini, color_config.json, etc)
- If you add a third-party library, check its license and, if it requires it, make sure we install the license in the CMake:
# LICENSE
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}\\\\LICENSE")
install(FILES "lib/cpp-httplib/LICENSE" DESTINATION license/cpp-httplib)
-
TODO Talk about debug options (and you can create your own)
-
TODO Talk about shortcut for ImGui Item Picker
-
TODO Talk about the ImGui demo window
-
TODO how to run the tests
:::tip
Never commit on the main branch!
We always work on branches, and then create pull requests that must be reviewed by others before merging them into main.
:::
- Create a branch on Cool, and a branch on CoolLab. They should both have the same name.
- Switching between your branch and main is annoying because we use submodules and you would have two branches to switch and it can be painful. This is why we strongly recommend that you clone the repository twice, and you always leave one of them on main, and the other on your branch.
If you are about to create a small system that doesn't have any dependencies on the rest of Cool, then making it into a standalone library makes a lot of sense.
We try to do that whenever possible because it encourages a more decoupled and flexible design, and makes it easily reusable by others without having to include the whole of Cool.
- Create a new repository from our template:
- Add the library to our list of Standalone libraries under
## Standalone libraries
by adding:
<a href="https://github.com/Coollab-Art/mynewlib">
<img align="center" src="https://github-readme-stats.vercel.app/api/pin/?username=Coollab-Art&repo=mynewlib" />
</a>
(NB: Replace the two occurences of mynewlib
with the name of your library)
- Clone the repo recursively:
git clone --recursive url/to/the/new/repo
- In the cloned repo, fill in "setup.py" and run the script: it will setup everything and then remove the Python scripts used for the setup and amend the initial commit
- Commit as "🎉 Initial commit" and
force push
it - Implement the library