[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M698XTTZP1MWPYW9EVV7DF2Q":3,"skill-same:01M698XTTZP1MWPYW9EVV7DF2Q":63},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M698XTTZP1MWPYW9EVV7DF2Q","filament-math",null,"Enforce correct mathematical primitives and naming conventions in Filament code. Use this skill when performing coordinate transformations, vector math, or projection setups.","google\u002Ffilament","google","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1342004?v=4","01M698VYEFDM0VJBZDYYJ2T83S","Google","01M698W8SGYAMBEGYBK16J57R1",20735,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament\u002Fblob\u002Fmain\u002Ftools\u002Fai\u002Fagents\u002Fskills\u002Ffilament_math\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"filament math","math","code","vector","correct","primitives","use","coordinate","enforce","conventions","Mathematical","naming","naming conventions","performing","when","2026-11-10 10:12:30",false,"---\nname: filament-math\ndescription: >\n  Enforce correct mathematical primitives and naming conventions in Filament code.\n  Use this skill when performing coordinate transformations, vector math, or projection setups.\n---\n\n# Filament Mathematical Primitives and Naming Conventions\n\nFilament provides its own set of math primitives optimized for graphics. Avoid importing external library formats (like GLM, Eigen, or raw DirectX math structures) unless explicitly requested.\n\n## 1. Approved Math Types\nAll math constructs must reside in the `filament::math` namespace:\n\n*   **Vectors**:\n    *   `math::float2` (2D float vectors)\n    *   `math::float3` (3D float vectors)\n    *   `math::float4` (4D float vectors)\n    *   `math::half3` \u002F `math::half4` (half-precision float vectors)\n    *   `math::int2` \u002F `math::int3` \u002F `math::int4` (integer vectors)\n*   **Matrices**:\n    *   `math::mat3f` (3x3 float matrix)\n    *   `math::mat4f` (4x4 float matrix)\n*   **Rotations**:\n    *   `math::quatf` (quaternion rotation)\n\n## 2. Naming and Manipulations\n*   Use standard operators (`+`, `-`, `*`, `\u002F`) between math components.\n*   Avoid raw float pointers or C-style array indices. Use the built-in constructors or indexing operators:\n    ```cpp\n    \u002F\u002F Correct\n    math::float3 position(0.0f, 1.0f, 2.0f);\n    float x = position.x; \u002F\u002F or position[0]\n    ```\n*   When transforming vectors via matrices, ensure proper dimensional multiplication order:\n    ```cpp\n    math::mat4f transform = ...;\n    math::float4 homogeneousVec(position, 1.0f);\n    math::float4 transformed = transform * homogeneousVec;\n    ```\n","# Filament Mathematical Primitives and Naming Conventions\n\nFilament provides its own set of math primitives optimized for graphics. Avoid importing external library formats (like GLM, Eigen, or raw DirectX math structures) unless explicitly requested.\n\n## 1. Approved Math Types\nAll math constructs must reside in the `filament::math` namespace:\n\n*   **Vectors**:\n    *   `math::float2` (2D float vectors)\n    *   `math::float3` (3D float vectors)\n    *   `math::float4` (4D float vectors)\n    *   `math::half3` \u002F `math::half4` (half-precision float vectors)\n    *   `math::int2` \u002F `math::int3` \u002F `math::int4` (integer vectors)\n*   **Matrices**:\n    *   `math::mat3f` (3x3 float matrix)\n    *   `math::mat4f` (4x4 float matrix)\n*   **Rotations**:\n    *   `math::quatf` (quaternion rotation)\n\n## 2. Naming and Manipulations\n*   Use standard operators (`+`, `-`, `*`, `\u002F`) between math components.\n*   Avoid raw float pointers or C-style array indices. Use the built-in constructors or indexing operators:\n    ```cpp\n    \u002F\u002F Correct\n    math::float3 position(0.0f, 1.0f, 2.0f);\n    float x = position.x; \u002F\u002F or position[0]\n    ```\n*   When transforming vectors via matrices, ensure proper dimensional multiplication order:\n    ```cpp\n    math::mat4f transform = ...;\n    math::float4 homogeneousVec(position, 1.0f);\n    math::float4 transformed = transform * homogeneousVec;\n    ```\n",{"name":5,"description":7},"main","fd9ec7ff9510df148011c5326bcb50d4bfb811ca","tools\u002Fai\u002Fagents\u002Fskills\u002Ffilament_math",2302,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament","https:\u002F\u002Fgoogle.github.io\u002Ffilament\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle","https:\u002F\u002Fopensource.google\u002F","Google ❤️ Open Source","2026-11-12 02:10:33",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add google\u002Ffilament --skill filament-math",{"tool":55,"command":56},"bunx","bunx skills add google\u002Ffilament --skill filament-math",{"tool":58,"command":59},"pnpm","pnpm dlx skills add google\u002Ffilament --skill filament-math","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament\u002Fblob\u002Fmain\u002Ftools\u002Fai\u002Fagents\u002Fskills\u002Ffilament_math\u002FSKILL.md",true,[],[64,79,95,117,133,144],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":34},"01M698XRXR5Q463GQ03RDBD9FR","filament-lifetime","Enforce correct Filament object creation and destruction lifecycles. Use this skill when initializing rendering pipelines or allocating\u002Fdeallocating GPU buffers and entities.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament\u002Fblob\u002Fmain\u002Ftools\u002Fai\u002Fagents\u002Fskills\u002Ffilament_lifetime\u002FSKILL.md",[],[71,72,73,23,25,74,27,75,76,77,78,33],"filament lifetime","entities","gpu","pipelines","creation","rendering","destruction","object",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":34},"01M698XQ0E9RE6RDFYKS2PF1S1","cherry-pick","Cherry-pick a commit onto another branch and open the PR. Use when the user asks to cherry-pick or backport a commit or PR to a release branch.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament\u002Fblob\u002Fmain\u002Fthird_party\u002Fdawn\u002Fthird_party\u002Fdirectx-shader-compiler\u002Fsrc\u002F.github\u002Fskills\u002Fcherry-pick\u002FSKILL.md",[],[86,87,88,89,90,91,92,93,94,25,33],"cherry pick","pick","pr","release","commit","backport","open","branch","user",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":34},"01M698XN2P44Y956SJRD7CPB22","verification-protocols","Standard verification pipeline to execute after modifying C++ source or header files. Use this skill to format includes, build the engine, and run core tests.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament\u002Fblob\u002Fmain\u002Fskills\u002Fverification_protocols\u002FSKILL.md",[],[102,103,104,105,106,107,108,109,110,111,25,112,113,114,115,116],"verification protocols","verification","protocols","execute","standard","source","tests","c++","build","files","engine","core","run","pipeline","format",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":34},"01M698XK6J428QZM1WGVWW50JE","preprocessor-guard-hygiene","Enforce preprocessor guard rules and macro-dependent inclusion hygiene in C++. Use this skill when modifying conditional imports or preprocessor directives.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament\u002Fblob\u002Fmain\u002Fskills\u002Fpreprocessor_guard_hygiene\u002FSKILL.md",[],[124,125,126,127,128,25,27,109,129,130,131,132,33],"preprocessor guard hygiene","hygiene","guard","macro","Rules","inclusion","imports","conditional","directives",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":34},"01M698XHA1J01F915DKYHXZ18C","header-self-containment","Enforce strict header self-containment so that every header file compiles independently. Use this skill when creating or modifying C++ header files.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament\u002Fblob\u002Fmain\u002Fskills\u002Fheader_self_containment\u002FSKILL.md",[],[140,141,142,109,143,25,111,27,33],"containment","header self containment","self","file",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":155,"publishedAt":34},"01M698XEWJYPD7AB62DAQ3RMMC","filament-desktop-testing","Execute unit tests and performance benchmarks for Filament on desktop platforms. Use this skill to run and filter tests or benchmarks locally.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Ffilament\u002Fblob\u002Fmain\u002Fskills\u002Ffilament_desktop_testing\u002FSKILL.md",[150],{"categoryNo":151,"categoryName":152,"taxonomyType":153,"taxonomyTypeDesc":154},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[156,157,158,159,160,161,114,105,25,162,108,163,164,165,166],"desktop testing","desktop","testing","filament desktop testing","performance","unit tests","benchmarks","performance benchmarks","filter","unit","for"]