diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/CircularMenu.js b/Projects/Superalgos/UI/Spaces/Floating-Space/CircularMenu.js index 9f7e6eba5..121b59176 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/CircularMenu.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/CircularMenu.js @@ -127,8 +127,8 @@ function newCircularMenu() { } } /* Text and Icon */ - let amplitude = 140 - let initialAngle = -70 + let amplitude = 60 + let initialAngle = -30 step = amplitude / 7 let currentItem = (7 - iconAndTextArray.length) / 2 + 1 for (let i = 0; i < iconAndTextArray.length; i++) { diff --git a/Projects/Superalgos/UI/Spaces/Floating-Space/CircularMenuItem.js b/Projects/Superalgos/UI/Spaces/Floating-Space/CircularMenuItem.js index 4c87f78e6..df76465e1 100644 --- a/Projects/Superalgos/UI/Spaces/Floating-Space/CircularMenuItem.js +++ b/Projects/Superalgos/UI/Spaces/Floating-Space/CircularMenuItem.js @@ -14,7 +14,7 @@ function newCircularMenuItem() { disableIfPropertyIsDefined: undefined, propertyToCheckFor: undefined, action: undefined, - actionProject: undefined, + actionProject: undefined, actionFunction: undefined, actionStatus: undefined, label: undefined, @@ -194,17 +194,32 @@ function newCircularMenuItem() { } radiusGrowthFactor = radiusGrowthFactor * UI.projects.superalgos.spaces.floatingSpace.settings.node.menuItem.radiusPercentage / 100 - thisObject.container.frame.position.x = - thisObject.payload.floatingObject.targetRadius * - radiusGrowthFactor / 7 - * Math.cos(toRadians(thisObject.angle)) - - thisObject.currentRadius * 1.5 + if (thisObject.label !== undefined) { + thisObject.container.frame.position.x = + thisObject.payload.floatingObject.targetRadius * + radiusGrowthFactor / 7 + * Math.cos(toRadians(thisObject.angle)) * 1.5 + - thisObject.currentRadius * 1.5 + - thisObject.payload.floatingObject.targetRadius / 4 - thisObject.container.frame.position.y = - thisObject.payload.floatingObject.targetRadius * - radiusGrowthFactor / 7 - * Math.sin(toRadians(thisObject.angle)) - - thisObject.container.frame.height / 2 + thisObject.container.frame.position.y = + thisObject.payload.floatingObject.targetRadius * + radiusGrowthFactor / 7 + * Math.sin(toRadians(thisObject.angle)) * 2 + - thisObject.container.frame.height / 2 + } else { + thisObject.container.frame.position.x = + thisObject.payload.floatingObject.targetRadius * + radiusGrowthFactor / 7 + * Math.cos(toRadians(thisObject.angle)) + - thisObject.currentRadius * 1.5 + + thisObject.container.frame.position.y = + thisObject.payload.floatingObject.targetRadius * + radiusGrowthFactor / 7 + * Math.sin(toRadians(thisObject.angle)) + - thisObject.container.frame.height / 2 + } } function disablePhysics() { diff --git a/Projects/TensorFlow/Schemas/AppSchema.json b/Projects/TensorFlow/Schemas/AppSchema.json index ff512b73e..d710e55a9 100644 --- a/Projects/TensorFlow/Schemas/AppSchema.json +++ b/Projects/TensorFlow/Schemas/AppSchema.json @@ -365,7 +365,7 @@ "config": true }, "initialValues": { - "config": "{ \n \"codeName\": \"webgl\"\n}" + "config": "{ \n \"codeName\": \"\"\n}" }, "addLeftIcons": true, "level": 3, @@ -455,13 +455,34 @@ "compatibleTypes": "->Model->" }, "propertyNameAtParent": "api", - "childrenNodesProperties": [ - ], + "childrenNodesProperties": [], "icon": "tensorflow" }, { "type": "Secuential Model", "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "api", + "label": "Add Input Layer", + "relatedUiObject": "Input Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "label": "Add Secuential Layer", + "relatedUiObject": "Secuential Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "api", + "label": "Add Output Layer", + "relatedUiObject": "Output Layer", + "actionFunction": "payload.executeAction" + }, { "action": "Delete UI Object", "askConfirmation": true, @@ -479,9 +500,524 @@ }, "propertyNameAtParent": "layersModel", "childrenNodesProperties": [ + { + "name": "inputLayer", + "type": "node", + "childType": "Input Layer" + }, + { + "name": "layers", + "type": "array", + "childType": "Secuential Layer" + }, + { + "name": "outputLayer", + "type": "node", + "childType": "Output Layer" + } ], "icon": "tensorflow" }, + { + "type": "Secuential Layer", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layerType", + "label": "Add Advanced Activation Layers", + "relatedUiObject": "Advanced Activation Layers", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layerType", + "label": "Add Basic Layers", + "relatedUiObject": "Basic Layers", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layerType", + "label": "Add Convolutional Layers", + "relatedUiObject": "Convolutional Layers", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Secuential Model->" + }, + "propertyNameAtParent": "layers", + "childrenNodesProperties": [ + { + "name": "layerType", + "type": "node", + "childType": "Advanced Activation Layers" + }, + { + "name": "layerType", + "type": "node", + "childType": "Basic Layers" + }, + { + "name": "layerType", + "type": "node", + "childType": "Convolutional Layers" + } + ], + "icon": "tensorflow" + }, + { + "type": "Advanced Activation Layers", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Secuential Layer->" + }, + "propertyNameAtParent": "layerType", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Basic Layers", + "menuItems": [ + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Activation Layer", + "relatedUiObject": "Activation Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Dense Layer", + "relatedUiObject": "Dense Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Dropout Layer", + "relatedUiObject": "Dropout Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Embedding Layer", + "relatedUiObject": "Embedding Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Flatten Layer", + "relatedUiObject": "Flatten Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Permute Layer", + "relatedUiObject": "Permute Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Repeat Vector Layer", + "relatedUiObject": "Repeat Vector Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Reshape Layer", + "relatedUiObject": "Reshape Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Add UI Object", + "disableIfPropertyIsDefined": true, + "propertyToCheckFor": "layer", + "label": "Add Spatial Dropout 1D Layer", + "relatedUiObject": "Spatial Dropout 1D Layer", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 0, + "attachingRules": { + "compatibleTypes": "->Secuential Layer->" + }, + "propertyNameAtParent": "layerType", + "childrenNodesProperties": [ + { + "name": "layer", + "type": "node", + "childType": "Activation Layer" + }, + { + "name": "layer", + "type": "node", + "childType": "Dense Layer" + }, + { + "name": "layer", + "type": "node", + "childType": "Dropout Layer" + }, + { + "name": "layer", + "type": "node", + "childType": "Embedding Layer" + }, + { + "name": "layer", + "type": "node", + "childType": "Flatten Layer" + }, + { + "name": "layer", + "type": "node", + "childType": "Permute Layer" + }, + { + "name": "layer", + "type": "node", + "childType": "Repeat Vector Layer" + }, + { + "name": "layer", + "type": "node", + "childType": "Reshape Layer" + }, + { + "name": "layer", + "type": "node", + "childType": "Spatial Dropout 1D Layer" + } + ], + "icon": "tensorflow" + }, + { + "type": "Activation Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Dense Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Dropout Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Embedding Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Flatten Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Permute Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Repeat Vector Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Reshape Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Spatial Dropout 1D Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Basic Layers->" + }, + "propertyNameAtParent": "layer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Convolutional Layers", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "addLeftIcons": true, + "level": 3, + "attachingRules": { + "compatibleTypes": "->Secuential Layer->" + }, + "propertyNameAtParent": "layerType", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Input Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "title": [ + "Use Reference Parent" + ], + "addLeftIcons": true, + "level": 3, + "referencingRules": { + "compatibleTypes": "->Secuential Layer->" + }, + "attachingRules": { + "compatibleTypes": "->Secuential Model->" + }, + "propertyNameAtParent": "inputLayer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, + { + "type": "Output Layer", + "menuItems": [ + { + "action": "Delete UI Object", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "title": [ + "Use Reference Parent" + ], + "addLeftIcons": true, + "level": 3, + "referencingRules": { + "compatibleTypes": "->Secuential Layer->" + }, + "attachingRules": { + "compatibleTypes": "->Secuential Model->" + }, + "propertyNameAtParent": "outputLayer", + "childrenNodesProperties": [], + "icon": "tensorflow" + }, { "type": "Functional Model", "menuItems": [ @@ -501,8 +1037,7 @@ "compatibleTypes": "->Layers API->" }, "propertyNameAtParent": "layersModel", - "childrenNodesProperties": [ - ], + "childrenNodesProperties": [], "icon": "tensorflow" }, { @@ -675,8 +1210,7 @@ "compatibleTypes": "->Execution Environment->" }, "propertyNameAtParent": "backend", - "childrenNodesProperties": [ - ], + "childrenNodesProperties": [], "icon": "tensorflow" }, { @@ -711,8 +1245,7 @@ "compatibleTypes": "->Execution Environment->" }, "propertyNameAtParent": "backend", - "childrenNodesProperties": [ - ], + "childrenNodesProperties": [], "icon": "tensorflow" }, { @@ -747,8 +1280,7 @@ "compatibleTypes": "->Execution Environment->" }, "propertyNameAtParent": "backend", - "childrenNodesProperties": [ - ], + "childrenNodesProperties": [], "icon": "tensorflow" }, { @@ -783,8 +1315,7 @@ "compatibleTypes": "->Execution Environment->" }, "propertyNameAtParent": "backend", - "childrenNodesProperties": [ - ], + "childrenNodesProperties": [], "icon": "tensorflow" }, { @@ -806,8 +1337,7 @@ "compatibleTypes": "->Environment Flags->" }, "propertyNameAtParent": "mode", - "childrenNodesProperties": [ - ], + "childrenNodesProperties": [], "icon": "tensorflow" }, { @@ -829,8 +1359,7 @@ "compatibleTypes": "->Environment Flags->" }, "propertyNameAtParent": "mode", - "childrenNodesProperties": [ - ], + "childrenNodesProperties": [], "icon": "tensorflow" } ] \ No newline at end of file diff --git a/Projects/TensorFlow/Schemas/Docs-Nodes/advanced-activation-layer.json b/Projects/TensorFlow/Schemas/Docs-Nodes/advanced-activation-layer.json new file mode 100644 index 000000000..7e962bc65 --- /dev/null +++ b/Projects/TensorFlow/Schemas/Docs-Nodes/advanced-activation-layer.json @@ -0,0 +1,13 @@ +{ + "type": "Advanced Activation Layer", + "definition": { + "text": "Use this type of layer when you want to apply an advanced activation function.", + "updated": 1613210798694 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/TensorFlow/Schemas/Docs-Nodes/basic-layer.json b/Projects/TensorFlow/Schemas/Docs-Nodes/basic-layer.json new file mode 100644 index 000000000..322d46a5f --- /dev/null +++ b/Projects/TensorFlow/Schemas/Docs-Nodes/basic-layer.json @@ -0,0 +1,13 @@ +{ + "type": "Basic Layer", + "definition": { + "text": "Basic Layers are the most common layers you can use.", + "updated": 1613210641501 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/TensorFlow/Schemas/Docs-Nodes/convolutional-layer.json b/Projects/TensorFlow/Schemas/Docs-Nodes/convolutional-layer.json new file mode 100644 index 000000000..ec04242ee --- /dev/null +++ b/Projects/TensorFlow/Schemas/Docs-Nodes/convolutional-layer.json @@ -0,0 +1,13 @@ +{ + "type": "Convolutional Layer", + "definition": { + "text": "Use this type of layer to create a convolution kernel.", + "updated": 1613210887837 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/TensorFlow/Schemas/Docs-Nodes/functional-model.json b/Projects/TensorFlow/Schemas/Docs-Nodes/functional-model.json index d34cc64ac..24fe48508 100644 --- a/Projects/TensorFlow/Schemas/Docs-Nodes/functional-model.json +++ b/Projects/TensorFlow/Schemas/Docs-Nodes/functional-model.json @@ -1,8 +1,8 @@ { "type": "Functional Model", "definition": { - "text": "The key difference between a Functional and Secuential model is that Functional Models allows you to create an arbitrary graph of layers, as long as they don't have cycles.", - "updated": 1613201903768 + "text": "The key difference between a Functional and Secuential Model is that Functional Models allows you to create an arbitrary graph of layers, as long as they don't have cycles.", + "updated": 1613207678780 }, "paragraphs": [ { diff --git a/Projects/TensorFlow/Schemas/Docs-Nodes/input-layer.json b/Projects/TensorFlow/Schemas/Docs-Nodes/input-layer.json new file mode 100644 index 000000000..536e18167 --- /dev/null +++ b/Projects/TensorFlow/Schemas/Docs-Nodes/input-layer.json @@ -0,0 +1,13 @@ +{ + "type": "Input Layer", + "definition": { + "text": "The first layer (the one that receives the input data) in an Artificial Neural Network.", + "updated": 1613209053300 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/TensorFlow/Schemas/Docs-Nodes/output-layer.json b/Projects/TensorFlow/Schemas/Docs-Nodes/output-layer.json new file mode 100644 index 000000000..eb8b6e83f --- /dev/null +++ b/Projects/TensorFlow/Schemas/Docs-Nodes/output-layer.json @@ -0,0 +1,13 @@ +{ + "type": "Output Layer", + "definition": { + "text": "The \"final\" layer of an Artificial Neural Network. The layer containing the answer(s).", + "updated": 1613209100738 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file diff --git a/Projects/TensorFlow/Schemas/Docs-Nodes/secuential-layer.json b/Projects/TensorFlow/Schemas/Docs-Nodes/secuential-layer.json new file mode 100644 index 000000000..f13a5ec78 --- /dev/null +++ b/Projects/TensorFlow/Schemas/Docs-Nodes/secuential-layer.json @@ -0,0 +1,13 @@ +{ + "type": "Secuential Layer", + "definition": { + "text": "A set of neurons in an Artificial Neural Network with a Secuential Model, that process a set of input features, or the output of those neurons.", + "updated": 1613208793464 + }, + "paragraphs": [ + { + "style": "Text", + "text": "Left click and select the pencil button to enter edit mode." + } + ] +} \ No newline at end of file