Render 3D and 2D Rubik's Cube (3x3x3 and 4x4x4) states, animated move sequences, and real-cube color solver inside Markdown code blocks.
███████╗ █████╗ ██████╗ ██╗██████╗ ███████╗██╗ ██╗ ██╗██████╗
██╔════╝██╔══██╗██╔══██╗██║██╔══██╗██╔════╝██║ ██║ ██╔╝╚════██╗
█████╗ ███████║██████╔╝██║██║ ██║█████╗ ██║ ██║██╔╝ █████╔╝
██╔══╝ ██╔══██║██╔══██╗██║██║ ██║██╔══╝ ╚██╗ ██╔╝╚██╗ ╚═══██╗
██║ ██║ ██║██████╔╝██║██████╔╝███████╗ ╚████╔╝ ╚██╗██████╔╝
╚═╝ ╚═╝ ╚═╝╚═════╝ ╚═╝╚═════╝ ╚══════╝ ╚═══╝ ╚═╝╚═════╝
Obsidian Plugin by: FabiDev<3
Visualizador interactivo 3D y 2D de Cubos de Rubik (3x3x3 y 4x4x4), reproductor paso a paso sincronizado en tiempo real y calculador de estados desde cubos físicos reales directamente dentro de tus notas de Obsidian.
FabiDev<3) — Concepción funcional, diseño pedagógico de los tutoriales progresivos 3x3x3 / 4x4x4, arquitectura de experiencia de usuario y calculador de mapeo desde cubos físicos reales.obsidian API: API oficial de plugins de Obsidian (Plugin, Modal, MarkdownRenderChild, parseYaml, Command Palette) para el renderizado reactivo de bloques de código ```rubik-viz y modales interactivos.cubing (cubing.js / TwistyPlayer): Motor criptográfico y gráfico WebGL/3D/2D de Lucas Garron y la comunidad de speedcubing usado para la simulación geométrica de puzzles 3x3x3 y 4x4x4, máscaras de stickering (OLL, PLL, F2L, centers-only) y línea de tiempo de animaciones.esbuild + TypeScript: Empaquetador de alto rendimiento con inyección inline del Web Worker de búsqueda de cubing.js y parche de registro idempotente de Custom Elements (customElements.define) para evitar colisiones en el virtual scroller de Obsidian.rubik-viz)Renderiza cubos 3x3x3 y 4x4x4 dentro de cualquier nota usando bloques YAML limpios:
3D ↔ 2D: Cambia entre el cubo 3D orbital y la planta desplegada 2D con un solo clic sin editar la nota.🎯 Centrar cubo: Restablece al instante la órbita de la cámara 3D a su posición natural de lectura (priorizando las caras Superior U, Frontal F y Derecha R) sin perder el paso actual de la secuencia.↺ Reiniciar vista: Regresa la línea de tiempo al estado inicial y centra la cámara.player.experimentalModel.currentMoveInfo de cubing.js. A medida que el cubo gira en 3D, se ilumina debajo el botón exacto del movimiento que se está ejecutando en ese instante (ej. R, luego U, luego R') junto con una píldora animada (▶ R / ✓ R).4x4x4: Distingue automáticamente con etiquetas ámbar los movimientos de capas dobles (Rw, Uw, Lw, r, l) y capas internas (2R, 2R2, 2U) esenciales para las paridades de OLL y PLL.Mapear Cubo Real 3x3)¿Tienes un cubo de Rubik físico desordenado en la mano?
Ctrl + P / Cmd + P) y ejecuta:Rubik Studio Visualizer: Mapear colores de cubo real (Calculador de estado inicial 3x3)U, L, F, R, B, D) con validación física en tiempo real:RealCubeSolver): Calcula en menos de 5 ms tanto el setup exacto de tu cubo real como una solución paso a paso en alg para que veas en 3D cómo se arma tu propio cubo.Rubik Studio Visualizer: Insertar estado de cubo desde la paleta de comandos para abrir el estudio interactivo con plantillas rápidas (Sexy Move, Sune, T-Perm, Paridad OLL 4x4, Paridad PLL 4x4), teclado de movimientos y previsualización 3D instantánea.rubik-viz```rubik-viz
title: "4x4x4 - Resolver Paridad de PLL"
puzzle: 4x4x4
view: 3D
setup: "z2 Uw2 2R2 Uw2 2R2 U2 2R2"
alg: "2R2 U2 2R2 Uw2 2R2 Uw2"
anchor: start
mask: full
tempo: 1.0
controls: true
```
| Parámetro | Valores permitidos | Por defecto | Descripción |
|---|---|---|---|
title |
Texto libre | "Cubo 3x3" |
Título mostrado en el encabezado de la tarjeta. |
puzzle |
3x3x3, 3x3, 4x4x4, 4x4 |
3x3x3 |
Tipo de cubo a renderizar. |
view |
3D, 2D, PG3D |
3D |
Vista inicial del cubo (3D interactiva o 2D desplegada). |
setup |
Notación WCA (z2, scrambles, etc.) |
"" |
Giros previos que definen el estado inicial del cubo antes de alg. |
state |
Cadena de 54 caracteres (U,R,F,D,L,B o W,R,G,Y,O,B) |
"" |
(Opcional) Define el estado inicial pintando directamente las 54 pegatinas de un cubo 3x3 real. |
alg |
Notación WCA (R U R' U', Rw, 2R2...) |
"" |
Secuencia de movimientos que se animará paso a paso. |
anchor |
start, end |
start |
start: inicia en setup y ejecuta alg. end: termina resuelto al finalizar alg. |
mask |
full, OLL, PLL, F2L, centers |
full |
Máscara de colores para resaltar únicamente las piezas de una etapa específica. |
tempo |
Número positivo (0.3 a 3.0) |
1.0 |
Velocidad de reproducción de la animación. |
controls |
true, false |
true |
Muestra u oculta la barra inferior de reproducción de cubing.js. |
El repositorio incluye tres documentos listos para abrir en tu bóveda de Obsidian:
tutorial-3x3x3.md: Tutorial progresivo que parte de un único cubo 3x3x3 desordenado y lo va armando fase por fase (Cruz Blanca en U, Esquinas Blancas, Segunda Capa, giro z2 después de la Fase 3, OLL y PLL), incluyendo casos alternativos independientes (Forma de "L", Punto Amarillo, Anti-Sune, Doble Sune, Y-Perm, Ub-Perm, H-Perm, etc.).tutorial-4x4x4.md: Tutorial progresivo por reducción para el 4x4x4 (Centros $2\times 2$, Emparejamiento de Aristas Slice-Flip-Slice, Etapa 3x3x3, Paridad de OLL y Paridad de PLL con casos adyacentes y de esquinas).example.md: Galería de referencia con ejemplos de todas las vistas, máscaras y configuraciones del plugin.main.js, manifest.json y styles.css).<TuBoveda>/.obsidian/plugins/rubik-visualizer/.main.js, manifest.json y styles.css.# 1. Instalar dependencias
npm install
# 2. Compilar en modo producción (genera main.js empaquetado con Web Workers inline)
npm run build
# 3. Modo desarrollo con recarga en caliente (watch)
npm run dev
Distribuido bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.