WIP: 103268-job-task-progress #104185
@ -126,3 +126,33 @@ enable the race condition checker, and all other kinds of useful things.
|
||||
If you're interested in helping out with Flamenco development, please read [Get Involved][get-involved]!
|
||||
|
||||
[get-involved]: {{<ref "development/get-involved" >}}
|
||||
|
||||
|
||||
## Software Design
|
||||
|
||||
The Flamenco software follows an **API-first** approach. All the functionality
|
||||
of Flamenco Manager is exposed via [the OpenAPI interface][openapi] ([more
|
||||
info](openapi-info)). The web interface is no exception; anything you can do
|
||||
with the web interface, you can do with any other OpenAPI client.
|
||||
|
||||
- The API can be browsed by following the 'API' link in the top-right corner of
|
||||
the Flamenco Manager web interface. That's a link to
|
||||
`http://your.manager.address/api/v3/swagger-ui/`
|
||||
- The web interface, Flamenco Worker, and the Blender add-on are all using that
|
||||
same API.
|
||||
|
||||
[openapi]: https://projects.blender.org/studio/flamenco/src/branch/main/pkg/api/flamenco-openapi.yaml
|
||||
[openapi-info]: https://www.openapis.org/
|
||||
|
||||
## New Features
|
||||
|
||||
To add a new feature to Flamenco, these steps are recommended:
|
||||
|
||||
1. Define which changes to the API are necessary, and update the [flamenco-openapi.yaml][openapi] file for this.
|
||||
1. Run `go generate ./pkg/...` to generate the OpenAPI Go code.
|
||||
1. Implement any new operations in a minimal way, so that the code compiles (but doesn't do anything else).
|
||||
1. Run `make generate` to regenerate all the code (so also the JavaScript and Python client, and Go mocks).
|
||||
1. Write unit tests that test the new functionality.
|
||||
1. Write the code necessary to make the unit tests pass.
|
||||
1. Now that you know how it can work, refactor to clean it up.
|
||||
1. Send in a pull request!
|
||||
|
@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Download
|
||||
weight: 2
|
||||
---
|
||||
|
||||
Download Flamenco for your platform here. Each download contains both Flamenco
|
||||
|
@ -1,9 +1,17 @@
|
||||
---
|
||||
title: Design Principles
|
||||
weight: 25
|
||||
title: Mission & Design
|
||||
weight: 1
|
||||
|
||||
aliases:
|
||||
- /design-principles/
|
||||
|
||||
resources:
|
||||
- name: components
|
||||
src: flamenco_components.png
|
||||
title: Flamenco Components
|
||||
---
|
||||
|
||||
This page describes some of the design ideas & principles behind Flamenco.
|
||||
Flamenco is a lightweight, cross-platform framework to dispatch and schedule rendering jobs for smaller animation studios and individuals at home.
|
||||
|
||||
## Target Audience
|
||||
|
||||
@ -13,6 +21,12 @@ the farm to execute tasks. [Blender Studio][studio] uses a handful of servers,
|
||||
and combines those with various desktop machines when they're not used by the
|
||||
artists.
|
||||
|
||||
There is no need to compile or build anything. The Flamenco project distributes
|
||||
executables and a Blender add-on for you to install and run ([downloads][downloads]).
|
||||
|
||||
[studio]: https://studio.blender.org/
|
||||
[downloads]: {{< ref "/download/" >}}
|
||||
|
||||
## Design Principles
|
||||
|
||||
The following principles guide the design of Flamenco:
|
||||
@ -66,46 +80,26 @@ Flamenco uses [SQLite][sqlite] for this.
|
||||
|
||||
[sqlite]: https://pkg.go.dev/modernc.org/sqlite
|
||||
|
||||
## Infrastructure & Supported Platforms
|
||||
## Supported Platforms
|
||||
|
||||
As the Blender.org project is built on free and Open Source software, Linux is
|
||||
the main platform Flamenco is developed against. Windows and MacOS will also be
|
||||
supported, but on a best-effort basis with help from the community.
|
||||
|
||||
## Infrastructure
|
||||
|
||||
Setting up a render farm is not as simple as pushing a button, but Flamenco aims
|
||||
to keep things as simple as possible. What you need to run Flamenco is:
|
||||
to keep things as simple as possible.
|
||||
|
||||
- One or more computers to do the work, i.e. running Flamenco Worker.
|
||||
- A computer to run the central software, Flamenco Manager. This could be one of
|
||||
the above computers, or a dedicated one.
|
||||
- A local network with file sharing already set up, so that the above computers
|
||||
can all reach the same set of files.
|
||||
What you need to run Flamenco is:
|
||||
|
||||
Since Blender Studio fully runs on Open Source software, Linux is the main
|
||||
platform Flamenco is developed for. Windows and macOS will also be supported,
|
||||
but will need help from the community to get tested & developed well.
|
||||
- One or more computers to do the work, i.e. running **Flamenco Worker**. You'll
|
||||
probably also want to install [Blender][blender] there.
|
||||
- A computer to run the central software, **Flamenco Manager**. This could be
|
||||
one of the above computers, or a dedicated one.
|
||||
- A local network with **file sharing** already set up, so that the above
|
||||
computers can all reach the same set of files.
|
||||
|
||||
## Software Design
|
||||
[blender]: https://www.blender.org/
|
||||
|
||||
The Flamenco software follows an **API-first** approach. All the functionality
|
||||
of Flamenco Manager is exposed via [the OpenAPI interface][openapi] ([more
|
||||
info](openapi-info)). The web interface is no exception; anything you can do
|
||||
with the web interface, you can do with any other OpenAPI client.
|
||||
|
||||
- The API can be browsed by following the 'API' link in the top-right corner of
|
||||
the Flamenco Manager web interface. That's a link to
|
||||
`http://your.manager.address/api/v3/swagger-ui/`
|
||||
- The web interface, Flamenco Worker, and the Blender add-on are all using that
|
||||
same API.
|
||||
|
||||
[openapi]: https://projects.blender.org/studio/flamenco/src/branch/main/pkg/api/flamenco-openapi.yaml
|
||||
[openapi-info]: https://www.openapis.org/
|
||||
|
||||
## New Features
|
||||
|
||||
To add a new feature to Flamenco, these steps are recommended:
|
||||
|
||||
1. Define which changes to the API are necessary, and update the [flamenco-openapi.yaml][openapi] file for this.
|
||||
1. Run `go generate ./pkg/...` to generate the OpenAPI Go code.
|
||||
1. Implement any new operations in a minimal way, so that the code compiles (but doesn't do anything else).
|
||||
1. Run `make generate` to regenerate all the code (so also the JavaScript and Python client, and Go mocks).
|
||||
1. Write unit tests that test the new functionality.
|
||||
1. Write the code necessary to make the unit tests pass.
|
||||
1. Now that you know how it can work, refactor to clean it up.
|
||||
1. Send in a pull request!
|
||||
{{< img name="components" size="small" lazy=false >}}
|
BIN
web/project-website/content/mission/flamenco_components.png
Normal file
BIN
web/project-website/content/mission/flamenco_components.png
Normal file
Binary file not shown.
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 300 KiB |
Loading…
Reference in New Issue
Block a user