Skip to content

prczsf/OCTO_Studio_extensions

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OCTO_Studio_extensions

A list of extensions for the Vuforia Studio platform

These include

  • low-level (TML) support for new Vuforia Engine features e.g. Area and Traned model targets
  • 3d UI widgets for the hololens e.g. buttons, toggles, tethered backplate
  • 3d assistance tools e,g 'pinger' (attract attention), navigator
  • non-graphical logic elements e.g. AND/OR gates, flipflops, latches

Installation

Download the entire folder structure and unpack into the Vuforia/Studio installation/Extensions directory. Stop and restart Studio. The extensions widgets will now appear in the various control pallete locations.

Details

The extension can be broken down into 4 main catagories

  1. Targets
  2. Inputs
  3. Containers
  4. Navigation
  5. Misc

Lets look at each in turn.

Targets

360 Model targets

aka Trained Model targets, this is a new class of model target which can be trained (using Vuforia Engine services) to be able to recognise and snap to a model target from any angle. This if course differs to the standard model target where there is a specific perspective (otten indicated via a helpful 'guide view'). With Trained / 360 models targets, recognition can be 'trained' to occur from a broad range of angles, all the way up to 360 around the target item.

Training of the target is not included in this extension. Instead, the user should use their Vuforia Engine account to download the new Model Target Generator application, and view the documentation on the Engine website in order to familiarise themselves with the User Interface and functionality of this tool.

In principal, inclusion of a trained model target into Vuforia Studio is simple.

  1. create trained model target using Vuforia Engine target generator application. This will generate two files, .dat and <filename.xml> based on whatever name you gave in the target generator app.
  2. copy these two files (.dat and .xml) into the app/resources/Uploaded folder in Studio. You can use the 'add resource' button, but be sure to add the two files
  • note that clicking 'add resource' from the widget 'target' field will only select and copy the selected (dat) file, so will not copy the xml file. This is a know problem, Instead, bring both files over to the resources folder first
  • if you have created a suitable guide view to help your user identify the product, you can also copy that png file over to the experience
  1. If your target was created from a pvz file, also copy that file into the resources/Uploaded folder. It should be given the same as the target e.g. .pvz
  2. add the 360 target widget into you experience.
  3. The widget includes property settings for the Data Set - here you can select the .dat that you copied in step 2.
  • you can also include a guide view
  1. selecting this data set will automatically include (for visual reference) the 3d model that you included in step 4.
  2. you can now position any augmentations relative to your target, using the 3d pvz model as a reference.

Note the 3d pvz model is displayed as 'occluding' as this should help the author orient the content around the target, and understand what the user will/not see when viewing from various perspectives.

Note : The 3d occluding model is (currently) not included in the runtime display.

Area targets

Work in progress here.- this feature is not currently available without a custom build of View

Area targets provide a means of locating and tracking the user in a larger spatial environment, say a room or a small factory space. Instead of tracking against an object/shape or an image, you are tracking against the environment/surroundings.

Generation of the target is not included in this extension. Instead, the user should use their Vuforia Engine account to download the new Area Target Generator application, and view the documentation on the Engine website in order to familiarise themselves with the User Interface and functionality of this tool.

In principal, the steps are as follows

  1. scan your environment using a recommended camera. There is a direct integration to Matterport included in the Area Target generator, and these cameras are perfect for small-medium sized locations.
  2. upload your scan to the Matterport account.
  3. Follow the instructions in the Area Target web documentation to identify the results of the scan and to pass this information to the Target Generator
  4. The Area Target generator will create the .dat and .xml target descriptor files
  5. (still being worked on) The area target generates a glTF representation of your space. There's an issue in Studio which prevents this from loading (this will be fixed soon) so for now you need to download the matterpak content from matterport - this includes a .obj representation of the space. Use the obj input tools to bring this into Studio. The file should be given the same name as the target dat/xml files.
  6. Copy the .dat and .xml target files into the resources/Uploaded folder
  7. Drag the area target widget into your Studio canvas
  8. Select the .dat file as the target data base for the widget. The 3d representation (same name - see step 5 above) will now appear in Studio
  9. You can now place any augmented content in this space
  10. Run the experience and you should locate and track relative to the target. Your augmentations will appear where you placed them in the editor. Note the 3d representation is not displayed.

Cloud Image Targets

TBC

Custom Vumarks

TBC

Inputs

UI elements such as Hololens2-ready UI controls TBC

Metadata

Finder

Provides real-time metadata shearch within specified model ID. Results can be bound to Mapper (see below) for visualisation TBC

Mapper

Takes an input of selected model item ids and applied highlight shading TBC

MetaGetta

Takes an input of selected model item ids and extracts metadata TBC

Containers

TBC

Navigation

Misc

Logic and state management

Included are a collection of simple logic 'gates' (based on core principals and building blocks used in microelectronics). These building blocks can be used to controlling state within you application.

Flip Flip

The flipflop emulates a standard JK flipflop electronic circuit. It can be set to a value (true) or reset (false) or it can set to 'toggle' mode and 'clocked' to bounce between these two states. The output Q reflects the behaviour above. Qbar is the opposite of Q i.e. if Q is true, Qbar is false.

When in Auto mode (Auto=true), Set or Reset will be immediately reflected in Q/Qbar. With Auto-false, the widget must be 'clocked' (Clk) to propogate the value. In Toggle mode (Toggle=true), state will change when the widget is clocked.

This useful utitlity widget can be used, for example, to turn an event say a button press, or the response from a Thingworx service call) into a usable state value (true/false) that can then be used to control other elements of the experience.

Gate

The Gate takes an input (Property) and a Value to test against, and a defined operation (Op). The output reflects the result of the operation e.g. is the op is 'greater than' then the output will follow the input if the input (Property) is greater than the defined Value.

Gate can be used for basic threshhold and comparison tests e.g. you can compare strings (A like B), you can compare dates (A before B) and you can perform numeric comparisons e.g. A > B. Chaining Gates together allows for more complex expressions e.g. 3 < A < 12

Increment

A simple counter which takes two inputs - the starting value and the increment (default is 1) and when 'clocked' the value will increase by the defined quotient.

Reset will set the value back to the initial value.

Latch

The latch captures and retains whatever boolean value (true /false) was applied to the input when clocked. Q and Qbar outputs are provided.

Logic

The logic block takes two inputs A,B and an Boolean operand. The can be one of AND,OR,NAND,NOR,XOR. The output is the result of the boolean operation of the two values.

This block can be used to check combinatorial state i.e. only when I press the two buttons on should the panel open (button A AND buton B).

Oscillator

The oscillator is a simple selectable-wave generator which will drive its output between the two min/max limits defined.
Rate defines the number of cycles / second. The oscillator can be given a start value. You can choose between sine, saw, triangle and square waveforms.

Reset will restart the oscillator at the starting value.

Register

The register is similar to the latch, but works with non-boolean data. It can be used to store strings, numbers etc.

About

extensions for the Vuforia Studio platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 98.7%
  • SCSS 1.2%
  • Batchfile 0.1%