Pixijs
RSamaium/CanvasEngine
Use this skill first for ANY PixiJS v8 task; it routes to the right specialized skill for the job.
Add a new compute or surface shader for sensor data processing or visualization.
$ npx skills add lge-ros2/cloisim --skill add-compute-shader -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lge-ros2/cloisim add-compute-shader --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/add-compute-shader .claude/skills/add-compute-shader && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "add-compute-shader" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-compute-shader into .claude/skills/add-compute-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-compute-shader", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-compute-shaderType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add lge-ros2/cloisim --skill add-compute-shader -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lge-ros2/cloisim add-compute-shader --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/add-compute-shader .agents/skills/add-compute-shader && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-compute-shader" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-compute-shader into .agents/skills/add-compute-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-compute-shader", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lge-ros2/cloisim --skill add-compute-shader -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lge-ros2/cloisim add-compute-shader --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/add-compute-shader .cursor/skills/add-compute-shader && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-compute-shader" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-compute-shader into .cursor/skills/add-compute-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-compute-shader", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/lge-ros2/cloisim.git --path .github/skills/add-compute-shader--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add lge-ros2/cloisim --skill add-compute-shader -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lge-ros2/cloisim add-compute-shader --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/add-compute-shader .gemini/skills/add-compute-shader && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-compute-shader" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-compute-shader into .gemini/skills/add-compute-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-compute-shader", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install lge-ros2/cloisim add-compute-shaderInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add lge-ros2/cloisim --skill add-compute-shader -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/add-compute-shader .github/skills/add-compute-shader && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-compute-shader" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-compute-shader into .github/skills/add-compute-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-compute-shader", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lge-ros2/cloisim --skill add-compute-shader -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lge-ros2/cloisim add-compute-shader --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lge-ros2/cloisim.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/add-compute-shader .opencode/skills/add-compute-shader && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-compute-shader" agent skill from https://github.com/lge-ros2/cloisim/tree/main/.github/skills/add-compute-shader into .opencode/skills/add-compute-shader/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-compute-shader", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-compute-shaderAdd a new compute or surface shader for sensor data processing or visualization.
Add Compute Shader is an agent skill from lge-ros2/cloisim. Add a new compute or surface shader for sensor data processing or visualization. Use when: implementing GPU-side sensor processing, adding a new visual effect, creating a ray tracing shader for a sensor.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Game Development, covering Shaders. The repository describes itself as: Unity 6 based multi-robot simulator for ROS 2, SDFormat/SDF, LiDAR, camera, depth, IMU, GPS, and large-scale robotics simulation. The licence is MIT.
Read from SKILL.md and the folder at commit f4c1f0b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are hlsl and csharp).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Add Compute Shader loads about 2.1k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 301 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from lge-ros2/cloisim at commit f4c1f0b, republished under its MIT licence (© lge-ros2). 301 words, ~2,141 tokens.
.claude/skills/add-compute-shader/SKILL.md (or your agent's skills folder).Procedure for adding a compute shader (for GPU-side sensor processing) or a surface/fragment shader (for visualization) to CLOiSim.
| Type | Pattern | Examples |
|---|---|---|
| Traditional Compute | StructuredBuffer I/O, cbuffer params | DepthBufferScaling.compute, VCSELPrepass.compute |
| URT Ray Tracing | Unified Ray Tracing with _AccelStruct | LidarRayTrace.compute, LivoxLidarRayTrace.compute |
| Surface/Fragment | URP vertex/fragment shader | AddGaussianNoise.shader, Segmentation.shader, DepthRange.shader (depth camera, rasterization-based, Blitter-driven) |
| Geometry | URP with geometry stage | GeometryGrass.shader |
Create Assets/Resources/Shader/MyCompute.compute:
/*
* Copyright (c) 2026 LG Electronics Inc.
*
* SPDX-License-Identifier: MIT
*/
#pragma kernel CSMyKernel
#define THREADS 16
#define GROUPS 16
// Input/output buffers
StructuredBuffer<float> _Input;
RWStructuredBuffer<float> _Output;
// Parameters in a cbuffer for efficient batching
cbuffer Params {
uint _Width;
uint _Height;
float _ScaleFactor;
};
// Mark small utility functions inline
inline float MyHelper(const float value) {
return value * _ScaleFactor;
}
[numthreads(THREADS, GROUPS, 1)]
void CSMyKernel(uint3 id : SV_DispatchThreadID) {
if (id.x >= _Width || id.y >= _Height)
return;
const uint index = id.y * _Width + id.x;
_Output[index] = MyHelper(_Input[index]);
}C# dispatch side (in a Device or Manager class):
private ComputeShader _computeShader;
private int _kernelIndex;
private ComputeBuffer _inputBuffer;
private ComputeBuffer _outputBuffer;
private void InitializeShader()
{
_computeShader = Resources.Load<ComputeShader>("Shader/MyCompute");
_kernelIndex = _computeShader.FindKernel("CSMyKernel");
_inputBuffer = new ComputeBuffer(width * height, sizeof(float));
_outputBuffer = new ComputeBuffer(width * height, sizeof(float));
_computeShader.SetBuffer(_kernelIndex, "_Input", _inputBuffer);
_computeShader.SetBuffer(_kernelIndex, "_Output", _outputBuffer);
_computeShader.SetInt("_Width", width);
_computeShader.SetInt("_Height", height);
_computeShader.SetFloat("_ScaleFactor", scaleFactor);
}
private void Dispatch()
{
var threadGroupsX = Mathf.CeilToInt((float)_width / 16);
var threadGroupsY = Mathf.CeilToInt((float)_height / 16);
_computeShader.Dispatch(_kernelIndex, threadGroupsX, threadGroupsY, 1);
}Create Assets/Resources/Shader/MyRayTrace.compute:
/*
* Copyright (c) 2026 LG Electronics Inc.
*
* SPDX-License-Identifier: MIT
*/
#pragma only_renderers d3d11 vulkan metal
#pragma target 4.5
#pragma kernel MainRayGenShader
#pragma kernel ComputeIndirectDispatchDims
// URT Compute backend setup
#define UNIFIED_RT_BACKEND_COMPUTE
#define UNIFIED_RT_GROUP_SIZE_X 16
#define UNIFIED_RT_GROUP_SIZE_Y 8
#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/Bindings.hlsl"
#include "Packages/com.unity.render-pipelines.core/Runtime/UnifiedRayTracing/TraceRayAndQueryHit.hlsl"
// Acceleration structure
UNIFIED_RT_DECLARE_ACCEL_STRUCT(_AccelStruct);
// Output buffer
RWStructuredBuffer<float> _Output;
// Sensor parameters
uint _SamplesH;
uint _SamplesV;
float _RangeMin;
float _RangeMax;
float3 _SensorPosition;
float3 _SensorForward;
float3 _SensorRight;
float3 _SensorUp;
// Custom parameters for your sensor
float _MyParam;
void RayGenExecute(UnifiedRT::DispatchInfo dispatchInfo)
{
const uint2 pixel = dispatchInfo.dispatchThreadID.xy;
if (pixel.x >= _SamplesH || pixel.y >= _SamplesV)
return;
// Build ray direction from sensor parameters
float3 dirWorld = normalize(/* compute from angles/pixel */);
UnifiedRT::Ray ray;
ray.origin = _SensorPosition;
ray.direction = dirWorld;
ray.tMin = _RangeMin;
ray.tMax = _RangeMax;
UnifiedRT::RayTracingAccelStruct accelStruct = UNIFIED_RT_GET_ACCEL_STRUCT(_AccelStruct);
UnifiedRT::Hit hit = UnifiedRT::TraceRayClosestHit(
dispatchInfo, accelStruct, 0xFF, ray, UnifiedRT::kRayFlagNone);
float dist = asfloat(0x7FC00000); // NaN = no hit
if (hit.IsValid())
{
dist = hit.hitDistance;
}
_Output[pixel.y * _SamplesH + pixel.x] = dist;
}
// Include the shared dispatch infrastructure
#include "ComputeRaygenShaderLocal.hlsl"Key URT rules:
#pragma kernel declarations must be in the root .compute file, not in .hlsl includes16×8 for 2D patterns (cameras, standard lidar), 64×1 for 1D patterns (Livox)ComputeRaygenShaderLocal.hlsl provides MainRayGenShader and ComputeIndirectDispatchDims implementationsd3d11, vulkan, metal renderersCreate Assets/Resources/Shader/MySensorShader.shader:
/*
* Copyright (c) 2026 LG Electronics Inc.
*
* SPDX-License-Identifier: MIT
*/
Shader "Sensor/MySensorShader"
{
Properties
{
_MainTex ("Main Texture", 2D) = "white" {}
_MyParam ("My Parameter", Float) = 1.0
}
SubShader
{
Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" }
Pass
{
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
CBUFFER_START(UnityPerMaterial)
float _MyParam;
CBUFFER_END
TEXTURE2D(_MainTex);
SAMPLER(sampler_MainTex);
struct Attributes
{
float4 positionOS : POSITION;
float2 uv : TEXCOORD0;
};
struct Varyings
{
float2 uv : TEXCOORD0;
float4 positionCS : SV_POSITION;
};
Varyings vert(Attributes IN)
{
Varyings OUT;
OUT.positionCS = TransformObjectToHClip(IN.positionOS.xyz);
OUT.uv = IN.uv;
return OUT;
}
half4 frag(Varyings IN) : SV_Target
{
half4 color = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, IN.uv);
color.rgb *= _MyParam;
return color;
}
ENDHLSL
}
}
}For post-processing on camera sensors, use CommandBuffer blits:
// In a Camera sensor device:
private Material _myMaterial;
private CommandBuffer _cmdBuffer;
private void SetupShader()
{
var shader = Shader.Find("Sensor/MySensorShader");
_myMaterial = new Material(shader);
_myMaterial.SetFloat("_MyParam", 1.0f);
_cmdBuffer = new CommandBuffer { name = "MySensorEffect" };
_cmdBuffer.Blit(BuiltinRenderTextureType.CurrentActive, targetRT, _myMaterial);
_camera.AddCommandBuffer(CameraEvent.AfterEverything, _cmdBuffer);
}All GPU data reads must use AsyncGPUReadback — never synchronous reads:
AsyncGPUReadback.Request(_outputBuffer, (request) =>
{
if (request.hasError)
return;
var data = request.GetData<float>();
// Process data, enqueue message
EnqueueMessage(data);
});| Element | Convention | Example |
|---|---|---|
| Shader properties | _PascalCase with underscore prefix | _DepthMax, _BaseColor |
| Kernel names | PascalCase with CS prefix for compute | CSScaleDepthBuffer |
| Defines / macros | UPPER_SNAKE_CASE | THREADS, MAX_RANGE_16BITS |
| Local variables | camelCase | packWidth, depthValue |
| Inline helpers | PascalCase | GetPackWidth(), Pack4Bytes() |
Assets/Resources/Shader/Tags { "RenderPipeline" = "UniversalPipeline" } (surface shaders)HLSLPROGRAM/ENDHLSL (not CGPROGRAM/ENDCG)CBUFFER_START/CBUFFER_END for uniforms (surface shaders)cbuffer for compute shader parameters#define THREADS and #define GROUPS at top of compute shadersinline on small utility functionsAsyncGPUReadback© lge-ros2, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/add-compute-shader of lge-ros2/cloisim.
Open the folder on GitHubat commit f4c1f0b
Add Compute Shader next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Add Compute Shader this skilllge-ros2/cloisim | 176 | — | ~2.1k | Automated safety check: Pass | MIT | |
| PixijsRSamaium/CanvasEngine | 401 | 2 repos | ~1.6k | Automated safety check: Pass | MIT | |
| New ExperimentTresjs/tres | 3.8k | — | ~782 | Automated safety check: Pass | MIT | |
| Assets Shader List AllIvanMurzak/Unity-MCP | 4.4k | — | ~435 | Automated safety check: Pass | Apache-2.0 | |
| Handle Sdr Tonemap Lutclshortfuse/renodx | 4.5k | — | ~7.3k | Automated safety check: Pass | MIT | |
| Unreal Material and VFX Workflowflopperam/unreal-engine-mcp | 1.1k | — | ~927 | Automated safety check: Pass | None |
RSamaium/CanvasEngine
Use this skill first for ANY PixiJS v8 task; it routes to the right specialized skill for the job.
Tresjs/tres
Create a new experiment in TresJS Lab with all necessary files
IvanMurzak/Unity-MCP
List all shaders available in the project assets and packages, sorted by name.
clshortfuse/renodx
RenoDX HLSL/Slang shader workflow for proven shader-side SDR tonemap, hard clip, LUT, color grade, and HDR bridge changes.
flopperam/unreal-engine-mcp
Walks an Unreal Engine MCP agent through building materials, Niagara particle systems, Chaos destruction, and curve assets with inspect-then-edit steps.
BANANASJIM/rdc-cli
A skill your agent uses when working with RenderDoc capture files (.rdc), analyzing GPU frames, tracing shaders, inspecting draw calls, or running CI assertions against GPU captures.
lge-ros2/cloisim
Add or modify SDF actors with skeletal animation and waypoint-based navigation.
lge-ros2/cloisim
Import 3D mesh files into CLOiSim via the Assimp pipeline, including collision generation and procedural meshes.
lge-ros2/cloisim
Add a new motor or drive controller for robot locomotion. An agent skill from lge-ros2/cloisim.
lge-ros2/cloisim
Add a new CLOiSimPlugin for bridging a device to the ROS 2 transport layer.
lge-ros2/cloisim
Add a new sensor device to CLOiSim, including the Device subclass, SDF pipeline wiring, and transport plugin.
lge-ros2/cloisim
Add a custom noise model for sensor data simulation. An agent skill from lge-ros2/cloisim.
Categories
Add a new compute or surface shader for sensor data processing or visualization. Add Compute Shader is an agent skill from lge-ros2/cloisim. Add a new compute or surface shader for sensor data processing or visualization.
Add Compute Shader fits situations like: : implementing GPU-side sensor processing; adding a new visual effect; creating a ray tracing shader for a sensor.
Run `npx skills add lge-ros2/cloisim --skill add-compute-shader -a claude-code`. Or copy the skill folder (.github/skills/add-compute-shader in lge-ros2/cloisim) into .claude/skills/add-compute-shader in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lge-ros2/cloisim --skill add-compute-shader -a codex`. Or copy the skill folder (.github/skills/add-compute-shader in lge-ros2/cloisim) into .agents/skills/add-compute-shader in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lge-ros2/cloisim --skill add-compute-shader -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-compute-shader, .gemini/skills/add-compute-shader, .github/skills/add-compute-shader and .opencode/skills/add-compute-shader in your project.
SKILL.md names no scripts, command-line tools or credentials: Add Compute Shader is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Add Compute Shader is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Add Compute Shader: Pixijs (RSamaium/CanvasEngine, 401 stars), New Experiment (Tresjs/tres, 3.8k stars), Assets Shader List All (IvanMurzak/Unity-MCP, 4.4k stars) and Handle Sdr Tonemap Lut (clshortfuse/renodx, 4.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lge-ros2 (a GitHub organization) maintains it in lge-ros2/cloisim, which has 176 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 6, 2026.
Source: lge-ros2/cloisim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.