Token导航 LogoToken导航

Agent Skill · 研究检索

axiom-scenekit-ref(Axiom 场景套件参考)

axiom-scenekit-ref 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

axiom-scenekit-ref 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 28,535。

总安装 3,207周安装 131GitHub Stars 873下载 1,027核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:axiom-scenekit-ref(Axiom 场景套件参考)
来源仓库:https://github.com/charleswiltgen/axiom
仓库路径:skills/axiom-scenekit-ref
安装命令:
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-scenekit-ref
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-scenekit-ref

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

提供 SceneKit 到 RealityKit 的 API 映射对照表作为迁移依据。适用于查找 SCNNode 与 Entity 等核心概念的等效替代方案。明确标注哪些功能可直接转换而无需重构业务逻辑。包含场景图与 ECS 架构差异带来的性能特征变化说明。建议分阶段实施迁移并在测试环境中验证视觉一致性。

来源仓库内路径:skills/axiom-scenekit-ref

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/charleswiltgen/axiom --skill axiom-scenekit-re…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

axiom-scenekit-ref 怎么安装?

在终端执行 npx skills add https://github.com/charleswiltgen/axiom --skill axiom-scenekit-ref。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

axiom-scenekit-ref 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

axiom-scenekit-ref 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

axiom-scenekit-ref 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

axiom-scenekit-ref 用的人多吗?

公开数据是累计安装 3,207 次,近一周安装 131 次,下载 1,027 次,GitHub 873 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

axiom-scenekit-ref 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
axiom-scenekit-ref

Axiom 场景套件参考 · 本页

3,207873需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

SceneKit API Reference & Migration Mapping

Complete API reference for SceneKit with RealityKit equivalents for every major concept.

When to Use This Reference

Use this reference when:

  • Looking up SceneKit → RealityKit API equivalents during migration
  • Checking specific SceneKit class properties or methods
  • Planning which SceneKit features have direct RealityKit counterparts
  • Understanding architectural differences between scene graph and ECS

Part 1: SceneKit → RealityKit Concept Mapping

Core Architecture

SceneKitRealityKitNotes
SCNSceneRealityViewContent / Entity (root)RealityKit scenes are entity hierarchies
SCNNodeEntityLightweight container in both
SCNViewRealityView (SwiftUI)ARView for UIKit on iOS
SceneView (SwiftUI)RealityViewSceneView deprecated iOS 26
SCNRendererRealityRendererLow-level Metal rendering
Node propertiesComponentsECS separates data from hierarchy
SCNSceneRendererDelegateSystem / SceneEvents.UpdateFrame-level updates
.scn files.usdz / .usda filesConvert with xcrun scntool

Geometry & Rendering

SceneKitRealityKitNotes
SCNGeometryMeshResourceRealityKit generates from code or loads USD
SCNBox, SCNSphere, etc.MeshResource.generateBox(), .generateSphere()Similar built-in shapes
SCNMaterialSimpleMaterial, PhysicallyBasedMaterialPBR-first in RealityKit
SCNMaterial.lightingModel =.physicallyBasedPhysicallyBasedMaterialDefault in RealityKit
SCNMaterial.diffusePhysicallyBasedMaterial.baseColorDifferent property name
SCNMaterial.metalnessPhysicallyBasedMaterial.metallicDifferent property name
SCNMaterial.roughnessPhysicallyBasedMaterial.roughnessSame concept
SCNMaterial.normalPhysicallyBasedMaterial.normalSame concept
Shader modifiersShaderGraphMaterial / CustomMaterialNo direct port — must rewrite
SCNProgram (custom shaders)CustomMaterial with Metal functionsDifferent API surface
SCNGeometrySourceMeshResource.ContentsLow-level mesh data

Transforms & Hierarchy

SceneKitRealityKitNotes
node.positionentity.positionBoth SCNVector3 / SIMD3
node.eulerAnglesentity.orientation (quaternion)RealityKit prefers quaternions
node.scaleentity.scaleBoth SIMD3
node.transformentity.transform4×4 matrix
node.worldTransformentity.transform(relativeTo: nil)World-space transform
node.addChildNode(_:)entity.addChild(_:)Same hierarchy concept
node.removeFromParentNode()entity.removeFromParent()Same concept
node.childNodesentity.childrenChildren collection
node.parententity.parentParent reference
node.childNode(withName:recursively:)entity.findEntity(named:)Named lookup

Lighting

SceneKitRealityKitNotes
SCNLight (.omni)PointLightComponentPoint light
SCNLight (.directional)DirectionalLightComponentSun/directional light
SCNLight (.spot)SpotLightComponentCone light
SCNLight (.area)No direct equivalentUse multiple point lights
SCNLight (.ambient)EnvironmentResource (IBL)Image-based lighting preferred
SCNLight (.probe)EnvironmentResourceEnvironment probes
SCNLight (.IES)No direct equivalentUse light intensity profiles

Camera

SceneKitRealityKitNotes
SCNCameraPerspectiveCamera entityEntity with camera component
camera.fieldOfViewPerspectiveCameraComponent.fieldOfViewInDegreesSame concept
camera.zNear / camera.zFarPerspectiveCameraComponent.near / .farClipping planes
camera.wantsDepthOfFieldPost-processing effectsDifferent mechanism
camera.motionBlurIntensityPost-processing effectsDifferent mechanism
allowsCameraControlCustom gesture handlingNo built-in orbit camera

Physics

SceneKitRealityKitNotes
SCNPhysicsBodyPhysicsBodyComponentComponent-based
.dynamic.dynamicSame mode
.static.staticSame mode
.kinematic.kinematicSame mode
SCNPhysicsShapeCollisionComponent / ShapeResourceSeparate from body in RealityKit
categoryBitMaskCollisionGroupNamed groups vs raw bitmasks
collisionBitMaskCollisionFilterFilter-based
contactTestBitMaskCollisionEvents.Began subscriptionEvent-based contacts
SCNPhysicsContactDelegatescene.subscribe(to: CollisionEvents.Began.self)Combine-style events
SCNPhysicsFieldPhysicsBodyComponent forcesApply forces directly
SCNPhysicsJointPhysicsJointSimilar joint types

Animation

SceneKitRealityKitNotes
SCNActionentity.move(to:relativeTo:duration:)Transform animation
SCNAction.sequenceAnimation chainingLess declarative in RealityKit
SCNAction.groupParallel animationsApply to different entities
SCNAction.repeatForeverAnimationPlaybackController repeatDifferent API
SCNTransaction (implicit)No direct equivalentExplicit animations only
CAAnimation bridgeentity.playAnimation()Load from USD
SCNAnimationPlayerAnimationPlaybackControllerPlayback control
Morph targetsBlend shapes in USDLoad via USD files

Interaction

SceneKitRealityKitNotes
hitTest(_:options:)RealityViewContent.entities(at:)Different API
Gesture recognizers on SCNViewManipulationComponentBuilt-in drag/rotate/scale
allowsCameraControlCustom implementationNo built-in orbit

AR Integration

SceneKitRealityKitNotes
ARSCNViewRealityView + AnchorEntityLegacy → modern
ARSCNViewDelegateAnchorEntity auto-trackingEvent-driven
renderer(_:didAdd:for:)AnchorEntity(.plane)Declarative anchoring
ARWorldTrackingConfigurationSpatialTrackingSessioniOS 18+

Part 2: Scene Graph API

SCNScene

// Loading
let scene = SCNScene(named: "scene.usdz")!
let scene = try SCNScene(url: url, options: [
    .checkConsistency: true,
    .convertToYUp: true
])

// Properties
scene.rootNode                    // Root of node hierarchy
scene.background.contents        // Skybox (UIImage, UIColor, MDLSkyCubeTexture)
scene.lightingEnvironment.contents // IBL environment map
scene.fogStartDistance            // Fog near
scene.fogEndDistance              // Fog far
scene.fogColor                   // Fog color
scene.isPaused                   // Pause simulation

SCNNode

// Creation
let node = SCNNode()
let node = SCNNode(geometry: SCNBox(width: 1, height: 1, length: 1, chamferRadius: 0))

// Transform
node.position = SCNVector3(x, y, z)
node.eulerAngles = SCNVector3(pitch, yaw, roll)
node.scale = SCNVector3(1, 1, 1)
node.simdPosition = SIMD3<Float>(x, y, z)  // SIMD variants available
node.pivot = SCNMatrix4MakeTranslation(0, -0.5, 0) // Offset pivot point

// Visibility
node.isHidden = false
node.opacity = 1.0
node.castsShadow = true
node.renderingOrder = 0   // Lower = rendered first

// Hierarchy
node.addChildNode(child)
node.removeFromParentNode()
node.childNodes
node.childNode(withName: "name", recursively: true)
node.enumerateChildNodes { child, stop in }

Part 3: Materials

Lighting Models

ModelDescriptionUse Case
.physicallyBasedPBR metallic-roughnessRealistic rendering (recommended)
.blinnBlinn-Phong specularSimple shiny surfaces
.phongPhong specularClassic specular highlight
.lambertDiffuse only, no specularMatte surfaces
.constantUnlit, flat colorUI elements, debug visualization
.shadowOnlyInvisible, receives shadowsAR ground plane

Material Properties

let mat = SCNMaterial()
mat.lightingModel = .physicallyBased

// Textures or scalar values
mat.diffuse.contents = UIImage(named: "albedo")    // Base color
mat.metalness.contents = 0.0                        // 0 = dielectric, 1 = metal
mat.roughness.contents = 0.5                        // 0 = mirror, 1 = rough
mat.normal.contents = UIImage(named: "normal")      // Normal map
mat.ambientOcclusion.contents = UIImage(named: "ao") // AO map
mat.emission.contents = UIColor.blue                // Glow
mat.displacement.contents = UIImage(named: "height") // Height map

// Options
mat.isDoubleSided = false        // Render both sides
mat.writesToDepthBuffer = true
mat.readsFromDepthBuffer = true
mat.blendMode = .alpha           // .add, .subtract, .multiply, .screen
mat.transparencyMode = .aOne     // .rgbZero for pre-multiplied alpha

Part 4: Physics

Body Types and Properties

// Dynamic body with custom shape
let shape = SCNPhysicsShape(geometry: SCNSphere(radius: 0.5), options: nil)
let body = SCNPhysicsBody(type: .dynamic, shape: shape)
body.mass = 1.0
body.friction = 0.5
body.restitution = 0.3       // Bounciness
body.damping = 0.1            // Linear damping
body.angularDamping = 0.1     // Angular damping
body.isAffectedByGravity = true
body.allowsResting = true     // Sleep optimization
node.physicsBody = body

// Compound shapes
let compound = SCNPhysicsShape(shapes: [shape1, shape2],
    transforms: [transform1, transform2])

// Concave (static only)
let concave = SCNPhysicsShape(geometry: mesh, options: [
    .type: SCNPhysicsShape.ShapeType.concavePolyhedron
])

Joint Types

JointDescription
SCNPhysicsHingeJointSingle-axis rotation (door)
SCNPhysicsBallSocketJointFree rotation around point (pendulum)
SCNPhysicsSliderJointLinear movement along axis (drawer)
SCNPhysicsConeTwistJointLimited rotation (ragdoll limb)

Part 5: Animation API

SCNAction Catalog

CategoryActions
Movementmove(by:duration:), move(to:duration:)
Rotationrotate(by:around:duration:), rotateTo(x:y:z:duration:)
Scalescale(by:duration:), scale(to:duration:)
FadefadeIn(duration:), fadeOut(duration:), fadeOpacity(to:duration:)
Visibilityhide(), unhide()
AudioplayAudio(source:waitForCompletion:)
Customrun {node in}, customAction(duration:action:)
Compositionsequence([]), group([]), repeat(_:count:), repeatForever(_:)
Controlwait(duration:), removeFromParentNode()

Timing Functions

action.timingMode = .linear        // Default
action.timingMode = .easeIn        // Slow start
action.timingMode = .easeOut       // Slow end
action.timingMode = .easeInEaseOut // Slow start and end
action.timingFunction = { t in     // Custom curve
    return t * t  // Quadratic ease-in
}

Part 6: Constraints

ConstraintPurpose
SCNLookAtConstraintNode always faces target
SCNBillboardConstraintNode always faces camera
SCNDistanceConstraintMaintains min/max distance
SCNReplicatorConstraintCopies transform of target
SCNAccelerationConstraintSmooths transform changes
SCNSliderConstraintLocks to axis
SCNIKConstraintInverse kinematics chain
let lookAt = SCNLookAtConstraint(target: targetNode)
lookAt.isGimbalLockEnabled = true  // Prevent roll
lookAt.influenceFactor = 0.8       // Partial constraint
node.constraints = [lookAt]

In RealityKit: No direct constraint system. Implement with System update logic or entity.look(at:from:relativeTo:).


Part 7: Scene Configuration

SCNView Configuration

PropertyDefaultDescription
antialiasingMode.multisampling4XMSAA level
preferredFramesPerSecond60Target frame rate
allowsCameraControlfalseBuilt-in orbit/pan/zoom
autoenablesDefaultLightingfalseAdd default light if none
showsStatisticsfalseFPS/node/draw count overlay
isTemporalAntialiasingEnabledfalseTAA smoothing
isJitteringEnabledfalseTemporal jitter for TAA
debugOptions[].showPhysicsShapes, .showBoundingBoxes, .renderAsWireframe

Resources

WWDC: 2014-609, 2014-610, 2017-604, 2019-612

Docs: /scenekit, /scenekit/scnscene, /scenekit/scnnode, /scenekit/scnmaterial, /scenekit/scnphysicsbody, /scenekit/scnaction

Skills: axiom-scenekit, axiom-realitykit, axiom-realitykit-ref

平台分布

Codex

36.06%
按下载量换算370

Claude

31.13%
按下载量换算320

Cursor

18.86%
按下载量换算194

Gemini CLI

9.83%
按下载量换算101

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills