by Fabian Serna
Render 3D and 2D Rubik's Cube (3x3x3 and 4x4x4) states, animated move sequences, and real-cube color solver inside Markdown code blocks.
🧊 Rubik Studio Visualizer — Plugin para Obsidian
███████╗ █████╗ ██████╗ ██╗██████╗ ███████╗██╗ ██╗ ██╗██████╗
██╔════╝██╔══██╗██╔══██╗██║██╔══██╗██╔════╝██║ ██║ ██╔╝╚════██╗
█████╗ ███████║██████╔╝██║██║ ██║█████╗ ██║ ██║██╔╝ █████╔╝
██╔══╝ ██╔══██║██╔══██╗██║██║ ██║██╔══╝ ╚██╗ ██╔╝╚██╗ ╚═══██╗
██║ ██║ ██║██████╔╝██║██████╔╝███████╗ ╚████╔╝ ╚██╗██████╔╝
╚═╝ ╚═╝ ╚═╝╚═════╝ ╚═╝╚═════╝ ╚══════╝ ╚═══╝ ╚═╝╚═════╝
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.
💡 Créditos, Idea Original y Ecosistema Tecnológico
- Autor e Idea Original: Fabian Serna (
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. - Entorno de Desarrollo Agéntico: Desarrollado desde Google Antigravity, integrando empaquetado autónomo de Web Workers, motor de resolución constructiva por fases (BFS) y sincronización reactiva con el DOM virtual de Obsidian.
- Plugins, Librerías y Motores Consumidos:
obsidianAPI: API oficial de plugins de Obsidian (Plugin,Modal,MarkdownRenderChild,parseYaml,Command Palette) para el renderizado reactivo de bloques de código```rubik-vizy 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 puzzles3x3x3y4x4x4, 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 decubing.jsy parche de registro idempotente de Custom Elements (customElements.define) para evitar colisiones en el virtual scroller de Obsidian.
✨ Características Principales
1. 🎮 Visualización 3D y 2D Interactiva en Bloques Markdown (rubik-viz)
Renderiza cubos 3x3x3 y 4x4x4 dentro de cualquier nota usando bloques YAML limpios:
- Alternancia en vivo
3D ↔ 2D: Cambia entre el cubo 3D orbital y la planta desplegada 2D con un solo clic sin editar la nota. - Botón
🎯 Centrar cubo: Restablece al instante la órbita de la cámara 3D a su posición natural de lectura (priorizando las caras SuperiorU, FrontalFy DerechaR) sin perder el paso actual de la secuencia. - Botón
↺ Reiniciar vista: Regresa la línea de tiempo al estado inicial y centra la cámara.
2. ⚡ Sincronización en Tiempo Real con la Animación 3D
- Iluminación en vivo movimiento por movimiento: Conectado directamente a
player.experimentalModel.currentMoveInfodecubing.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, luegoU, luegoR') junto con una píldora animada (▶ R/✓ R). - Reproducción individual al hacer clic: Al hacer clic sobre cualquier movimiento de la lista inferior, el cubo salta a ese instante y reproduce únicamente la animación 3D de ese giro, deteniéndose al terminar el movimiento.
- Resaltado automático para
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.
3. 🎨 Calculador de Estado Inicial desde un Cubo Real (Mapear Cubo Real 3x3)
¿Tienes un cubo de Rubik físico desordenado en la mano?
- Abre la paleta de comandos (
Ctrl + P/Cmd + P) y ejecuta:Rubik Studio Visualizer: Mapear colores de cubo real (Calculador de estado inicial 3x3)
- Pintor interactivo de 54 casillas: Pinta las 6 caras (
U,L,F,R,B,D) con validación física en tiempo real:- Verifica conteo exacto de 9 colores por cara, existencia de las 12 aristas y 8 esquinas reales, orientación de esquinas ($\sum co \equiv 0 \pmod 3$), orientación de aristas ($\sum eo \equiv 0 \pmod 2$) y paridad de permutación.
- Motor Solver 3x3 integrado (
RealCubeSolver): Calcula en menos de5 mstanto elsetupexacto de tu cubo real como una solución paso a paso enalgpara que veas en 3D cómo se arma tu propio cubo.
4. 🧰 Constructor Visual con Vista Previa en Vivo
- Ejecuta
Rubik Studio Visualizer: Insertar estado de cubodesde 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.
🚀 Sintaxis del Bloque 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ámetros YAML soportados
| 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. |
📚 Tutoriales Interactivos Incluidos
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 enU, Esquinas Blancas, Segunda Capa, giroz2despué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.
📦 Instalación en Obsidian
Instalación Manual
- Descarga los archivos de la última versión (
main.js,manifest.jsonystyles.css). - Crea la carpeta
<TuBoveda>/.obsidian/plugins/rubik-visualizer/. - Copia dentro
main.js,manifest.jsonystyles.css. - En Obsidian, ve a Ajustes → Plugins comunitarios, recarga la lista y activa Rubik Studio Visualizer.
Compilación desde el Código Fuente
# 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
📄 Licencia
Distribuido bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.