---
title: 'NextEngine UI documentation'
disqus: hackmd
---
:uk: NextEngine UI
===
[:fr: Version française](https://hackmd.io/@186_RLB_TJyxswhmNIsMVg/Sy4LP0GWd)
[TOC]
+ [Assets](https://hackmd.io/@186_RLB_TJyxswhmNIsMVg/Byt906c8u)
+ [Editor](https://hackmd.io/@186_RLB_TJyxswhmNIsMVg/B18h3Tq8u)
## UI Presentation

1. Current version number
2. Toggle button to switch between full log and last line only
3. Toggle button to switch on/off log write to disk
4. Button to open the Template Editor
5. Real-time application monitoring
6. Preview channels
7. Channels settings
8. Log view
9. Command line input
## Preview settings

1. Preview name (visible into NDI output)
2. Select video mode
3. Enable/disable Newtek NDI output
4. Enable/disable Decklink SDI output
5. Click on preview zoom in/out fullscreen
Video settings:
```csvpreview {header="true"}
Number,Format,Description
1,720p5000, 1280x720 Progressive 50fps
2,1080p2500, 1920x1080 Progressive 25fps
3,1080p2997, 1920x1080 Progressive 29.97fps
4,1080p3000, 1920x1080 Progressive 30fps
5,1080i5000, 1920x1080 interlaced 50fps
6,1080p5000, 1920x1080 Progressive 50fps
7,1080i5994, 1920x1080 interlaced 59.94fps
8,1080p5994, 1920x1080 Progressive 59.94fps
9,1080i6000, 1920x1080 interlaced 60fps
10,1080p6000, 1920x1080 Progressive 60fps
11,2160p2500, 3840x2160 Progressive 25fps
12,2160p2997, 3840x2160 Progressive 29.97fps
13,2160p3000, 3840x2160 Progressive 30fps
14,2160p5000, 3840x2160 Progressive 50fps
15,2160p5994, 3840x2160 Progressive 59.94fps
16,2160p6000, 3840x2160 Progressive 60fps
```
```!
NDI video output is always Progressive
```
## Monitoring

1. Complete Graphic Card name (Nvidia only)
2. GPU memory
a. Inboard memory ==GPU==
b. Free memory ==FREE==
c. Used memory ==USED==
3. Loading to GPU memory progress bar for graphics ==MIX CACHE==
a. Yellow: Loading graphic is in progress
b. Green: Graphic is loaded
4. Preload button ==PR== (Default ON)
a. ON: Graphics are preloaded before played
b. OFF: Graphics are loaded while played
5. Garbage Collector ==GR==
a. ==GR== Garbage Collector is enable if there is no more animation > clear graphics from GPU memory
b. ==--== Garbage Collecor is disable to keep best performance when NextEngine play an animation
6. Time elapsed since the end of the last animation
7. Current Tweens count (object animations) max: 8000
8. Dropped frames during the last graphic using image sequence
9. Last JAMCP batch count request and execution time
10. Number of JAMCP request waiting and total number since server start
11. Internal framerate of NextEngine
12. Output framerate of NextEngine
13. NextEngine Server IP Adress
14. Guest IP Adress connected to NextEngine
a. 0.0.0.0 > Not connected
b. 127.0.0.1 > Connected to locahost (NextEngine and NextServer on the same computer)
c. Other IP Adress if connected to distant computer
15. WebSocket Port used by NextEngine Service
16. Indicator ==WEB== enable if connected to the Internet
17. CPU usage
18. Memory Used by NextEngine process (without templates)
## Configuration files
**unitycg.config**
At startup NextEngine load XML file unitycg.config to find applications paths and channels configuration.
:::warning
NextServer will overide this configuration file on startup
:::
Main parameters:
```csvpreview {header="true"}
Tag,Default,Description
<media-path>,Medias\,Medias directory used with Play command line
<log-path>,Log\,Logs directory
<template-path>,Templates\,Templates directory
<batch-path>,Batch\,Batchs JAMCP command line directory
<channel>,-,Add output channel
<video-mode>,1080p5000,Video mode
<ndi>,-,Enable Newtek NDI output
<decklink>,-,Enable Decklink SDI card
<name>,Channel 1,Output name (visible into NDI output)
<device>,0,Decklink device number
<web-sockets><port>,5250,NextEngine Server WebSockets Port
```
```xml
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<paths>
<media-path>Medias\</media-path>
<log-path>Log\</log-path>
<template-path>Templates\</template-path>
<batch-path>Batch\</batch-path>
</paths>
<channels>
<channel>
<video-mode>1080p5000</video-mode>
<consumers>
<decklink>
<name>Channel 1</name>
<device>0</device>
<label />
</decklink>
</consumers>
</channel>
<channel>
<video-mode>1080p5000</video-mode>
<consumers>
<ndi>
<name>Channel 2</name>
<device>0</device>
</ndi>
</consumers>
</channel>
</channels>
<controllers>
<web-sockets>
<port>5250</port>
<protocol>JAMCP</protocol>
</web-sockets>
</controllers>
<format>8-bit 4:2:2 YUV</format>
<!--8-bit 4:2:2 YUV-->
<!--8-bit 4:4:4:4 ARGB-->
<!--8-bit 4:4:4:4 BGRA-->
<!--10-bit 4:2:2 YUV-->
<!--10-bit 4:4:4 RGB-->
<!--10-bit 4:4:4 RGBX LE-->
<!--10-bit 4:4:4 RGBX-->
</configuration>
```
**unitycg.setings**
At startup NextEngine load XML file unitycg.settings to fine tune advanced settings
:::warning
NextServer will not overide this configuration file on startup. Extreme caution is required :fire:
:::
Main parameters:
```csvpreview {header="true"}
Tag,Default,Possible values,Description
<log><screen>,false,[true|false],Show/Hide logs on screen
<log><disk>,false,[true|false],Enable/Disable log to disk
<clock><layer>,110,[1..],Layer used for Clock Graphic
<preview><channel>,2,[1..],Preview Channel (animation disable)
<boost>,true,[true|false],Allow the Engine to work internally at a higher framerate than the outputs
<fps>,100,[0|50..],Define the maximum internal framerate of the Engine (0 no limit)
```
```xml
<?xml version="1.0" encoding="utf-8"?>
<settings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<log>
<screen>false</screen>
<level>all</level>
<disk>false</disk>
<size>512</size>
</log>
<buffer>
<size>50</size>
<delay>0.5</delay>
<thread>4</thread>
<preload>true</preload>
<memory>mix</memory>
</buffer>
<clock>
<layer>110</layer>
</clock>
<preview>
<channel>2</channel>
</preview>
<gc>
<timer>1</timer>
<video>5</video>
</gc>
<boost>true</boost>
<fps>50</fps>
<bullet>0</bullet>
</settings>
```
## Console
NextEngine accepts commands derived from JAMCP in its console to quickly test content
:::info
Each of the channels (outputs) can contain up to 1000 layers
:::
Main commands:
```csvpreview {header="true"}
Command,Description
HELP, Display the list of commands
PLAY channel:int-layer:int --clip:str --loop?:bool, Play media on a channel-layer
CLEAR channel:int-layer:int, Delete the content of a channel-layer
CGLOAD channel:int-layer:int --template:str, Load a template on a channel-layer
CGINVOKE channel:int-layer:int --method=PLAY --clip=str --key=str, Start animation of a scene
RUN --filename:string, Run a JAMCP command line bacth file
EXIT, Exit NextEngine
```
Some examples of commands:
```javascript
play 1-1 picture.png
clear 1-1
play 2-1 video.webm
...
cgload 1-100 --template=field-hockey
cginvoke 1-100 --method=PLAY --clip=teamlist --key=in
...
cginvoke 1-100 --method=PLAY --clip=teamlist --key=out
...
run test_batch
...
exit
```
:::info
Batch files are text files with the extension .jamcp containing exclusively JAMCP commands like those used in the console.
These files should be placed in the NextEngine Batch directory.
:::
Example Batch file:
```javascript
cgload 1-100 --template=field-hockey
cgload 2-100 --template=field-hockey
cgload 3-100 --template=field-hockey
cginvoke 1-100 --method=PLAY --clip=teamlist --key=in
cginvoke 2-100 --method=PLAY --clip=teamlist --key=in
cginvoke 3-100 --method=PLAY --clip=teamlist --key=in
```