diff --git a/interface/resources/qml/Stats.qml b/interface/resources/qml/Stats.qml
index 2c991aa9dd..23aa256cdc 100644
--- a/interface/resources/qml/Stats.qml
+++ b/interface/resources/qml/Stats.qml
@@ -340,10 +340,10 @@ Item {
                         text: "GPU: " + root.gpuFrameTime.toFixed(1) + " ms"
                     }                    
                     StatText {
-                        text: "GPU (Per pixel): " + root.gpuFrameTimePerPixel.toFixed(5) + " ns/pp"
+                        text: "GPU (Per pixel): " + root.gpuFrameTimePerPixel.toFixed(1) + " ns/pp"
                     }                    
                     StatText {
-                        text: "GPU frame size: " + root.gpuFrameSize.x + " x " + root.gpuFrameSize.y
+                        text: "GPU frame size: " + root.gpuFrameSize.x.toFixed(0) + " x " + root.gpuFrameSize.y.toFixed(0)
                     }
                     StatText {
                         text: "LOD Target: " + root.lodTargetFramerate + " Hz Angle: " + root.lodAngle + " deg"
diff --git a/scripts/developer/utilities/lib/prop/PropGroup.qml b/scripts/developer/utilities/lib/prop/PropGroup.qml
index 75437460ce..eab1b9c842 100644
--- a/scripts/developer/utilities/lib/prop/PropGroup.qml
+++ b/scripts/developer/utilities/lib/prop/PropGroup.qml
@@ -17,6 +17,8 @@ PropFolderPanel {
     Global { id: global }
     id: root
     
+    property var rootObject: {}
+
     property alias propItemsPanel: root.panelFrameContent
     
     // Prop Group is designed to author an array of ProItems, they are defined with an array of the tuplets describing each individual item:
@@ -79,20 +81,23 @@ PropFolderPanel {
                             })
                         } break;
                         case 'object': {
-                           /* var component = Qt.createComponent("PropItem.qml");
-                            component.createObject(propItemsContainer, {
-                                "label": proItem.property,
-                                "object": proItem.object,
-                                "property": proItem.property,
-                             })*/
+                            console.log('Item is an object, create PropGroup: ' + JSON.stringify(proItem.object[proItem.property]));
+                            var itemRootObject = proItem.object[proItem.property];
+                            var itemLabel = proItem.property;
+                            var itemDepth = root.indentDepth + 1;
+                            if (Array.isArray(itemRootObject)) {
+                                if (objectItem.length > 1) {
+                                    itemLabel = itemLabel + " " + objectItem.length
+                                } else {
+                                    itemLabel = itemLabel + " " + objectItem.length
+                                    itemRootObject = itemRootObject[0];
+                                }
+                            }
                             var component = Qt.createComponent("PropGroup.qml");
                             component.createObject(propItemsContainer, {
-                                "label": proItem.property,
-                                "object": proItem.object,
-                               // "jobPath": root.jobPath + '.' + job.objectName,
-                               // "showProps": root.showProps,
-                               // "showSubs": root.showSubs,
-                               // "indentDepth": root.indentDepth + 1,
+                                "label": itemLabel,
+                                "rootObject":itemRootObject,
+                                "indentDepth": itemDepth,
                             })
                         } break;
                         case 'printLabel': {
@@ -119,19 +124,20 @@ PropFolderPanel {
 
     function populateFromObjectProps(object) {
         var propsModel = []
-        var props = Object.keys(object);
 
+        if (Array.isArray(object)) {
+            if (object.length <= 1) {
+            object = object[0];
+            }
+        }
+
+        var props = Object.keys(object);
         for (var p in props) {
             var o = {};
             o["object"] = object
             o["property"] = props[p];
             // o["readOnly"] = true;
         
-        /*
-            o["type"] = "string";
-
-            propsModel.push(o)*/
-
             var thePropThing = object[props[p]];
             if ((thePropThing !== undefined) && (thePropThing !== null)) {
                 var theType = typeof(thePropThing)
@@ -139,7 +145,7 @@ PropFolderPanel {
                     case 'object': {
                         o["type"] = "object";
                         propsModel.push(o)  
-                    } 
+                    } break;
                     default: {
                         o["type"] = "string";
                         propsModel.push(o)
@@ -151,9 +157,13 @@ PropFolderPanel {
                 propsModel.push(o)
             }
         }
+
         root.updatePropItems(root.propItemsPanel, propsModel);
     }
 
     Component.onCompleted: {
+        if (root.rootObject !== null) {
+            populateFromObjectProps(root.rootObject)
+        }
     }
 }
diff --git a/scripts/developer/utilities/lib/prop/PropScalar.qml b/scripts/developer/utilities/lib/prop/PropScalar.qml
index 33e1bfc958..ae86c6ef81 100644
--- a/scripts/developer/utilities/lib/prop/PropScalar.qml
+++ b/scripts/developer/utilities/lib/prop/PropScalar.qml
@@ -20,17 +20,22 @@ PropItem {
     property bool integral: false
     property var numDigits: 2
 
-    property alias valueVar : sliderControl.value
+
     property alias min: sliderControl.minimumValue
     property alias max: sliderControl.maximumValue
 
     property bool showValue: true  
     
-    signal valueChanged(real value)
-
     Component.onCompleted: {
-        valueVar = root.valueVarGetter();
-    }     
+    }  
+
+    property var sourceValueVar: root.valueVarGetter()
+
+    function applyValueVarFromWidgets(value) {
+        if (!root.readOnly) { 
+           root.valueVarSetter(value)
+        }
+    }
 
     PropLabel {
         id: valueLabel
@@ -42,7 +47,7 @@ PropItem {
         horizontalAlignment: global.valueTextAlign
         height: global.slimHeight
         
-        text: root.valueVarGetter().toFixed(root.integral ? 0 : root.numDigits)
+        text: root.sourceValueVar.toFixed(root.integral ? 0 : root.numDigits)
 
         background: Rectangle {
             color: global.color
@@ -59,8 +64,8 @@ PropItem {
         anchors.left: valueLabel.right
         anchors.right: root.right
         anchors.verticalCenter: root.verticalCenter
-
-        onValueChanged: { if (!root.readOnly) { root.valueVarSetter(value)}  }
+        value: root.sourceValueVar
+        onValueChanged: { applyValueVarFromWidgets(value) }
     }
 
     
diff --git a/scripts/developer/utilities/render/luci/Platform.qml b/scripts/developer/utilities/render/luci/Platform.qml
index 9c5ffda070..eaa4766b32 100644
--- a/scripts/developer/utilities/render/luci/Platform.qml
+++ b/scripts/developer/utilities/render/luci/Platform.qml
@@ -23,46 +23,31 @@ Column {
         id: computer
         label: "Computer"
         isUnfold: true
-
-        Component.onCompleted: {    
-            computer.populateFromObjectProps(JSON.parse(PlatformInfo.getComputer()))
-        }
+        rootObject:JSON.parse(PlatformInfo.getComputer())
     }
     Prop.PropGroup {
         id: cpu
         label: "CPU"
         isUnfold: true
-
-        Component.onCompleted: {    
-            cpu.populateFromObjectProps(JSON.parse(PlatformInfo.getCPU(0)))
-        }
+        rootObject:JSON.parse(PlatformInfo.getPlatform()).cpus
     }
     Prop.PropGroup {
         id: memory
         label: "Memory"
         isUnfold: true
-
-        Component.onCompleted: {    
-            memory.populateFromObjectProps(JSON.parse(PlatformInfo.getMemory()))
-        }
+        rootObject:JSON.parse(PlatformInfo.getMemory())
     }
     Prop.PropGroup {
         id: gpu
         label: "GPU"
         isUnfold: true
-
-        Component.onCompleted: {    
-            gpu.populateFromObjectProps(JSON.parse(PlatformInfo.getGPU(0)))
-        }
+        rootObject:JSON.parse(PlatformInfo.getPlatform()).gpus
     }
     Prop.PropGroup {
         id: display
         label: "Display"
         isUnfold: true
-
-        Component.onCompleted: {    
-            display.populateFromObjectProps(JSON.parse(PlatformInfo.getDisplay(0)))
-        }
+        rootObject:JSON.parse(PlatformInfo.getPlatform()).displays
     }
 }
 
diff --git a/scripts/developer/utilities/render/luci/RenderSettings.qml b/scripts/developer/utilities/render/luci/RenderSettings.qml
index 06f59dd72f..bd76964070 100644
--- a/scripts/developer/utilities/render/luci/RenderSettings.qml
+++ b/scripts/developer/utilities/render/luci/RenderSettings.qml
@@ -34,8 +34,8 @@ Column {
         label: "Viewport Resolution Scale"
         object: Render
         property: "viewportResolutionScale"
-        min: 0.5
-        max: 1.0
+        min: 0.25
+        max: 1.5
     }
 }