Incari Studio
2023.2
2023.2
  • Incari HMI Development Platform
  • Getting Started
    • Overview
    • Requirements
    • What's New
    • Installation
    • First Steps
      • Incari Hub
      • Creating a Project
      • Incari Studio
  • Objects and Types
    • Overview
    • Project Objects
      • Scene
      • Scene2D
      • Screen
      • HMD
    • Scene Objects
      • Audio
      • Camera
      • Group
      • Image Sequence Sprite
      • Label
      • Light
      • List
      • Lottie Sprite
      • Mesh
      • On-Screen Keyboard
      • Overlay
      • Primitives
      • Sprite
      • Text
      • Vector
      • Video
      • Web Sprite
    • Scene2D Objects
      • Camera
      • Frame
      • GUI
        • Button
        • Dropdown
        • List
        • Slider
        • Text Area
        • Text Input
        • Toggle
      • Group
      • Image
      • Vector
        • Boolean Operation
        • Ellipse
        • Line
        • Rectangle
        • Text
      • Vector (old)
    • Prefabs
      • Creating and Using Prefabs
        • Prefabs in Scenes
        • Prefabs in Scene2Ds
      • Logic in Prefabs
      • Nested Prefabs
    • Attributes
      • Attribute Types
        • Asset/Object Attribute
        • Boolean Attribute
        • Color Attribute
        • Numerical Attribute
      • Common Attributes
        • Object
        • Sprite
        • Transformation
          • Global Transformations
          • Local Transformations
        • Tag
    • Data Types
      • Bool
      • Byte
      • Float
      • Int
      • String
      • Vector2
      • Vector3
      • Vector4
    • Terminology
  • Modules
    • Overview
    • Animation Editor
    • Asset Database
    • Asset Manager
    • Attribute Editor
    • Code Editor
    • Console
    • Exporter
    • Figma Importer
      • Current Limitations
    • Image Sequence Editor
    • Logic Editor
      • AI Logic Generation
    • Global Preferences
    • Material Editor
      • Car Paint Model
      • Custom Shading Model
      • Phong Model
      • Glass Model
      • Extended PBR Model
      • PBR Model
      • Shadeless Model
    • Model Editor
    • Plugins
      • Communication
        • Bluetooth
        • MAVLink
        • Serial
        • Socket.IO
        • TCP
        • UDP
        • WebSocket
    • Profiler View
    • Project Outliner
    • Project Settings
      • CAN
      • Fonts
      • HTTP
      • Keyboard
      • MAVLink
      • MQTT
      • Profiler
      • Scene Separation
      • Serial
      • Socket.IO
      • Styles
      • TCP
      • UDP
      • WebSocket
    • Scene Outliner
  • Toolbox
    • Overview
    • Actions
      • Delay Action
      • FadeFromTo Action
      • FadeTo Action
      • MoveBy Action
      • MoveTo Action
      • RotateBy Action
      • RotateTo Action
      • RotateFromTo Action
      • ScaleBy Action
      • ScaleTo Action
    • Array
      • Array Value
      • Clear Array
      • Concat Arrays
      • Get Array Element
      • Insert Array Element
      • Length of Array
      • Pop Array Element
      • Push Array Element
      • Remove Array Element
      • Set Array Element
    • Binary
      • Binary Value
      • Binary to Byte Array
      • Concat Binaries
      • Verify Checksum
    • Communication
      • Bluetooth
        • Events
          • On Bluetooth Device Paired
          • On Bluetooth Device Unpaired
        • Is Bluetooth Device Paired
        • Pair Bluetooth Device
        • Retrieve Call History
        • Retrieve Phonebook
        • Scan For Bluetooth Devices
        • Unpair Bluetooth Device
      • CAN
        • CAN Send Packet
        • CAN Start
        • CAN Stop
        • Events
          • On CAN Packet Received
          • On CAN Start
          • On CAN Stop
      • HTTP
        • Events
          • On HTTP Route
          • On HTTP Server Start
          • On HTTP Server Stop
        • HTTP Client
        • HTTP Response
        • HTTP Server Start
        • HTTP Server Stop
      • MAVLink
        • Events
          • On MAVLink Packet Received
          • On MAVLink Start
          • On MAVLink Stop
        • MAVLink Decode
        • MAVLink Start
        • MAVLink Stop
      • MQTT
        • Events
          • On MQTT Start
          • On MQTT Stop
          • On MQTT Topic
        • MQTT Publish
        • MQTT Start
        • MQTT Stop
        • MQTT Subscribe
      • Serial
        • Events
          • On Serial Error
          • On Serial Packet Receive
          • On Serial Start
          • On Serial Stop
        • Serial Send Packet
        • Serial Start
        • Serial Stop
      • Socket.IO
        • Events
          • On Socket.IO Error
          • On Socket.IO Receive
          • On Socket.IO Start
          • On Socket.IO Stop
        • Socket.IO Send
        • Socket.IO Start
        • Socket.IO Stop
        • Socket.IO Subscribe
        • Socket.IO Unsubscribe
      • TCP
        • Events
          • On TCP Error
          • On TCP Packet Receive
          • On TCP Start
          • On TCP Stop
        • TCP Send
        • TCP Start
        • TCP Stop
      • UDP
        • Events
          • On UDP Error
          • On UDP Packet Receive
          • On UDP Start
          • On UDP Stop
        • UDP Send
        • UDP Start
        • UDP Stop
      • WebSocket
        • Events
          • On WebSocket Error
          • On WebSocket Receive
          • On WebSocket Start
          • On Websocket Stop
        • WebSocket Client Send
        • WebSocket Client Start
        • WebSocket Client Stop
    • DateTime
      • Date Time Formatter
      • Now (UTC)
      • System Time
      • Timezone Value
    • Development
      • Assert
      • Benchmark Get
      • Benchmark Start
      • Benchmark Stop
      • Clear Console
      • Console
      • Profiler Start
      • Profiler Stop
    • Dictionary
      • Clear Dictionary
      • Dictionary Value
      • Erase Dictionary Element
      • Get Dictionary Element
      • Get Dictionary Keys
      • Get Dictionary Values
      • Merge Dictionaries
      • Set Dictionary Element
      • Size of Dictionary
    • Events
      • Custom
        • Event Listener
        • Event Trigger
      • Gestures
        • On Swipe
        • On Tap
      • ImageSequence
        • On ImageSequence Frame Changed
        • On ImageSequence Pause
        • On ImageSequence Play
        • On ImageSequence Stop
      • Input
        • On Text Change
      • Keyboard
        • On Key Press
        • On Key Release
      • Leap Motion
        • On Leap Motion Frame Update
        • On Leap Motion Grab End
        • On Leap Motion Grab Start
        • On Leap Motion Grab Update
        • On Leap Motion Pinch End
        • On Leap Motion Pinch Start
        • On Leap Motion Pinch Update
        • On Leap Motion Swipe Left
        • On Leap Motion Swipe Right
        • XR Position
      • List
        • On List Current Index Change
        • On List Entry Select
        • On List Load
      • List 2D
        • On List Active Index Change
      • Lottie
        • On Lottie Finish
        • On Lottie Pause
        • On Lottie Play
        • On Lottie Stop
      • Media
        • On Media Finish
        • On Media Play
      • Mouse
        • Get Mouse Position
        • Get Mouse Position Delta
        • On Hover Enter
        • On Hover Leave
        • On Mouse Button Down
        • On Mouse Button Up
        • On Mouse Click
        • On Mouse Double Click
        • On Mouse Enter
        • On Mouse Leave
        • On Mouse Move
        • On Mouse Scroll
      • Object
        • On Alpha Change
        • On CheckBox Value Change
        • On Dropdown Active Value Change
        • On Opacity Change
        • On Position Change
        • On Rotation Change
        • On Scale Change
        • On Slider Value Change
        • On Visibility Change
      • On-Screen Keyboard
        • On On-Screen Keyboard Arrow Down Pressed
        • On On-Screen Keyboard Arrow Up Pressed
        • On On-Screen Keyboard Enter Pressed
        • On On-Screen Keyboard Input Changed
        • On On-Screen Keyboard Key Pressed
      • Scene
        • On Scene Loaded
      • Unsubscribe
      • Screen
        • On Screen Scene Change
      • Variables
        • On Variable Change
        • On Variable Set
      • Web
        • On JavaScript Callback
      • WebSprite
        • On WebSprite Load
        • On WebSprite Remote URL Change
    • Flow Control
      • Branch
      • For Each Loop
      • For Loop
      • Index Switch
      • Is Equal
      • Is Greater Equal
      • Is Less Equal
      • Select Data
      • Sequential
      • Switch
      • Toggle
    • Functions
      • Function
        • Function Input
        • Function Output
    • IO
      • Create File
      • Get Current Directory
      • Get File Extension
      • List Directory Content
      • Load File
      • Remove
      • Save File
      • Set Current Directory
    • Incari
      • Animation
        • Pause Animation
        • Play Animation
        • Stop Animation
      • Asset
        • Add to Asset Database
        • Remove from Asset Database
      • Camera
        • Get Active Camera
        • Get All Cameras
        • Set Active Camera
      • ImageSequence
        • Get Current ImageSequence Frame
        • Get ImageSequence Duration
        • Get ImageSequence FPS
        • Get ImageSequence Total Frames
        • Go To Next ImageSequence Frame
        • Go To Previous ImageSequence Frame
        • Pause ImageSequence
        • Play ImageSequence
        • Resume ImageSequence
        • Show ImageSequence Frame
        • Stop ImageSequence
      • List
        • Generate List
        • Get Selected Item
        • Next List Entry
        • Previous List Entry
        • Select List Entry
        • Set Active
        • Set Current Index
      • List 2D
        • Add List Element
        • Get Active Index
        • Get List Data
        • Get List Element
        • Insert List Element
        • Remove List Element
        • Set Active Index
        • Set List Data
        • Set List Element
      • Lottie
        • Pause Lottie
        • Play Lottie
        • Stop Lottie
      • Material
        • Get Material Property
        • Set Material Property
      • Media
        • Get Media
        • Get Media Length
        • Get Media Loop
        • Get Media Progress
        • Get Volume
        • Is Media Playing
        • Pause Media
        • Play Media
        • Set Media
        • Set Media Loop
        • Set Media Progress
        • Set Volume
        • Stop Media
      • Object
        • Add Tag
        • Destroy Object
        • Get Active Dropdown Value
        • Get Alpha
        • Get CSS Property
        • Get CheckBox Value
        • Get Children
        • Get Dropdown Options
        • Get Material
        • Get Name
        • Get Objects By Tag
        • Get Opacity
        • Get Parent
        • Get Position
        • Get Root
        • Get Rotation
        • Get Scale
        • Get Size
        • Get Slider Value
        • Get Sort Index
        • Get Tag
        • Get Text
        • Get Text Color
        • Get Tint
        • Get Visibility
        • Has Children
        • Instantiate Object
        • On List Item Clicked
        • Remove Tag
        • Set Active Dropdown Index
        • Set Active Dropdown Value
        • Set Alpha
        • Set CSS Property
        • Set CheckBox Value
        • Set Dropdown Options
        • Set Mask
        • Set Material
        • Set Opacity
        • Set Position
        • Set Rotation
        • Set Scale
        • Set Size
        • Set Slider Value
        • Set Sort Index
        • Set Stylesheet
        • Set Text
        • Set Text Color
        • Set Texture
        • Set Tint
        • Set Visibility
        • Use Mask
      • Object 2D
        • Add CSS Class Name
        • Get CSS Class Names
        • Get Paint
        • Get Paint Opacity
        • Get Stroke Width
        • Remove CSS Class Name
        • Set Blend Mode
        • Set CSS Class Names
        • Set Paint
        • Set Paint Opacity
        • Set Stroke Width
      • On-Screen Keyboard
        • Get Screen Keyboard Layout
        • On-Screen Keyboard Clear Input
        • On-Screen Keyboard Get Input
        • On-Screen Keyboard Move Selection
        • On-Screen Keyboard Press Button
        • Set Screen Keyboard Layout
      • Scene 2D
        • Get Stylesheet
        • Merge To Stylesheet
        • Set Stylesheet
      • This Scene
      • Ultrahaptics
        • Ultrahaptics Play
        • Ultrahaptics Stop
      • Scenes
        • Scene
      • Screen
        • Get Scene
        • Load Scene
        • Set Background
        • Set Scene
        • Unload Scene
      • Screens
        • Screen
      • Vector
        • Arc
          • Get ArcEnd
          • Get ArcStart
          • Set ArcEnd
          • Set ArcStart
        • Get BackgroundColor
        • Get FillColor
        • Get StrokeWidth
        • Label
          • Get LabelText
        • Line
          • Get LineWidth
          • Set LineWidth
        • Pie
          • Get PieEnd
          • Get PieStart
          • Set PieEnd
          • Set PieStart
        • Rectangle
          • Get RectangleCorners
          • Set RectangleCorners
        • Set BackgroundColor
        • Set FillColor
        • Set StrokeWidth
      • WebSprite
        • Get Remote URL
        • Set Remote URL
        • Web Sprite Reload
    • Math
      • Absolute
      • Add
      • Average
      • Boolean
        • AND
        • Bool Value
        • Negate
        • OR
      • Ceil
      • Clamp
      • Decrement
      • Divide
      • Floor
      • Increment
      • Interpolate
      • Logarithm
      • Math Constant
      • Maximum
      • Minimum
      • Modulo
      • Multiply
      • Numerical Value
      • Power
      • Random
      • Range Mapper
      • Root
      • Rotation Matrix
      • Round
      • Subtract
      • Trigonometry
        • Arc Cosine
        • Arc Sine
        • Arc Tangent
        • Arc Tangent 2
        • Cosine
        • Radian-Degree Converter
        • Sine
        • Tangent
      • Vector Value
    • Plugins
      • (JSON) Scale Vector
    • Prefab
      • This Prefab
    • String
      • Capitalize
      • CharCodeAt
      • Compare
      • Concat Strings
      • Contains
      • CryptoHash
      • EndsWith
      • Format
      • FormatArray
      • IndexOf
      • IsLower
      • IsUpper
      • JSON Parse
      • JSON Stringify
      • Join
      • LastIndexOf
      • Length
      • Lower
      • MatchRegex
      • PaddingLeft
      • PaddingRight
      • RandomString
      • RemoveCharacters
      • Replace
      • ReplaceRegex
      • Reverse
      • Split
      • StartsWith
      • String Value
      • Substring
      • Trim
      • TrimLeft
      • TrimRight
      • Upper
    • Transition
      • CrossFade
      • Fade
      • MoveInFromBottom
      • MoveInFromLeft
      • MoveInFromRight
      • MoveInFromTop
      • SlideInFromBottom
      • SlideInFromLeft
      • SlideInFromRight
      • SlideInFromTop
    • Utilities
      • Color Value
      • Conversion
      • Create CustomID
      • Create Object
      • Get Command Line Option
      • Group
      • Interval
        • Reset Interval
        • Start Interval
      • Is Data Type
      • Is Object Type
      • System Call
      • Timeout
        • Cancel Timeout
        • Start Timeout
    • Variables
      • Variable Getter
      • Variable Setter
    • Web
      • Call JavaScript Function
  • Demo Projects
    • Overview
    • 4 Methods of Animation
    • Using APIs to Pull Dynamic Data
    • An Analog Clock
    • Image Sequence Button Animation
    • Prefabs
    • Project Initialization
    • On-Screen Keyboard
    • Skinnable Speedometer
Powered by GitBook
On this page
  • Settings
  • General
  • Options
  • Deploy
  • Exporting a Project
  • Host Target
  • Different Target
  • External Links

Was this helpful?

  1. Modules

Exporter

PreviousConsoleNextFigma Importer

Last updated 1 year ago

Was this helpful?

The Exporter Module allows the user to export a Project to a chosen location. In addition to exporting the Project, the Exporter can create a copy of Incari Player in the same folder (this is not the case for exporting to Android). This makes it possible to save and run a Project without the need of Incari Studio.

There are two tabs in the Exporter Module: and .

Furthermore, find below an easy guide on with the Exporter Module, divided between the two possible cases of Target Platforms:

Settings

General

  • Target: Operating System where the exported Project will be played in the corresponding version of Incari Player.

Options

  • Only Project: Whether only the Project will be exported or the Project alongside a copy of Incari Player. This does not apply to Android Projects, as the Project is always exported.

  • Only Used Assets: A user may import more Assets than they end up using. When toggled on, this Attribute makes sure only the essential Assets, which appear in the Asset Database, are packaged up for export.

Deploy

  • Export Folder: The location in the local machine to which the Project will be exported.

Exporting a Project

There are two slightly different procedures for exporting a Project depending on the Target chosen:

Host Target

Exporting a Project for the Host Target is very straightforward as this Target is already available and selected by default. To export the Project, simply click on the Export button on the top menu.

A pop-up message indicating that the export was successful will appear.

After exporting a Project, the export folder will have:

  • A folder with the exported Project.

  • A run.bat file.

  • A folder with a copy of Incari Player (only if Only Project was set to false).

The Project can then be started by launching run.bat.

For exporting the Project alongside a copy of Incari Player, run the command:

  • IncariCLI.exe /p="<project-path>" /export /output="<export-folder-path>".

For exporting just the Project, without a copy of Incari Player, run the command:

  • IncariCLI.exe /p="<project-path>" /export /output="<export-folder-path>" /no-player.

Different Target

Currently, this is Linux and Android. Both require setting up WSL, which will be explained shortly. Exporting, however, differs between the two Target types and have their own corresponding sections:

Exporting a Project for a different Target than the Host requires a few preparatory steps that will be explained in detail:

Setting up WSL

WSL stands for Windows Subsystem for Linux and is a tool that allows users to run a Linux environment directly on Windows. It is needed for building the Project for the desired Target Platform.

Find more information about WSL on the links provided in the External Links section below.

To set up WSL, follow these steps:

  1. Either on Windows PowerShell or Command Prompt, run the following command: wsl --install. This will install WSL and the latest Ubuntu version.

  2. Restart Windows.

  3. Go to the Microsoft Store and install Ubuntu 22.04 or run on the PowerShell or Command Prompt the following command: wsl --install -d Ubuntu-22.04.

  4. Enter your credentials in the pop-up window that appears. If it does not appear, run the command wsl on the PowerShell or Command Prompt and enter your credentials.

  5. Set-up Ubuntu 22.04 as the default distribution by running the command wsl --set-default Ubuntu-22.04 on the PowerShell or Command Prompt.

Preparing Incari Studio

For exporting to a different Target Platform than the Host, a cross-compiled version of Incari Player for the desired Target is necessary.

Linux

Exporting the Project

After following all the previous steps, everything is ready for exporting a Project to the desired Target Platform. For this:

  1. Open the Project to be exported in Incari Studio and go to the Exporter Module.

  2. Add the desired Target by using the plus icon on the top left.

  1. Click on the Export button on the top menu.

A pop-up message indicating that the export was successful will appear.

After exporting a Project, the export folder will have:

  • A folder with the exported Project.

  • A run.sh file.

  • A folder with a copy of Incari Player for the desired Target (only if Only Project was set to false).

The Project can then be started on the Target Platform by launching run.sh.

For exporting the Project alongside a copy of Incari Player, run the command:

  • IncariCLI.exe /p="<project-path>" /export /output="<export-folder-path>" /target=<target-triple>.

For exporting just the Project, without a copy of Incari Player, run the command:

  • IncariCLI.exe /p="<project-path>" /export /output="<export-folder-path>" /no-player /target=<target-triple>.

Where <target-triple> specifies the Target Platform:

  • Use x86_64-linux-gnu for Linux x86-64.

  • Use aarch64-linux-gnu for Linux arm64.

Android

Setting up Android SDK and NDK

Next, Android NDK must be installed. This will allow one to compile Incari Projects for Android and compile Android projects later on. Simply open Android Studio and click Tools->SDKManager->AndroidSDK->SDKTools. In the NDK section, select 25.1.8937393.

Exporting Project

After following all the previous steps, everything is ready for exporting a Project to the desired Target Platform. For this:

  1. Open the Project to be exported in Incari Studio and go to the Exporter Module.

  2. Add the desired Target by using the plus icon on the top left.

    • /home/user_name/Android/Sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/linux-x86_64

    or

    • Downloads/android-ndk-r25c/toolchains/llvm/prebuilt/linux-x86_64/

    The toolchain path should be inputted here under Tools. Alternatively, it can be provided to the IncariCLI as an argument, alongside the Project name and desired output directory.

  1. Click on the Export button on the top menu.

A pop-up message indicating that the export was successful will appear.

After exporting the Project, a folder with the exported Project labeled IncariAndroidApp will appear in the deployed location. The user can then open this folder in AndroidStudio and use it as an Android project.

Build and Run

Beyond what has been previously discussed, it is also possible to directly install the Project onto a specified device. This can be done by toggling on Build and Run under Deploy > Remote.

After that, refreshing allows the user to check for connected Android devices, appearing in the Device dropdown.

Then the user must simply click Export and it will export, build, and install the app on the chosen device. This may take some time, but should eventually result in a success message:

However there are a few instances where an error will occur. These are if there was an installation failure, if the Java path was invalid, or if no device has been selected.

External Links

It is also possible to export a Project from the command line. There are two cases, which are equivalent to whether the Only Project option is set to true or false in , when exporting from Incari Studio.

Download Incari Player for the desired Target platform in the section of .

Choose the desired Export Folder on the tab.

It is also possible to export a Project from the command line. There are two cases, which are equivalent to whether the Only Project option is set to true or false in , when exporting from Incari Studio.

To deploy the application on an Android device, must be installed.

During the AndroidStudio installation, a prompt will appear requiring that Android SDK be installed as well. This will also install platform-tools, which will be required to use to build and run an app from IncariStudio. Please make sure Android SDK and Android API 34 are selected.

Android NDK can also be downloaded .

Choose the desired Export Folder on the tab. Additionally, when exporting a Project for Android, it is necessary to specify the Android Toolchain Path, besides the target platform and project. Toolchain can be found in the installed or downloaded NDK. For example:

Before continuing, it is necessary to make sure adb is installed. If the chosen Android Toolchain in Settings > Tools is from the NDK installed by AndroidStudio, Incari Studio will find the associated platform-tools and adb. Java 17 is also required (for ) and also comes installed by AndroidStudio. To double-check, this can usually be located with C:\Program Files\Android\Android Studio\jbr on Windows, or /usr/local/android-studio/jbr on Linux.

.

AndroidStudio
Android Debug Bridge
here
Gradle
WSL Documentation
Host Target
Different Target
Linux
Android
Settings
Exporting to Linux
Exporting to Android
Deploy
Settings
Deploy
Incari Hub
Settings
Deploy
Exporting a Project
Host Target
Different Target
Applications
Adding the Linux Target.
Exporter with Linux x86-64 Target added.
Android NDK.
Adding the Android Target.
Exporter with Android Target added.
Build and Run Example.
Successful Build and Run for Android.