{
    "PerturbPointsGpu": {
        "version": 1,
        "description": "Randomly modify positions on a set of points. Same as OgnPerturbPoints.ogn, except written in CUDA.",
        "uiName": "Test Node: Randomly Perturb Points - GPU",
        "icon": {
            "path": "TestNodeIcon.svg"
        },
        "categories": "internal:test",
        "scheduling": ["threadsafe"],
        "exclude": ["tests", "usd", "docs"],
        "memoryType": "cuda",
        "inputs": {
            "points": {
                "type": "pointf[3][]",
                "description": "Points to be perturbed",
                "uiName": "Original Points"
            },
            "minimum": {
                "type": "pointf[3]",
                "description": "Minimum values of the perturbation",
                "uiName": "Perturb Minimum",
                "default": [
                    0.0,
                    0.0,
                    0.0
                ]
            },
            "maximum": {
                "type": "pointf[3]",
                "description": "Maximum values of the perturbation",
                "uiName": "Perturb Maximum",
                "default": [
                    1.0,
                    1.0,
                    1.0
                ]
            },
            "percentModified": {
                "type": "float",
                "description": [
                    "Percentage of points to modify, decided by striding across point set.",
                    "The value will be used to figure out how many threads to launch so it must be on the CPU."
                ],
                "uiName": "Percentage Modified",
                "memoryType": "cpu",
                "default": 100.0
            }
        },
        "outputs": {
            "points": {
                "type": "pointf[3][]",
                "description": "Points that were perturbed",
                "uiName": "Perturbed Points"
            }
        }
    }
}
