This page will explain how to get and use sources of Moria's Race.

Table of content:

Software Used On Moria's Race
Getting Sources With Blender-Pipeline ( Graphical User Interface )
Getting Sources With Special Terminal App
Sources Server API ( Advanced )


Software Used On Moria's Race


Pop!_OS GNU / Linux
Ubuntu GNU / Linux

The project started in 2020 on Ubuntu GNU / Linux system. Later the system was switched to Pop!_OS GNU / Linux. Both of which are variants of the GNU / Linux system. To access the source files it's highly advised to use a proper full GNU / Linux system. Any variant should do. But if you have troubles, try the ones we used. Using the sources on Windows or MacOS is theoretically possible. But there could be hurtles that only an advanced user of those systems could overcome.

Blender-Pipeline

Blender-Pipeline is the main organizational tool for the Moria's Race project. Think of it as a kind of mini-operating system developed only to make a movie. It has access to all the files necessary to make the movie. It has access to every shot in every scene in the film's script. To access the sources meaningfully you will need Blender-Pipeline.

Blender

Something like 90% of all work on the movie was done inside of Blender. A wonderful Libre suit for 3D graphics and video editing. The source files of the movie use Blender in an advanced fashion. Therefor opening those files in a different program might not even work. There are plenty of links and various Blender-Specific things in Moria's Race sources. So having Blender installed is a must.

GIMP

GIMP or GNU Image Manipulation Program is an alternative to Adobe Photoshop which is useful to make various 2D composition. Some source files are GIMP files.

Audacity

Audacity is an editor of audio. It was used to mix the original score and to prepare dialogue parts for the movie. Some source files are Audacity files.

Rosegarden

Rosegarden is a simple MIDI sequencer used to write some of the original score in the movie. To access the sources of the original score you will need to use Rosegarden.



Getting Sources With Blender-Pipeline ( Graphical User Interface )


To get sources of Moria's Race using the Graphical User Interface you first need to install Blender-Pipeline. It is available on a Git Repository. To download it you can either go to the link and click on a little download icon, or use the terminal, which is the advised way to do it.

First let's make a folder on your computer where you would store similar programs. You can skip this step. But I like to keep everything organized.

mkdir Software

The mkdir program is a program which can be used to make folders. It asks of one thing to be written after the name of the program. One "argument" so to speak. And the argument is the name of the folder that you want to make. In this case we want to make the "Software" folder.

As soon as it's done we can use a different program called cd which stands for "change directory" to go into that folder that we created. Guess what... it also wants us to give it an argument. A name of the folder that we want to go to.

cd Software

Now we want to download the Blender-Pipeline program. For this we can use a program called git. But it's not as simple as telling it the name of the program you want to download. It's not a program specifically to download software. Even it is used a lot to do that. But rather it is a program to help people to work remotely on projects. And this program can help you download the folder that we uploaded that contains the Blender-Pipeline program inside of it. So now we are going to it two arguments. First, telling it to clone a folder. And then where to get the folder from. Here is how the full command looks:

git clone https://notabug.org/jyamihud/Blender-Pipeline

Now you should have a "Blender-Pipeline" folder inside of your "Software" folder. So let's go into the "Blender-Pipeline" folder that we just downloaded. You know what to do if you paid any attention.

cd Blender-Pipeline

Inside of this folder we should have a Python file called "run.py" this is the main file that will execute the rest of the program. To run it you have to pass it as an argument to a program called python3. Like this:

python3 run.py



If everything went well until now you will be greeted with this friendly language configuration screen. Blender-Pipeline asks you what language you want the user interface to be. Type English if you just want English.



Now Blender-Pipeline will check that your system doesn't have any missing modules. If anywhere during the check you will have an error. Read it carefully. It will tell you what modules are missing.

3 most common missing modules are:

PyGObject ( GTK )
PyCairo
Pillow ( PIL )





If you have everything installed properly and there were no fails. It will start the program and you will see a somewhat empty screen like this. This is Blender-Pipeline's project selection menu. It is empty since you didn't start any projects yet.



Also Blender-Pipeline should now be accessible from the Graphical Interface software menu on your system.



To start a project press the button in the top-left corner.



It will ask you for two things:

Where do you have your projects?
What is the name of your project's folder?

So if you want the sources of Moria's Race to end up in /home/username/Projects/MoriasRaceSources then Select Folder /home/username/Projects by clicking the first button. And then type MoriasRaceSources in the text field below.



When you done hit okay.



And now you can see the project MoriasRaceSources appeared in the selection menu.



If you double-click on the project it will open the project itself. It is obviously empty since you didn't do anything in it yet. And you don't want to do anything. You want to access a remote project to see the sources of Moria's Race.



For this go to the settings. They are in the bottom-left corner.



And in there find the Remote Server option.



To get to Moria's Race sources the server should be:

https://bass.madiator.cloud

And then hit Update Project to get the essential files. Those should download very fast. The essential files include the story file which contains all of the scenes in the movie's script. So if you will edit the story or placement of nodes on the main editor, do not click Update Project again. Since it will nullify your edits.



Now if you quit the settings you will see a whole world of story nodes and other linked things. This is what we call the Story Editor. To navigate in it user the middle mouse button, or on laptops you can use the scrolling on the touch-pad to go both vertically and horizontally.

The main plot of the movie are the nodes connected to the Start and the End node. But there are other "scenes" as well. Some of them contain posters files. Some other junk.



On the top-right you can find the buttons to access assets. There are 4 categories of assets. Characters, represented by the monkey head; Vehicles, represented by the car icon; Locations, represented by the globe icon and Other Objects, represented by the box icon.



Let's go to the character Dani for example. If you click on him you will see that there is nothing there. You have a generic blend file and nothing else. This is because you didn't download Dani yet.



Every asset and shot will have a button letting you download the remote files needed to access it. In the case of Dani we can see we need something like 40 files to fully access this asset. A lot of it is due to Blender files being very link-heavy. So you need the actual Dani.blend for example, but it needs some textures that are linked into it, all of which are separate files. And sometimes it might even have stuff linked from different .blend files, who might have stuff linked into them. And thus some things will require a lot of downloaded files to function properly. But don't worry about it. As you can see Blender-Pipeline takes care of it for you.



When you click on the download icon it will show you what files are changed. This is very important to look through. You may have some things edited in some of the assets. If you will let it re-download, it will cancel all of your edits of those files. In the case of Dani in this example it wants to overwrite an existing Dani.blend file that was generated by Blender-Pipeline. So there is nothing inherently wrong with overwriting it.



Also this window comes with a useful search-box that can help you get rid of the junk that you might not want to download. For example here I am searching for all .blend1 files that Blender uses to save backups and also all files containing _backup in their name. Which is a way Blender-Pipeline makes backups. You can use the Toggle Visible button to un-check everything that is currently found by the search.



If you click on any of the scenes, the source files for the shots are access-able through the shots menu on the left. You will there a similar button as in the assets menu. Be aware, since animation files contain linked assets those tend to require huge downloads. But if you are accessing multiple shots in the same scene, you will have to download a lot only for the first shot. Because if the second shot has the same files linked, you already have them. And therefor you don't need to download them again.


Getting Sources With Special Terminal App



For those who want to be a little more old school, or just want to access stuff that is not available through Blender-Pipeline at the moment ( like the mus folder ), you can use a very simple terminal app that was developed to browse and download files.

CAUTION!!! The terminal app ( at the moment ) doesn't check for changes in files. And doesn't ask you what you want to download. It just downloads and updates everything that's needed. Your changes could get lost. Be aware of this fact.

Installing the Software



Similarly to Blender-Pipeline, you can install it using git.

git clone https://notabug.org/jyamihud/MoriasRaceSourceDownloader

Then we go into the directory of the program:

cd MoriasRaceSourceDownloader

And finally we run the software:

python3 run.py



You will be greeted with the banner of the program. And with an option to type help. Do it.



Typing help will give you this text, which tells you what you can do. Let's go over everything and try to get to listen to a soundtrack from the movie.



Typing ls gives us everything there is in the current folder. But we need to go to a folder called mus where Moria's Race music and sound effects are stored.



When we type cd mus we navigate to the folder called mus. You can do that with any other folder, to navigate into it. So from here using ls we can see that there is a folder called score inside of which there are a lot of files. Let's get the one called tower_spin.ogg.



If you type op tower_spin.ogg it will download and open that file. If whatever you are trying to open is a .blend file it will download everything that it needs, like textures and other linked .blend files. If you want to have more control over this action, please use Blender-Pipeline instead.



As you can see the soundtrack has been downloaded and opened up in VLC player which is the default player for .ogg files on my computer. If it will not find a default program it will just download the file and you will have to open it manually.



And lastly, you can type cd .. if you want to navigate backwards.


Sources Server API ( Advanced )





https://bass.madiator.cloud

If you run it in your normal browser, you will get a very basic page listing some options that you can get. The API outputs JSON structured data. Firefox web browser has a built-in JSON parser, which will let you see the structure in a bit more organized way.

To list files and folder in specific folder use the /list/ API call.

https://bass.madiator.cloud/list/ast

This will give us a JSON formatted string as a result, listing the folders in the ast folder in the project.

{"folders": ["veh", "loc", "obj", "chr"], "files": {}}

As you can see this folder doesn't have any files, but has 4 folders: veh, loc, obj and chr. Let's look at other outputs.

https://bass.madiator.cloud/list/ast/chr

This should give us everything there is in ast/chr folder.



In this case we have no folders but we do have files. And since files are a bit more complicated to get, each file comes with 2 data-points.

md5 is the MD5 hash of the file. It is useful to see whether the file is changed on your system. But it is also useful for security to check whether the file that was downloaded is the one requested.

filesize is the size of the file in bytes. Useful to draw progress bars, or to judge whether you have space to download anything.

Then there is whole concept of linked files that the Server API is also helping you to deal with ahead of the time. Blender files are notoriously link-heavy. You can have anything from textures to other .blend files linked into a blend files. In which case, to make this file work you have all those linked files to be present in correct folders.

Let's look at what do we need for Moria.blend:

https://bass.madiator.cloud/blend/ast/chr/Moria.blend

Note that here instead of list we use blend as the function.



As you can see we get a similar list to the one when we list things in folders. The only major difference is that filenames include the full path from the root of the project.

Now let's actually download something. For this we have 2 API functions download and download_z.

https://bass.madiator.cloud/download/ast/chr/Moria.blend

This simple download will give you access to the file itself, byte for byte as it is in the remote folder.

https://bass.madiator.cloud/download_z/ast/chr/Moria.blend

While download_z will give you a ZLIB compressed version. It is useful for .blend files and other files that are very compressible. But you will have to uncompress them yourself. Using this API call you will also get an HTTP header with the size of the compressed file. So you could draw the progress bars accurately. Normal download expects you to use the list function instead to get the size.