LogoAwesome Skills
  • Search
  • Category
  • Tag
  • Blog
LogoAwesome Skills
LogoAwesome Skills

Discover Open-Source Agent Skills for AI Coding Assistants

Product

  • Search
  • Category
  • Tag
  • Blog

Resources

  • Claude Skill Docs
  • Antigravity Skills Docs

Tools

  • Claude Code
  • OpenCode
  • Cursor
  • Codex
  • Antigravity

Company

  • Privacy Policy
  • Terms of Service
  • Sitemap

©2026 Awesome Skills. All rights reserved.

Privacy PolicyTerms
Back to Skills

reveal-3d

Integrates a local Cognite Reveal 3D CAD viewer bundle into Flows apps by copying app-local source code. Use when adding 3D viewer, 3D visualization, Reveal, CAD model, RevealProvider, RevealCanvas, Reveal3DResources, FDM 3D mapping, asset 3D model, model browser, or Cognite 3D content to a Flows application.

5stars1forksUpdated 6/27/2026
Web Development#frontend#3d-visualization#react#cognite#reveal

Security Assessment

Low Risk(80/100)

Detected risks:

Sensitive File Access([references/vite-config.md] .env)
Security Score80/100

About reveal-3d

The reveal-3d skill integrates a local Cognite Reveal 3D CAD viewer bundle into Flows apps by copying app-local source code rather than depending on an external package. It renders CAD models from Cognite Data Fusion (CDF), with support for model browsing, direct model and revision IDs, or FDM-linked assets, and is the right choice when a user wants to embed an interactive Reveal viewer for CDF 3D/CAD content. It is explicitly not for static diagrams, graph visualizations, or unrelated custom Three.js scenes. Prerequisites include a React plus TypeScript app wrapped in @cognite/dune (Flows) auth with a QueryClientProvider from @tanstack/react-query, and either existing CDF 3D models or supplied model/revision IDs; FDM-linked 3D requires linkage through Core DM (CogniteVisualizable.object3D to CogniteCADNode).

The documented integration workflow proceeds in order: inspect the target app's package.json, vite.config.ts, src/main.tsx, and alias conventions; install missing dependencies while reusing existing pinned versions; copy every file from skills/reveal-3d/code/reveal/ into an app-local feature folder such as src/features/reveal-3d/; import from that local folder rather than the skill directory or the old external package; configure Vite and main.tsx per the vite-config reference, applying the process polyfill, manual process/util/assert aliases, a three alias, dedupe settings, and worker.format set to 'es'; choose an implementation pattern (Pattern B, the model browser or direct model ID, unless a DMInstanceRef with confirmed Core DM 3D linkage is available); keep provider placement stable; and run typecheck and build, fixing copied-import or dependency issues. CacheProvider and RevealKeepAlive are always mounted at page or app level, while RevealProvider is conditional, only when a model is selected or linked.

A set of critical rules governs correct usage: ViewerContent contains only RevealCanvas and Reveal3DResources with no providers; the resources array must be memoized with useMemo; callbacks like onModelsLoaded and onSelect must be memoized with useCallback; the SDK passed to RevealProvider must be memoized with useMemo keyed on client.project; RevealCanvas fills its parent so the parent needs an explicit height; and canvas-heavy content should be lazy-loaded with React.lazy and Suspense. Suggested dependency versions (such as @cognite/reveal ^4.30.0 and three ^0.180.0) are starting points that defer to the app's existing pins, and the skill warns against installing vite-plugin-node-polyfills in favor of explicit Vite aliases. A verification checklist confirms the copy, local imports, dependencies, polyfill ordering, provider placement, container height, and passing typecheck and build.

FAQ

When should the reveal-3d skill be used, and when not?

Use it when embedding an interactive Cognite Reveal viewer for CDF 3D/CAD content in a Flows app. Do not use it for static diagrams, graph visualizations, or unrelated custom Three.js scenes.

Is the Reveal viewer added as a package dependency?

The viewer is added by copying every file from skills/reveal-3d/code/reveal/ into an app-local feature folder (for example src/features/reveal-3d/) and importing from that local folder, not from the skill directory or the old external package, though required runtime dependencies like @cognite/reveal are still installed.

What are the prerequisites for the target app?

The app must use React plus TypeScript, be wrapped in @cognite/dune (Flows) auth, and have a QueryClientProvider from @tanstack/react-query. It also needs CDF 3D models or supplied model/revision IDs, and FDM-linked 3D requires Core DM linkage from CogniteVisualizable.object3D to CogniteCADNode.

Why must the SDK and resources be memoized?

The critical rules require memoizing the resources array with useMemo, callbacks such as onModelsLoaded and onSelect with useCallback, and the SDK passed to RevealProvider with useMemo keyed on client.project, which keeps the Reveal viewer stable across renders.

Which implementation pattern should be chosen by default?

Use Pattern B, the model browser or direct model ID approach, unless you already have a DMInstanceRef and confirmed Core DM 3D linkage.

All Files

35 files
code/reveal/hooks/useRemoveNonReferencedModels.ts1.3 KB
View
code/reveal/hooks/useRevealContext.ts0.4 KB
View
code/reveal/cache/CacheProvider.tsx1.1 KB
View
code/reveal/components/RevealKeepAlive.tsx2.3 KB
View
code/reveal/context/revealContext.ts0.3 KB
View
code/reveal/hooks/useFdmMappings.ts10.4 KB
View
code/reveal/hooks/useInstanceStyling.ts2.0 KB
View
code/reveal/hooks/usePrefetchedFdmMappings.ts10.2 KB
View
code/reveal/hooks/useRenderTarget.ts1.0 KB
View
code/reveal/index.ts1.9 KB
View
code/reveal/cache/AssetMappingCache.ts4.9 KB
View
code/reveal/components/RevealCanvas.tsx0.7 KB
View
code/reveal/context/InstanceStylingProvider.tsx2.2 KB
View
code/reveal/hooks/use3dDataForSelectedInstance.ts1.2 KB
View
code/reveal/hooks/useFocusCamera.ts2.4 KB
View
code/reveal/hooks/useModels.ts4.7 KB
View
code/reveal/settings/RevealSettingsController.ts3.5 KB
View
code/reveal/types.ts2.0 KB
View
code/reveal/utils/data-mapper.ts1.5 KB
View
code/reveal/utils/executeParallel.ts1.1 KB
View
evals/evals.json8.3 KB
View
code/README.md1.1 KB
View
code/reveal/components/Reveal3DResources.tsx6.1 KB
View
code/reveal/context/instanceStylingContext.ts0.5 KB
View
code/reveal/context/RevealProvider.tsx1.7 KB
View
code/reveal/hooks/useFindRelated3dInstances.ts0.7 KB
View
code/reveal/hooks/useInstancesWithBoundingBoxes.ts3.6 KB
View
code/reveal/hooks/useRelatedInstances.ts8.1 KB
View
code/reveal/hooks/useReveal.ts0.3 KB
View
code/reveal/settings/QualityPresets.ts1.2 KB
View
code/reveal/utils/cdf-types.ts0.6 KB
View
code/reveal/utils/views.ts1.5 KB
View
references/vite-config.md9.5 KB
View
references/implementation.md9.6 KB
View
SKILL.md6.9 KB
View

Install reveal-3d

Download and extract the skill files to your .claude/skills/ directory.

Quick Setup:

  1. Copy the skill folder to .claude/skills/
  2. Claude will automatically detect and use the skill

Repository

cognitedata/builder-skills

Related Skills

claude-for-safari

95

youtube-thumbnail

4,282

mantis-history

2,480

mantis-patch

2,480