3D Color Space Viewer - Online Explore RGB Cube
Rotate and explore the RGB color space as a 3D cube. Pick colors directly from the volume. Interactive Three.js.
UD5 Toolkit
CSS 3D & Houdini Paint API — Interactive CSS Art Generator
transform-style: preserve-3d and the perspective property to create a realistic three-dimensional cube. Each of the six faces is an HTML element positioned in 3D space using translateZ() and rotateX/Y() transforms. The perspective property on the parent container controls the depth effect — smaller values create a more dramatic foreshortening, while larger values produce a flatter, more orthographic look. This technique requires no JavaScript for rendering and performs excellently on modern browsers.
@supports(background: paint(id)).
.scene-container and .cube-wrapper with all six .cube-face elements).perspective value and transform properties..js file with the paint worklet code (use registerPaint()), then load it via CSS.paintWorklet.addModule('your-worklet.js').background-image: paint(yourPattern) in your CSS. Use CSS custom properties (like --dot-color) to parameterize the pattern dynamically.
perspective CSS property do?
perspective property defines the distance between the viewer and the z=0 plane in a 3D scene. A smaller value (e.g., 300px) places the viewer closer, creating a more dramatic, wide-angle effect with pronounced foreshortening. A larger value (e.g., 1500px) moves the viewer farther away, producing a subtler, more orthographic projection. This tool lets you experiment with values from 200px to 2000px to see the difference in real time. The perspective is applied to the parent container and affects all child elements with 3D transforms.
transform-style: preserve-3d?
transform-style: flat). Setting transform-style: preserve-3d tells the browser to maintain the 3D spatial relationships between child elements. This is essential for constructing a cube: without it, all six faces would collapse into a single flat plane, destroying the 3D illusion. The property must be set on the direct parent of the transformed children (the .cube-wrapper in our case).
@keyframes animation that rotates the cube continuously. For example: @keyframes spin { from { transform: rotateX(-25deg) rotateY(0deg); } to { transform: rotateX(-25deg) rotateY(360deg); } }. Apply it with animation: spin 8s linear infinite; on the .cube-wrapper. This tool's auto-rotate feature uses requestAnimationFrame for smooth, controllable animation, but CSS keyframes are a great lightweight alternative for simple continuous rotations.
will-change: transform sparingly — only on elements that will animate frequently; (2) Avoid excessively large cube faces with complex Houdini paint patterns on low-end devices; (3) backface-visibility: hidden can improve performance if you don't need to see the back of faces; (4) Limit the number of simultaneously animating 3D elements; (5) Profile with Chrome DevTools' Performance panel if you notice jank. For most use cases, a single 3D cube with Houdini-decorated faces runs smoothly at 60fps.
Rotate and explore the RGB color space as a 3D cube. Pick colors directly from the volume. Interactive Three.js.
Create 1-point, 2-point, or 3-point perspective grids. Adjust vanishing points and grid spacing. Useful for artists and architects.
Reduce an image to large colored squares. Create bold, minimalist wall art. Adjust block size. Download PNG.
Overlay a grid on any image to help you draw it freehand. Adjust grid size and line thickness. Useful for artists.
Arrange virtual fabric squares or triangles on a grid to preview a quilt pattern. Change colors and sizes. Export layout.
Upload a photo and convert it to a pixelated cross-stitch pattern with DMC floss color matching. Adjust size and color count. Local processing.
Open the same page in two tabs and draw together in real time using BroadcastChannel API. Share ideas without a server.
Create beautiful Spirograph patterns by adjusting circle radii and pen position. Change colors and save as PNG. Relaxing math art.
Enter two sides of a right triangle and get the third. Also gives area and perimeter. Simple and visual.
Align card elements across rows using CSS subgrid. See how headers and footers align vertically. Future of CSS layout.
Get the exact RGB inversion (negative) of any color. Useful for dark mode theming and high‑contrast accessibility checks.
Enter dependencies in a simple text format and see a force‑directed graph of the project's dependency tree. For planning architectures.
A fully animated deck of 52 cards. Shuffle, cut, or draw a specific number of cards. Perfect for missing cards in a real deck.
Generate a random sequence of button presses that looks like a retro game cheat code. Totally useless, totally fun.
Enter a number of sides (3‑100) and get the correct polygon name (triangle, hectogon). Fun geometry reference.
Enter an unbalanced chemical equation and get the balanced coefficients instantly. Supports parentheses and ions. All local JavaScript algebra.
Write to shared storage and run a worklet to process data. Learn the privacy‑preserving alternative to third‑party cookies.
Enter your average last frost date and generate a planting schedule for vegetables and flowers. Know exactly when to start seeds indoors or direct sow.
Set perspective and rotate children in 3D space. See the effect of perspective‑origin. Copy the CSS. Learn 3D transforms.
Render the classic Stanford Bunny with a basic WebGPU pipeline. Rotate and zoom. Check if your browser supports WebGPU.
Write a paint worklet in JavaScript and see it used as a CSS background instantly. Experiment with Houdini. Local.
Rotate and view the 3D shapes of s, p, d, and f orbitals. Great for teaching quantum mechanics. WebGL‑based.
Roll virtual dice with animated 3D spins. Choose any number and type. See total and individual results. Fun for games.
Move the vanishing point of a 3D scene. Drag to set perspective‑origin and see the scene shift. Copy CSS.
Nest elements in 3D space with preserve‑3d vs flat. Rotate the parent and see children behave differently.
Build a 3D card flip effect and toggle backface‑visibility. See the hidden back face. Copy the complete CSS.
Register a custom CSS property with syntax, initial value, and inherits. Animate colors and numbers that couldn’t before.
Register and apply a custom paint worklet to draw a background pattern dynamically. Write the paint function in the browser.
Manipulate CSS values as typed objects using attributeStyleMap. Convert between CSSUnitValue, CSSMathSum, etc. Futuristic CSS‑in‑JS.
Rotate a 3D cube on your phone using the Gyroscope API. See angular velocity around each axis. Amazing sensor demo.