The stack of solutions used within a studio is an important part of the technological ecosystem of a company. That stack is a living thing, changing quite a lot. Some solutions were only used within a project and are now discarded. Others are still used despite being old versions. And it might be hard to make an accurate and full description.
Yet, we can describe broadly what’s currently used at Les Fées Spéciales. As you will see, it’s mostly free and open source software, but not exclusively. And nothing too fancy ! Operating systems, communication, DCCs, web stuff and programming solutions: here goes the list as of early 2019!
Table of Contents
Operating System (OS)
⁃ Linux Mint is our main OS. We have been using it for several versions and we are updating everything to Mint 19.1. The choice was made because of decent Wacom and Nvidia drivers working out the box. An easy but not fancy Desktop manager on a Debian/Ubuntu-based distribution, allowing a lot of answers from the community. We also didn’t have IT and were looking for something easier to manage than a more “professional” Suse or CentOS Linux distribution. To this day we are happy enough with that decision.
⁃ Windows 7/10 is also available on some workstations. Mainly for the administration/production department, and for some Adobe software.
– A couple of Apple computers are also in use, running Mac OS X obviously.
– Ubuntu server: for most of our servers, most of which are run within a virtual machine, in which case QEMU/KVM is providing the virtualization.
– Ansible: Python-based batch ssh commands on distant hosts. It works as a push solution. But it’s working only if all the hosts are connected. Useful in a lot of cases, though.
– Considering Salt Stack: for pull-based solutions, useful for scenarios whereby hosts have to handle automation at boot (the opposite of Ansible)
Digital Content Creation (DCC)
The DCC is what we use as our standard software in most cases when we work on something. It’s all the creation tools. And in a studio, we use them a lot.
- Blender, of course, most of our work is made within the free 3D software package. We have been using 2.77 and 2.79 on most of the projects. One project is currently being made with 2.8 beta.
- Krita: the 2D drawing (and animation) program. Most of the versions have been used for 3 or 4 years (we try most updates to get more stability).
- Unity: for interactivity
- Godot: yet to be used on commercial projects, but we are looking into it, it’s a free 2D and 3D game engine
- Adobe Photoshop*: still used by some people in the company
- Adobe Premiere*: for editing
- Adobe After Effect*: for some motion design, very hard to replace with something else
- Adobe InDesign*: for print and layout
- Processing*: yep, still having some fun with the graphical coding program
- CG-Wire: we have been funding CG-Wire and we are still using the open source Production Tracking solution. We’ll do a dedicated article on it. Check out their solutions if you don’t want to handle servers.
- Before that, for the feature film Dilili, we were using a web app prototype built on top of a Neo4J database, developped internally. But we never managed to release it. It was mainly a proof of concept that ended in production on a feature film.
- LibreOffice: who can live without spreadsheets and documents?
- Google Docs* on Google Drive*: still using a lot of them for efficient sharing and collaborative editing
- Taiga: for Kaban-based tasks, for bug tickets, and stuff like that, we used our own instance of Taiga.
- After years of small scripts, we started using Kabaret Studio, that we love. But we’ll also do a dedicated article. Spoiler: it’s more than an asset manager: it’s a sandbox for you to fill.
Everyone here is using a different IDE/text editor
As for forges and code sharing, it’s important to handle it well.
- Git the source code manager as the base. Git repositories everywhere. Use git, save a developer.
- GitLab: the great forge, to manage all our code in a dedicated instance (not the online version). Also using the runners for CI. It’s just great
- GitHub.com*: for sharing our code only or making pull requests, not used in production. Same for GitLab.com for pull requests only.
- Webmin: for managing the web servers
- Nginx: for the intranet routing and domain handling
- Tornado: as a Python web server for our small web apps. We could have chosen Django or Flask. But history has chosen differently.
We use python 3.6/3.7 and try to avoid python 2.7. It pushes us to get up-to-date code compatible with Blender and future tools. We use a lot of libraries in the Standard Library, but also some important third-party libraries, including:
- NumPy and SciPy
- Mattermost, for chat
- Discourse: for our internal forum
- CGRU: render farm manager, for distribution of the heavy render tasks
- Dokuwiki: for the internal wiki page (as well as the public one, but it’s hasn’t been updated for too long)
- WordPress: for our blogs
- Grafana: for monitoring of many indicators (disk space, load, etc.)
- ffmpeg: the famous video command line audio/video converter. Used in many tools
- ImageMagick, for image converstion (for example for watermarking)
- VLC: the famous video player
- DJV: the free image sequence player
- Tweak RV*: one of the strongest video player, used for heavy image sequence reading, sequence comparing and stufff like that
Depending on the need of the software and services. Mostly:
- PostgreSQL: for CG-Wire
- Reddis: for CG-Wire as a cache, and Kabaret as the main database
- SQLite: for small stuff. Very handy
We have several synology NAS in production, which we use for storage, of course. But Synology has included a lot of easy to use, setup and backup services, that we use mainly for network purposes, including:
- OpenVPN*: as server and authentification
- LDAP*: for user directory and rights. We are trying to connect all the other services (wiki, Taiga, Kitsu, etc) to the LDAP, so we only have to create a new user in the LDAP to get all the services running for him.
- DNS*: a proper domain name server, with reverse DNS and fancy stuff we use. It lists all the services but also hosts in our local domain.
- DHCP*: a router was doing the job at the beginning but we change it to work along with the DNS (for automatic DNS update). No need to ping our mount drives with IPs anymore, just the name of the host.
- Backup services*
All of these services have a minor or secondary server running, in case the main one fails. But we might talk about that setup in a dedicated article on hardware and network.
* Proprietary software. Also marked as proprietary on the synology NAS’ services, as we lack access to the sources (but we didn’t really look for them).