Skip to main content
Version: 1.x

Project Structure

This section explains the structure of the project directory generated by Beutl.
All files used in Beutl are in JSON format. Therefore, you can edit files other than those introduced here with a text editor.

When you create a project named MyProject in Beutl, the following directory is generated:

MyProject
┣━ MyProject.bproj
┗━ MyProject
┗━ MyProject.scene

MyProject.bproj File

This file stores the included scenes, app version, and variables (frame rate, sample rate). Here is an example:

{
"appVersion": "1.0.0",
"minAppVersion": "1.0.0",
"items": [
"MyProject/MyProject.scene"
],
"variables": {
"framerate": "30",
"samplerate": "44100"
}
}

MyProject.scene File

This file stores the width, height, duration, current time, and included elements of the scene. Here is an example:

{
"Id": "{unique object Id}",
"Name": "MyProject",
"Width": 1920,
"Height": 1080,
"Duration": "00:16:32",
"CurrentFrame": "00:00:00",
"Elements": {
"Include": "**/*.belm"
}
}

After some editing, directories and files such as .beutl and *.belm are generated.

.beutl Directory

This directory stores the UI state. If the UI display becomes abnormal, deleting this directory may improve the situation.

*.belm Files

These files represent elements added to the timeline. They store settings for start time, duration, layer number, and drawing content.

Here is an example:

{
"Id": "{unique object Id}",
"Name": "Rectangle",
"Start": "00:00:00",
"Length": "00:05:00",
"ZIndex": 0,
"AccentColor": "#FF008080",
"IsEnabled": true,
"Operation": {
"Id": "{unique object Id}",
"Name": "",
"Children": [
{
"Id": "{unique object Id}",
"Name": " ",
"Properties": [
],
"$type": "[Beutl.Operators].Source:RectOperator"
}
]
},
"NodeTree": {
"Id": "{unique object Id}",
"Name": "",
"Nodes": [ ]
},
"UseNode": false
}