Real time broadcast graphics application built in Golang using GTK go bindings.
- Copy
default_conf.json
inartist/
andviz/
and rename toconf.json
. - Download and build Chroma Engine.
The preview window uses
cgo
to create a GtkGLRender window using Chroma Engine. The expected file structure is shown below, either copy or symlink files from Chroma Engine. For an alternative structure, modify the compiler flags inlibrary/preview.go
.
chroma-viz
├───library
│ └───preview.go
├───chroma-engine
│ ├───libchroma.a
│ └───chroma-engine.h
...
- Setup a sql database (e.g.
mariadb
)
- (First Install) Import the db schema in
library/hub/chroma_hub.sql
to the sql db or start Chroma Hub in the next step with the -c flag. - Run Chroma Hub
go run ./cmd/chroma-hub -u <username> -p <password>
where username
and password
correspond to the user login for the sql database.
- Chroma Hub creates a REST api at the port specified on startup, which is makes assets available to Chroma Viz, Artist and Engine.
- Run Chroma Viz
go run ./cmd/chroma-viz
- Run Chroma Artist
go run ./cmd/chroma-artist
Chroma Viz retrieves a list of templates from Chroma Hub on startup. Chroma Viz communicates with Chroma Engine over tcp to render graphics.
- Pages can be easily created from templates by double clicking on the template in the template list.
- Each page has its own set of properties, editable through the editor
- Chroma Engine combines the template and the data set in the editor to render the graphic.
demo.mp4
Chroma Artist can be used to design templates, which can be imported to Chroma Hub.
- Tree View for creating the heirachy of geometry elements
- Keyframes for creating animations, by setting a geometry attribute to a value, the value given by the user, or a value of another attribute.
- Import/Export templates and assets to Chroma Hub.
artist_demo.mp4
This is a personal project, not an application intended for production.