/ novedades

Construyendo en público. Esto es lo nuevo.

Cada tarjeta describe un objeto, feature o mejora que llegó a QuickFigen, por qué se diseñó así y cómo se ve en acción.

Última actualización · 19 oct 2026

Plataforma19 oct 2026

El link «editar en QuickFigen» alcanza para figuras grandes

Cuando otra plataforma dibuja con QuickFigen y pide el link para seguir editando, el script viaja comprimido: una figura de unas 240 líneas, como el plano de una vivienda, ahora trae su link. Los links que ya se compartieron se siguen abriendo.

/ contexto

El link lleva el script entero en la dirección, sin guardarlo en ningún lado, y por eso tiene un tope. Comprimido, un script grande ocupa unas cuatro veces menos. Si aun así no entra, la respuesta lo dice: «el script comprimido supera 6000 caracteres».

Matemática19 oct 2026

Geometría: circunferencias tangentes vivas

En el modo DSL, «k = tangente_a(a, b, c)» construye la circunferencia tangente a tres objetos: circunferencias, rectas o segmentos, lados de un polígono o puntos. Para elegir entre las soluciones, «tipo=(int, ext, ext)» dice cómo toca a cada circunferencia y los selectores de intersection (cerca_de=, izquierda, derecha…) eligen entre las que quedan; sin nada, sale la del hueco. «T = tangencia(k1, k2)» marca el punto donde se tocan dos circunferencias, o una circunferencia y una recta. Y «G = apoloniano(k0, k1, k2, k3, profundidad=3)» llena de circunferencias tangentes los huecos entre cuatro, generación por generación.

/ contexto

Los problemas de circunferencias tangentes son comunes en la preparación para la UNI, y hasta ahora había que calcular centros y radios afuera: la figura quedaba muerta y QF no sabía que las circunferencias eran tangentes. Ahora la tangente se construye: si se agranda la circunferencia exterior o se mueve una de las otras, se recalcula y sigue tangente, sin saltar a otra de las soluciones. Si lo pedido no tiene solución, por ejemplo una circunferencia dentro de otra sin tocarla, la figura no se dibuja a medias: el motor dice por qué. En el relleno apoloniano cada pieza tiene nombre (G_gen1_1, G_gen1_2…), G y G.gen2 sirven para dar estilo a todas o a una generación en el bloque /qf-style, y al animar la figura las generaciones aparecen en orden; radio_min= corta las más chicas. En un boletín, «radio(k)» y «tangentes(a, b)» sirven en measure y givens: «calcule el radio de la circunferencia tangente a dos de radios 4 y 1 y a una recta» sale verificado, con clave 4/9.

Tres figuras hechas con el DSL. A la izquierda, dentro de una circunferencia grande, tres circunferencias iguales en gris; una de ellas, en azul, construida con tangente_a(k0, k1, k2, tipo=(int, ext, ext), derecha), y en rojo la pequeña del hueco del medio. Al centro, dos circunferencias de radios 4 y 1 apoyadas en una recta y, en rojo, la tangente a las dos y a la recta, de radio 4/9. A la derecha, un relleno apoloniano de cuatro generaciones con un color por generación: azul, verde, amarillo y rojo.
AI Assistant19 oct 2026

Física: los cambios de la IA llegan al objeto correcto, o no se aplican

Cuando pides un cambio a la IA en una escena de física, cada cambio apunta al objeto por su nombre interno y no por su lugar en la lista: borrar dos cosas en un mismo pedido ya no puede llevarse a la que estaba al lado. Si el resultado dejaría la escena inválida (o con una masa negativa), no se aplica nada y el asistente dice por qué.

/ contexto

Al quitar un objeto también salen sus relaciones y las fuerzas aplicadas a él. Una cuerda que lo tenía en un extremo queda con ese extremo suelto donde estaba. La nota del turno nombra todo lo que se quitó. Si el cambio deja la escena fuera de lo que ▶ reproduce (por ejemplo, roce en la mesa), se aplica con un aviso.

Editor19 oct 2026

Los puntos se ven iguales en la figura; el aro queda en el editor

Los puntos construidos (un cruce, un punto medio, un centro) y los que se deslizan sobre un objeto ya no llevan un aro en la figura: en el SVG, el PNG, el PDF, la guía y QF Explain todos los puntos se ven iguales, como en un libro. En el editor de Geometría 2D y del plano cartesiano se sigue viendo qué es cada uno: aro fino el construido, aro punteado el que se desliza, sin aro el libre.

/ contexto

La marca es del editor, no de la figura: no sale al exportar ni con «Vista limpia». El interruptor «Marcar construidos» de la barra inferior la apaga para ver la figura pareja mientras se trabaja; con la herramienta Punto y al elegir el segundo objeto de una acción se ve siempre, porque ahí importa qué está atado. Como antes, la marca sale de la restricción y no del color: cambiar el color de un punto no la borra.

La misma construcción dos veces: a la izquierda, en el editor, C (cruce de dos circunferencias) y M (punto medio de AB) llevan un aro fino y R (sobre el segmento AC) un aro punteado, mientras A, B y P no llevan nada; a la derecha, el SVG exportado de esa escena, con los seis puntos iguales y sin aros.
Mecánica19 oct 2026

Física: pregunta «¿por qué aparece el factor 2?» en una polea móvil

En una escena con polea móvil, el asistente explica de dónde sale el 2 recorriendo lo mismo que usa el cálculo: la condición de que la cuerda no se estire, el coeficiente con que entra la polea, los dos tramos que la rodean (con sus ángulos medidos en el dibujo) y la regla que eligió el eje de la polea. Termina con los números del solver: el bloque recorre el doble que la polea.

/ contexto

La respuesta no es una explicación escrita aparte: sale de los datos con que el motor arma el sistema que resuelve. El 2 lo pone una regla de la polea móvil (sus dos tramos se toman paralelos al eje) y el dibujo solo lo valida; QF todavía no lo deriva de una restricción general de longitud de cuerda, y la respuesta lo dice. No usa IA ni consume crédito.

Mecánica18 oct 2026

Física: el asistente responde preguntas sin cambiar la escena

En una escena de física, una pregunta («¿qué tensión tiene la cuerda?», «verifica si las cuerdas están paralelas al plano») ya no se toma como un pedido de cambio. La responde el motor con sus propios números (tensiones, aceleraciones, el ángulo de cada tramo, si una polea es móvil y por qué, por qué no se puede simular) y la escena queda igual. Si seleccionas un objeto, la respuesta habla de ese objeto; con dos cuerdas y ninguna elegida, pregunta cuál.

/ contexto

Antes, todo mensaje sobre una escena con objetos iba al editor de la IA, que solo sabía cambiarla: a la pregunta de si las cuerdas estaban paralelas respondió cambiando el tamaño de los bloques. Estas respuestas no usan IA ni consumen crédito, y lo que el motor no sabe medir lo dice. Para pedir un cambio, escríbelo como instrucción («pon 3 kg en el bloque»); /qf-ia lleva el pedido directo al modelo.

Matemática18 oct 2026

Plano cartesiano: lo que se puede hacer con un objeto, junto a él

Al tocar una curva o un punto en el plano, aparece una etiqueta con su nombre y las acciones más usadas: Intersecar, Punto sobre y Área para una función; Segmento hasta… para un punto. «⋯» y el clic derecho muestran todas, y la ficha del panel de objetos las reúne en «Qué puedes hacer». Intersecar crea todos los cortes de las dos curvas, juntos en una fila.

/ contexto

Cuando una acción necesita otro objeto, el plano pide que se toque: «Intersecar f(x): toca la otra curva · Esc cancela». Si se toca algo que no sirve (un lugar vacío, un punto, una curva de otro panel), dice por qué y sigue esperando. Lo que no se puede hacer aparece en gris con su motivo, por ejemplo cuando los cortes ya están o cuando dos curvas no se cortan en el tramo de x que se ve.

Matemática18 oct 2026

Plano cartesiano: cada objeto se edita en su fila, con ojo y basurero

En el panel de objetos del plano, la ficha de cada objeto se abre en su misma fila, con lo que es y de qué depende. Cada fila tiene un basurero, y las curvas, cónicas, rectas, polígonos y áreas, un ojo para ocultarlas sin borrar lo que depende de ellas. Los cortes de dos curvas van juntos en una fila, «Cortes de f(x) y g(x) · 2». En el asistente, cada pedido dice qué creó, cambió o quitó.

/ contexto

Antes, una función o un punto tocados en el lienzo abrían un editor distinto del de la lista, con otros campos. Ahora hay un solo editor por objeto y reúne todo: el dominio de la función; el tamaño, el estilo y qué dice la etiqueta del punto; y, en la fila «Plano», los rótulos de los ejes. Borrar algo que se lleva otros objetos pide confirmación y los nombra; después aparece «Deshacer». Si la figura cambió desde el último pedido, el asistente avisa antes de enviar uno que la rehace.

Mecánica18 oct 2026

La polea móvil también corre sobre una mesa o a lo largo de un plano inclinado

Una polea móvil cuya cuerda del eje pasa por otra polea ya no tiene que colgar vertical. Si corre sobre una mesa o a lo largo de un plano inclinado, el motor la toma paralela a él, como al bloque del que tira. El análisis de equilibrio, el ⓘ y ▶ la resuelven: la cuerda del eje tira con el doble de la tensión y el bloque recorre el doble que la polea.

/ contexto

Antes el motor suponía vertical toda polea móvil colgada de una cuerda que pasa por otra polea, y rechazaba la escena porque sus tramos salían «a 90°». En la escena que motivó el cambio (1 kg sobre la mesa y 2 kg en un plano de 38°), el bloque de la mesa acelera a 3,98 m/s² y el del plano a 1,99 m/s², como da la fórmula de libro.

Mecánica18 oct 2026

QF DSL: la polea móvil se arma desde el script

Una polea sin pin que la cuerda rodea entre una polea fija y el techo cuelga ahora en el seno de la cuerda: «route(c, [over(F), over(M)])» con «attach(c.b, techo)», y la carga se cuelga de su eje con «attach(c2.a, M.axle)». Sus dos tramos salen verticales y el amarre del techo queda justo arriba de la polea. equilibrium() da los números y ▶ la mueve. También funciona entre dos poleas fijas y sobre la polea del ápice de una rampa.

/ contexto

Antes la polea quedaba sin ubicar, en el centro del lienzo, y el motor la rechazaba porque sus tramos salían abiertos. Ya resuelve igual que la escena del editor: un bloque de 1 kg en la rampa de 30° y 2 kg colgados de la polea dan 3,27 m/s². En el camino se corrigió otro defecto: una cuerda que pasa por dos poleas fijas agrandaba las dos poleas y colgaba el segundo bloque de la primera.

Matemática18 oct 2026

Plano cartesiano: borrar desde el lienzo y lo creado se abre solo

En el plano, el clic derecho sobre una curva, un punto o un área ofrece «Eliminar» y lo quita de la figura de verdad: ya no vuelve al cambiar los ejes. Si borrarlo se lleva otros objetos, primero lo dice («Borrar f(x) también borra P.»). Y lo que se crea con las herramientas de la izquierda abre su tarjeta en el panel de objetos, sin tener que buscarlo.

/ contexto

Antes, el clic derecho borraba solo el dibujo y la figura lo reconstruía en la siguiente edición. Ahora el borrado y su aviso salen de la misma lista de dependencias que muestra el panel de objetos, así que el aviso nunca promete algo distinto de lo que pasa. Los ejes y la rejilla no se borran desde ahí: se cambian en «Configurar plano». Todo se puede deshacer.

Simulación18 oct 2026

Física: los puntos sobre la cuerda eligen su color y su tamaño

Con «Puntos sobre la cuerda» marcada, el panel de la cuerda muestra «Color de los puntos» y «Tamaño (px, 2 a 14)». Sin tocarlos, los puntos se ven como antes: ámbar y un poco más anchos que la cuerda, y los campos muestran esos valores.

/ contexto

El tamaño llega hasta 14 px porque los puntos van cada 18 px a lo largo de la cuerda; más grandes se tocarían y dejarían de verse como puntos. Cada cuerda tiene su propio color, así se distinguen dos cuerdas que pasan por la misma polea.

Matemática17 oct 2026

Arcos de ángulo más compactos

Los arcos de los ángulos se dibujan ahora a 30 px (antes 48 en «angle()» y 42 en los automáticos de «triangle(angles=…)») en las figuras de QF DSL: en el editor, en los problemas, en las hojas y en QF Explain. «radio=1.5» sigue multiplicando el radio por defecto, y los ángulos que comparten vértice se siguen anidando sin pisarse.

/ contexto

Se probaron 36, 30 y 24 px (la mitad) sobre las mismas figuras, a tamaño de pantalla y de hoja. Con 24 los arcos anidados quedan diminutos y los rótulos se despegan de su arco; con 30 se leen compactos y en su lugar. Para que el cambio no rompiera nada, el rótulo de un ángulo agudo anidado (θ dentro de α en el teorema del ángulo inscrito) corre su arco hacia afuera solo lo necesario para caber en su cuña.

Plataforma17 oct 2026

Boletines verificados: el sello «Verificado por QF»

Cada problema con figura pasa ahora una verificación completa: la clave contra lo que mide la figura, que las alternativas sean distintas y que una sola sea correcta, los datos del enunciado medidos en la figura, que los puntos que nombra el texto estén en el dibujo y que la respuesta no cambie al mover los puntos libres. Solo el que pasa todo lleva el sello. En «Boletines» puedes juntar problemas de tu biblioteca, ordenarlos, elegir una o dos columnas, el número del primer problema, el logo de tu institución y la figura abajo, a la derecha o a la izquierda; con «Solo problemas verificados», la hoja no se imprime si alguno no lo está. Al imprimir, un problema ya no se parte entre columnas ni páginas, y una figura reducida se agranda si sus rótulos se superponen.

/ contexto

Un boletín con una clave equivocada o una figura que no corresponde al enunciado le cuesta caro a quien lo reparte. Por eso el sello no se escribe a mano: lo calcula el servidor con la figura real y lo firma, y la versión profesor trae el informe de cada problema. La explicación paso a paso de un problema público dejó de verse fuera de la cuenta de su autor. Por MCP, la herramienta qf_booklet arma el mismo boletín como un HTML que se abre sin conexión, en versión alumno y profesor.

Matemática16 oct 2026

line(A, B) es la recta entera, de borde a borde

«r = line(A, B)» ahora se dibuja como una recta: pasa por A y por B y llega hasta el borde de la figura, en el editor, en el SVG y en QF Explain. Un cruce con ella que cae más allá de A o de B queda sobre el trazo. «segment(A, B)» sigue siendo el tramo entre los dos puntos. La recta no agranda el encuadre: la figura se ajusta a lo demás.

/ contexto

Hasta ahora una recta se dibujaba igual que un segmento, entre sus dos puntos. En una explicación con «LI vuelve a cortar a ω en D», D quedaba suelto, lejos del trazo, aunque el cruce ya se calculaba sobre la recta entera. La recta guarda sus dos puntos y se corta con lo que se ve solo en el momento de dibujar.

AI Assistant16 oct 2026

QF Explain se anima: cada momento entra, sale y resalta

En una explicación de QF Explain (el widget del chat y el .html descargable), al avanzar lo nuevo entra en el orden del script: los segmentos y los arcos se dibujan, los puntos y las letras aparecen con un pequeño salto, las regiones con un fundido; lo que se oculta sale con un fundido y lo resaltado pulsa dos veces. El botón «Reproducir» avanza solo, con el tiempo de lectura de cada momento, y la barra espaciadora pausa. Hacia atrás, y con «reducir movimiento» del sistema, se cambia de cuadro sin animación. Las capas son fijas: una región nunca tapa un ángulo ni su letra.

/ contexto

En el widget todo aparecía de golpe, y una región declarada después de un ángulo lo tapaba. El objetivo es que una explicación se pueda seguir como un video, y más adelante exportarla así: cada momento ya trae su duración.

Matemática16 oct 2026

Varios ángulos en un mismo vértice, sin que sus arcos se pisen

Cuando varios ángulos comparten vértice, el que contiene a los otros va afuera, con un radio mayor, y los adyacentes comparten radio: en el ángulo inscrito, α queda afuera en P y β y θ adentro, cada letra entre su arco y el de afuera. Un ángulo de menos de 25° se agranda para que se vea. «angle(A, P, B, alfa, radio=1.5)» elige el radio a mano y «rotulo=dentro» pone la letra entre el vértice y el arco. «marca(b1, b2, 2)» marca ángulos iguales con dos arcos (o con rayitas: «marca(b1, b2, 2, rayitas)») y avisa si no miden lo mismo. Un parámetro que el constructor no conoce, como «angle(O, A, P, marca=2)», ahora es un error con la lista de los válidos.

/ contexto

Al armar con QF Explain la explicación del teorema del ángulo inscrito, había que ocultar ángulos solo porque sus arcos se superponían: todos se dibujaban a 48 px. Y «marca=2» dentro de angle() se dibujaba como rótulo, sin aviso. El bloque de estilos, además, ahora dice primero si una propiedad corresponde al objeto («radio» no aplica a un ángulo) y después si su valor está en rango.

Mecánica15 oct 2026

Mecánica más exacta en los bordes: rampas casi verticales, µ alto y fuerzas sin valor único

Una rampa de 89.5° se resuelve y se rotula con 89.5° (antes, 89°). Un µ mayor que 5 llega entero al cálculo: con «mu=6» un empujón de 55 N sobre 1 kg ya no lo hace deslizar. Si dos fuerzas desconocidas, o una fuerza y el roce, admiten muchos valores, equilibrium() lo dice y da el intervalo en vez de elegir uno. Y lo que antes se cambiaba sin aviso ahora se rechaza con su línea: «block(2,5kg)» (el decimal va con punto: «2.5kg»), «block(2000g)», una rampa más corta que 120 px, «on(A, A)» o una cuerda con los dos extremos en el mismo punto.

/ contexto

Salió de una prueba de estrés del motor contra fórmulas de libro: umbrales de roce, Atwood con masas extremas, el nudo de Lami, el período exacto del péndulo a ángulos grandes, el oscilador, el tiro oblicuo y cadenas de decenas de cuerpos. El núcleo dio exacto; los errores estaban en los bordes y casi todos eran silenciosos. En la reproducción, una esfera lanzada casi sin velocidad ya no atraviesa el piso, y un bloque puesto al pie de una rampa deja el apoyo en vez de quedarse dibujado quieto.

Simulación15 oct 2026

Física: ▶ mueve la polea móvil, y la cuerda puede llevar puntos que viajan con ella

La polea que cuelga de las cuerdas ya se mueve al reproducir: baja o sube con lo que cuelga de ella, y la cuerda que la rodea se vuelve a tender en su lugar. En el panel de una cuerda, la casilla «Puntos sobre la cuerda» dibuja marcas fijas a la cuerda. Al reproducir viajan con ella: quietas junto a un extremo fijo, con el bloque junto a él y dando la vuelta a la polea. Así se ve que la cuerda no cambia de largo y por dónde corre.

/ contexto

Los puntos van a distancias fijas del primer amarre, medidas por la cuerda. Como una cuerda inextensible no cambia de largo, cada punto es siempre el mismo trozo de cuerda. Es un trazo más del dibujo, sin cálculo por cuadro: en el editor, una corrida tarda lo mismo con puntos que sin ellos. Con 1 kg y 1 kg en una rampa de 30°, la máquina está justo en equilibrio y ▶ no mueve nada; con 2 kg colgados de la polea, sí.

Mecánica15 oct 2026

Física: la polea móvil que cuelga de las cuerdas ya se resuelve

Una polea que cuelga de las cuerdas, por ejemplo con un bloque colgado de su eje y la cuerda que la rodea subiendo al techo, ya no se rechaza. «equilibrium()», el ⓘ y el diagrama de fuerzas dan sus números: la cuerda del eje tira con el doble de la tensión y el cuerpo del eje recorre la mitad. Con un bloque de 1 kg en una rampa de 30° y 2 kg colgados de la polea, el colgante baja con 1,635 m/s² y el bloque sube con 3,27 m/s². Al reproducir, ▶ también la mueve.

/ contexto

Se toma la máquina de libro, y el ⓘ lo avisa: polea sin masa, con los dos tramos que la rodean paralelos a la cuerda de su eje. Si el dibujo los abre más de 10°, se rechaza con su razón, porque la ventaja cambiaría al moverse. La Atwood anidada que arma el asistente, de dos y tres niveles, también se resuelve. Siguen rechazadas, con su razón, la polea montada en un cuerpo y la colgada de un resorte.

Matemática15 oct 2026

Baldosas algebraicas con signos: piezas negativas y pares cero

Tres actividades nuevas para factorizar trinomios con negativos. Las piezas negativas son rojas, con rayas y su signo escrito. En x² − x − 2 las piezas solas no cierran el rectángulo: «Par cero» agrega una +x y una −x, que suman 0, y con ellas sale (x + 1)(x − 2). Al comprobar, el borde muestra cada tramo con su signo y, si una pieza no corresponde, se marca: una unidad entre dos tramos −1 tiene que ser positiva, porque − por − da +.

/ contexto

Sigue la convención del material de aula: la misma forma con el reverso rojo, pares cero y la regla de los signos en el rectángulo. Primero se trabaja sin pares cero (x² − 5x + 6, todas las x negativas), después con ellos (x² − x − 2, x² − 4) y al final eligiendo las piezas, con + y − en el panel. Una pieza soltada encima de su opuesta se anula con ella. Las actividades con solo positivos no cambian.

Matemática14 oct 2026

QF DSL: letras griegas en los ángulos y subíndices cuando los pidas

En geometría, «angle(A, B, C, alfa)» dibuja α, no la palabra «alfa»; lo mismo con beta, theta y las demás, y con mayúscula inicial la letra mayúscula: «Delta» es Δ. También se puede escribir la letra (α) o una fórmula entre comillas, «angle(A, B, C, "$\beta_1$")», que ya no muestra las comillas. Los subíndices se piden: un punto P1 se rotula «P1», y P₁ se escribe con «label(P1, "$P_1$")» o «label(P1, "P₁")», en geometría y en el plano cartesiano.

/ contexto

La guía decía que «angle(A, B, C, alfa)» mostraba el símbolo, pero se dibujaba la palabra; un agente que armaba figuras por el MCP lo encontró. Los subíndices no se agregan solos para que ninguna figura cambie sin pedirlo: A1 sigue siendo «A1».

Matemática14 oct 2026

Plano cartesiano: curvas sin quiebres, también en una figura grande

Las curvas del plano ya no se ven como polígonos: el trazo agrega puntos donde cambia de dirección, no solo donde se aparta de la curva. El spiro «curve(3*cos(t)+1.4*cos(5*t), 3*sin(t)-1.4*sin(5*t), [0:2*pi])» y las rosas «polar()» se ven redondas. Y una figura del plano pedida por el MCP más grande que su tamaño natural (por ejemplo, con «width» de 900) se traza para ese tamaño.

/ contexto

El trazo anterior cumplía el error de distancia (menos de medio píxel), pero el ojo ve los quiebres de dirección: en un mandala a 900 px los vértices giraban hasta 29° entre tramos largos. Ahora el trazo se parte donde un tramo de más de 3 px gira más de 6° respecto del siguiente. Las esquinas de verdad, como la de abs(x), siguen en punta, y arrastrar un deslizador sigue igual de fluido.

Plataforma14 oct 2026

Tus problemas también van en tus colecciones, y se pueden eliminar

Las colecciones de los diagramas ahora guardan también problemas de QF Problems. Puedes elegir la colección desde el editor del problema (arriba de «Datos del problema») o desde cada tarjeta de «Tus problemas». Dentro de una carpeta, los problemas llevan el ícono de QF Problems y se abren en su editor; los diagramas, en el suyo. Cada problema tiene «Eliminar», con confirmación.

/ contexto

Antes un problema solo se podía abrir: no se podía borrar ni ordenar, y al guardar no quedaba claro dónde estaba. Ahora el aviso al guardar dice «Guardado en tu biblioteca de QF Problems» y, si tiene colección, cuál, con un enlace a la biblioteca. Al crear una colección se elige el ícono entre veinte (antes solo aparecía el cerebro), la lista muestra un esqueleto mientras carga en vez de «Aún no tienes colecciones», y abrir una carpeta ya no espera a que cargue todo el panel. Eliminar una colección no borra lo que tiene: sus diagramas y problemas quedan sin colección.

Editor14 oct 2026

Las letras de la figura buscan un lugar libre

Las letras de los vértices y de los puntos, y las medidas de los ángulos, ya no quedan encima de un lado, un segmento o un arco: se alejan de lo que tienen alrededor y prueban posiciones hasta encontrar una libre. En el extremo de un segmento la letra va en su prolongación; en un punto medio, perpendicular al segmento; en un vértice que comparten varios polígonos, afuera del grupo.

/ contexto

Antes cada letra tenía un lugar fijo (a la derecha del punto, afuera del vértice, sobre la bisectriz del ángulo) y no miraba lo que había ahí. Ahora cada trazo, punto y polígono cercano «empuja» a la letra, más fuerte cuanto más cerca está, y la letra se va hacia donde hay espacio, sin pisar nada. Medido sobre 35 figuras: de 4 letras encimadas a ninguna, y de 19 letras pegadas a un trazo a 8. Lo que acomodaste a mano (una letra arrastrada o un lado elegido) no se mueve. Funciona igual en el editor, en la hoja y en las figuras del generador de problemas.

Editor14 oct 2026

Las letras de la figura ya no se achican en la hoja

Cuando una figura no cabe en su ancho de la hoja (por ejemplo, en una separata de dos columnas), se reduce el dibujo, pero las letras de los vértices, los puntos, los ángulos y los números de los ejes se imprimen a su tamaño de siempre y a la misma distancia de lo que nombran. Lo mismo se ve en el lienzo del problema.

/ contexto

Antes la hoja escalaba la figura entera: un triángulo de 12 cm en una columna de 9 cm imprimía la «A» a unos 6 pt junto a un enunciado de 9,5 pt. Ahora cada rótulo se agranda alrededor del punto que nombra lo mismo que la figura se redujo, como hace el plano cartesiano cuando su lienzo se achica. Con una reducción muy grande (figura pequeña en dos columnas) el agrandamiento se detiene en 2,5 veces para que las letras no tapen el dibujo; la nota de reducción sigue avisando.

Matemática14 oct 2026

Plano cartesiano: curvas suaves, que no se salen de los ejes

Las curvas del plano ponen más puntos donde la curva lo pide: la mariposa «curve(sin(t)*(exp(cos(t)) - 2*cos(4*t) - sin(t/12)^5), …, [0:12*pi])» y la rosa «polar(4.2*sin(7*theta), [0:2*pi])» ya no se ven poligonales, y «plot(sin(1/x), [0.01:1])» muestra cada oscilación. Ninguna curva se dibuja fuera de los ejes: «curve()», «polar()» y las cónicas se cortan en el borde del plano, y «plot(tan(x))» llega hasta el borde, sin unir las asíntotas. Y «intersection()» y «roots()» respetan el dominio de «plot(f, [a:b])».

/ contexto

Antes cada curva tenía 160 tramos fijos, sin importar cuánto ocupara: la mariposa tenía tramos de más de 100 px. Ahora el trazo se aparta de la curva menos de un píxel, y mientras se arrastra un deslizador se dibuja con menos puntos para que el arrastre no se trabe; al soltarlo se completa. Las esquinas de verdad, como la de abs(x), siguen en punta.

Simulación14 oct 2026

Óptica: luz en movimiento, y el nivel de referencia en Análisis

En el panel de una fuente de luz (láser, rayo, fuente puntual u objeto), «Luz en movimiento» hace viajar puntos por sus rayos desde la fuente, en el sentido en que va la luz: también tras reflejarse o refractarse. Viene apagada. En la biblioteca de Física, el «Nivel de referencia» pasa de Instrumentos a «Análisis y anotación», junto al sistema de ejes.

/ contexto

Los puntos solo recorren los tramos por donde viaja luz: la prolongación virtual de una lente divergente o de un espejo convexo, el eje óptico y la normal no se animan, porque por ahí no pasa nada. Es presentación: los rayos y las imágenes se calculan igual.

Matemática14 oct 2026

QF DSL de geometría: homotecia viva, y la perspectiva que escala sola

«A2 = homothety(A, O, 2)» dibuja la imagen de un punto, un segmento, una recta, una circunferencia, una elipse o una figura desde el centro O con razón 2; con razón negativa queda del otro lado de O (alias «homotecia»). La razón también puede ser la que lleva un punto a otro: con V en el punto de fuga, «halo2 = homothety(halo1, V, T1, T2)» lleva el halo del primer farol a uno más lejano, y al arrastrar T2 hacia V se achica solo. La imagen de una figura muestra sus vértices con prima (A′B′C′), que se llaman T2_A, T2_B… y se usan como cualquier punto.

/ contexto

Lo pidió el agente que dibuja por MCP: en una calle con faroles, el tamaño de los halos no seguía a la perspectiva y había que calcularlo a mano. El DSL de geometría no tenía ninguna transformación; la homotecia es la primera, y su imagen queda viva como el resto de la construcción. Es exacta para lo que mira de frente, como un halo o un farol; un charco en el piso se achata más con la distancia, y la homotecia conserva su forma.

Editor14 oct 2026

Editor de geometría: la elipse en la paleta, con sus semiejes en el lienzo

La paleta de geometría tiene «Elipse». Se ajusta con dos handles, uno en la punta de cada semieje (el del semieje a también la gira), o con «Semieje a», «Semieje b» y «Giro» en su ficha, donde también va su estilo y su relleno. Es la misma elipse que escribe el DSL, y la instrucción siguiente la conserva con la forma que le diste.

/ contexto

Solo el DSL creaba elipses. Al agregarla aparecieron tres fallas que ya tenía la elipse del DSL: al seleccionarla, sus 145 puntos de dibujo eran nodos editables y mover uno la rompía; la instrucción siguiente la convertía en un segmento de largo cero; y una elipse por sus focos se podía arrastrar aunque volvía a su lugar. Ahora se edita por sus semiejes, la IA la conoce como elipse y la elipse viva se mueve con sus puntos.

AI Assistant14 oct 2026

«Generar con IA» escribe varios problemas de una vez

En QF Problemas, elige la cantidad junto al contexto: hasta 5 problemas en el plan Free y hasta 10 en Pro. Cada uno se escribe y se dibuja aparte, sin repetir los anteriores, y se ven en una lista con su clave; puedes detener la tanda entre un problema y el siguiente.

/ contexto

Cada problema cobra sus créditos por separado, y el panel no ofrece más de los que alcanza el saldo del mes. Si uno falla, la tanda se detiene y los anteriores quedan guardados.

Matemática14 oct 2026

QF DSL de geometría: la elipse se rellena

«e { relleno: translúcido amarillo; borde: ninguno }» en el bloque /qf-style rellena una elipse como a una circunferencia: sólido, translúcido, rayado, puntos, degradado o radial, con «opacidad» y sin contorno si se pide. «elipse { … }» alcanza a todas las elipses, y las reglas de «curva» les siguen pintando el trazo. El degradado radial sigue el giro de la elipse, y una elipse por focos sigue rellena al arrastrar un foco.

/ contexto

Un agente que dibujaba por MCP armó charcos de luz bajo unos faroles con elipses, y salieron solo como contorno: para el bloque de estilos una elipse era una curva y «relleno» daba error. En el plano cartesiano la elipse, como la circunferencia, todavía no se rellena: la regla aplica el trazo y avisa. Escribir «fill=» dentro de ellipse() o circle() ahora es un error que explica que el relleno va en el bloque de estilos.

Editor14 oct 2026

Atajos V y H en el lienzo

V vuelve a la herramienta de seleccionar y H pasa a la mano para mover la vista, en todos los editores. Escribir esas letras en un campo de texto no cambia la herramienta, y Ctrl+V sigue siendo pegar.

/ contexto

Los botones de la barra ya anunciaban «Seleccionar (V)» y «Mano (H)», pero ninguna tecla hacía nada. Ahora el texto del botón y el atajo salen del mismo lugar, así no pueden volver a separarse.

Editor13 oct 2026

Plano cartesiano: las plantillas se cargan como una gráfica editable

En el plano, «Usar» en una plantilla (recta y parábola con sombreado, intersecciones, parábola con recta horizontal) carga su gráfica completa: un solo juego de ejes, sus curvas y puntos en el mapa, y todo sigue ahí después de editar. Si el plano ya tiene objetos, se pide confirmar, y se puede deshacer. Los puntos de corte son vivos: si cambias la recta en el mapa, la siguen, también hasta la tangencia (un solo punto) o hasta que dejan de existir.

/ contexto

Antes la plantilla se pegaba como un dibujo encima del plano: aparecían unos segundos ejes con otra escala, las curvas no correspondían al plano, el mapa decía que no había objetos y la siguiente edición la borraba. El panel del plano ya no muestra «Escenas rápidas» (eran escenas de física) ni plantillas que no son gráficas del plano.

Matemática12 oct 2026

Baldosas algebraicas: los factores y el área, en la misma figura

Cada pieza muestra la medida de sus lados, x o 1. Al comprobar un rectángulo, el lienzo dibuja una llave arriba y otra a la izquierda con los factores y, debajo, el área escrita de las dos formas: con 2x² + 7x + 3, «Área = (2x + 1)(x + 3) = 2x² + 7x + 3». Si el rectángulo es el objetivo, cae confeti; si es otra expresión, las llaves aparecen en ámbar con su propia área.

/ contexto

El rectángulo y el trinomio son dos formas de escribir la misma área; si los factores aparecen lejos de la figura, ese vínculo no se ve. En el borde del rectángulo quedan solo las medidas de afuera, y leídas en orden son los tramos de cada factor: x, x, 1 arriba. Si el rectángulo quedó pegado a un borde, al comprobar se corre lo justo para que quepan las llaves. Con «reducir movimiento» activado, el confeti no aparece.

Matemática12 oct 2026

QF Actividades: factoriza trinomios con baldosas algebraicas

En «/activities» hay un catálogo nuevo, gratis y sin registro. En «Trinomios, nivel 1» y «nivel 2» las piezas del polinomio aparecen en fila: se arrastran, se pegan solas cuando quedan lado a lado, y la baldosa x se gira con doble toque o con «Rotar 90°». Al comprobar, el rectángulo se lee lado por lado: con 2x² + 7x + 3, «2x² + 7x + 3 = (2x + 1)(x + 3)». En «Trinomios: elige tus piezas» el estudiante decide cuántas usar; si arma (2x + 1)(x + 2), una tabla le muestra que faltan 2 baldosas x y 1 unidad.

/ contexto

Los lados se leen como expresiones, pieza por pieza, y no por la medida en pantalla: por eso x no mide un número entero de unidades, y un rectángulo que solo cierra a la vista no se acepta. Un polinomio que no se factoriza con enteros no llega a mostrarse. En el panel, el botón «QF Actividades» da el enlace para los estudiantes y el código para incrustar la actividad. Fracciones y los retos de física aparecen como «Próximamente».

Mecánica12 oct 2026

Física: la mesa, con una polea en cada esquina

«mesa = table()» dibuja una mesa —el tablero y dos patas—, con «length=» y «height=» (del tablero al piso). «anchor(mesa, at=1)» monta un soporte en su esquina derecha y «at=0» en la izquierda; con «pin(P.axle, ancla)» la polea queda afuera del canto, la cuerda del bloque apoyado llega horizontal a la parte de arriba del disco y lo que cuelga baja vertical, por afuera de la mesa. Con 3 kg sobre la mesa, 2 kg a la derecha y 1 kg a la izquierda, «equilibrium()» responde que el de 1 kg sube a 1,64 m/s², con tensiones de 16,35 N y 11,45 N.

/ contexto

La mesa se dibujaba con «floor()»: un piso sin patas, y el soporte de la esquina quedaba parado sobre él, con la polea encima; el tramo hacia el bloque subía y lo que colgaba de la esquina izquierda caía en diagonal. Para el cálculo, la mesa es el mismo apoyo que un piso —roce, equilibrio y reproducción incluidos—, así que solo cambian el dibujo y el lugar de la polea. Las patas todavía no son un piso: al reproducir, lo que cuelga no se detiene al llegar abajo.

Mecánica11 oct 2026

Física: los valores del equilibrio, en la figura

«datos()» pone arriba de la figura una ficha con lo que resolvió el motor: el veredicto, la aceleración, las tensiones, las normales, los roces y las reacciones de los pasadores; «datos(A)», la de un cuerpo. «note(A, "T = {{tension(c)}} N")» escribe un texto junto a un objeto, del lado donde no tapa nada, con medidas vivas: tension(c), normal(A), roce(A), acel(A) y reaccion(V). En una máquina de Atwood de 5 kg y 3 kg con «decimal: coma», la ficha dice «a = 2,45 m/s²» y «T = 36,79 N».

/ contexto

«equilibrium()» respondía los valores en la conversación, pero la figura no los mostraba, y es lo que busca el alumno: «datos()» y «note()» solo existían para la óptica. Los valores se recalculan en cada dibujo con el mismo solver, así que cambian al editar una masa. Si el motor no puede resolver la escena, la ficha lo dice, las medidas se leen «—» y la respuesta explica por qué.

Mecánica11 oct 2026

Física: el resorte sale a la altura del bloque y la polea va en el borde de la mesa

Un resorte atado a una pared sale de su cara a la altura del bloque, horizontal; colgado de un techo, a su plomo. «spring(orientation=)» declara su eje (horizontal o vertical; «free» deja el amarre en el centro del soporte). En una mesa con polea, la polea va en el borde con su parte de arriba a la altura del amarre: el tramo de A a la polea sale horizontal, y con 3 kg sobre la mesa y 2 kg colgando, «equilibrium()» da a = 3,92 m/s² y T = 11,77 N.

/ contexto

El resorte salía del centro de la pared, que está a la altura del piso, y quedaba inclinado unos 7°; la polea se apoyaba sobre la mesa y el tramo de la cuerda subía unos 6°, aunque el motor ya lo calculaba a lo largo de la mesa: la figura no mostraba lo que se resolvía. El eje del resorte que traía el asistente se perdía al compilar la escena; ahora llega al dibujo.

Mecánica11 oct 2026

Física: lo que el motor no aplica, se dice

La respuesta avisa cuando algo del guion no llega a la figura: una polea fijada a un cuerpo que se mueve (una polea móvil, que el motor todavía no simula), un «fbd()» que no dibuja ninguna flecha, o una cuerda o un resorte cuyo trazo contradice su «direction=» o su «orientation=». Una cuerda o un resorte sin sus dos amarres se rechaza con su línea.

/ contexto

Esos casos compilaban sin decir nada: la polea quedaba dibujada sobre el bloque, el diagrama salía vacío, y una cuerda sin amarres se dibujaba hacia la esquina del lienzo. Una prueba recorre ahora cada enunciado de la mecánica y comprueba que ninguno se pierde sin aviso.

Mecánica11 oct 2026

Física: la viga con pasador, con su reacción en el diagrama

Con «pin(V, pared, at=0)» la viga queda fijada a la pared por su extremo y gira alrededor de él. Con el cable a 30° sobre la horizontal, «rope(from=V.rightEnd, to=pared, direction=150)», «equilibrium()» suma fuerzas y momentos y responde T = 98,10 N, Rx = 84,96 N alejándose de la pared y Ry = 49,05 N hacia arriba. «fbd(V)» dibuja la reacción en el pasador, el peso en el centro y la tensión en el amarre, a escala.

/ contexto

El pasador de una barra se guardaba y no se usaba: el diagrama salía sin ninguna flecha, la cuerda volvía casi sobre la viga y el equilibrio respondía que la viga caía a 9,81 m/s² con T = 2,79 N, sin avisar nada. Ahora la barra es un cuerpo rígido. «direction=» fija el ángulo de una cuerda, como en force(), y el motor la ata donde esa recta toca la pared, el techo o la superficie. Sin «direction=», el ángulo sale del dibujo y la respuesta lo dice. La reproducción todavía no hace girar cuerpos rígidos: se rechaza y lo dice.

Mecánica11 oct 2026

Física: el nudo, con todas sus tensiones

Con «fbd(J)» sobre un «junction()» se dibujan las tensiones del nudo, a escala entre sí, y «equilibrium()» las da todas. Con «rope(from=J, to=techo, direction=150)» y «direction=60», cuerdas a 30° y 60° con el techo, una masa de 10 kg da T1 = 49,05 N, T2 = 84,96 N y T3 = 98,10 N.

/ contexto

«fbd(J)» se rechazaba y el equilibrio tomaba el nudo como un punto fijo: devolvía solo la tensión que sostiene a la masa. Ahora el nudo es un cuerpo sin masa, también en las escenas del asistente.

Mecánica11 oct 2026

Física: el roce apunta según hacia dónde tiende a moverse el cuerpo

En el diagrama de cuerpo libre y en «equilibrium()», el roce es estático si alcanza para sostener el cuerpo (vale lo justo, y si vale 0 no se dibuja) o cinético (µ·N) contra el movimiento, y sale de la cara de contacto. Se puede declarar el movimiento con «on(A, rampa, mu=0.3, motion=up)», y una fuerza sin magnitud, «F = force(direction=30)», la despeja «equilibrium()»: la caja de 5 kg que sube a velocidad constante por un plano de 30° pide F = 37,27 N.

/ contexto

El roce se dibujaba siempre cuesta arriba y el motor no lo usaba al calcular: con 50 N empujando la caja plano arriba, la flecha del roce quedaba encima de la fuerza y la aceleración salía 5,10 m/s² en vez de 3,40. Ahora el dibujo y el equilibrio salen del mismo cálculo, también en las escenas del asistente. Con «equilibrium()», la normal, el roce y las tensiones se dibujan a escala y siguen a la escena al editarla. La reproducción con roce todavía no está: se rechaza y lo dice.

Mecánica11 oct 2026

Física: la gravedad de la escena se declara, gravity(10)

Con «gravity(10)» en la primera línea, el peso, el equilibrio y la reproducción usan g = 10 m/s²: la máquina de Atwood de 5 kg y 3 kg da a = 2,5 m/s² y T = 37,5 N, como en el libro. Sin declararla, sigue en 9,81.

/ contexto

Muchos libros usan g = 10 para que las cuentas cierren a mano, y un resultado calculado con 9,81 parecía un error del alumno.

Mecánica11 oct 2026

Asistente de física: «DCL» enciende el diagrama de cuerpo libre

Pedir «DCL de un bloque en un plano inclinado» al asistente ahora dibuja el peso, la normal y las demás fuerzas, igual que «diagrama de cuerpo libre». También en las escenas con nudos.

/ contexto

La palabra «DCL» se buscaba en mayúsculas sobre un texto que ya estaba en minúsculas, así que nunca coincidía, y las escenas con nudos no revisaban el pedido. Lo medimos en el informe de estado de física.

Mecánica11 oct 2026

QF DSL de física: espejos inclinados, el periscopio y el telescopio de Newton

Un espejo plano ahora se inclina y sale del eje: «A = mirror(plano, at=(0, 3), angle=135)» y «B = mirror(plano, at=(0, 0), angle=135, mira=arriba)» son un periscopio, y «l = laser((-4, 3), angle=0)» llega a 45° a cada uno y sale paralelo, 3 unidades más abajo. «mira=» elige la cara que refleja. Con un espejo cóncavo en el eje y una diagonal, el telescopio de Newton. «laser(E, incidence=30)» apunta al centro de un espejo plano: la ley de la reflexión.

/ contexto

El banco del objeto, sus rayos y su imagen siguen sobre un eje recto: con un espejo inclinado, los rayos notables lo cruzarían sin verlo, así que un objeto y un espejo inclinado no van en el mismo script y QuickFigen lo dice con la línea. El espejo suelto mide 2,7 (abertura= lo cambia) y no crece con los láseres, porque su plano corta caminos que nunca lo tocan.

Mecánica10 oct 2026

QF DSL de física: el semicilindro del ángulo crítico y la gota

«S = semicircle(n=1.5, r=2)» es un semicilindro de vidrio y «G = disc(material=agua, r=2)», una gota. «laser(S, incidence=45)» entra por la cara curva sin desviarse y llega al centro de la cara plana a 45°: más que el ángulo crítico, así que la luz se refleja por completo. «laser(G, incidence=59.4)» llega horizontal a la gota y se refracta al entrar y al salir.

/ contexto

Las caras curvas se trazan con la ecuación del círculo, no con un polígono de muchos lados: con facetas, el rayo que apunta al centro se torcía hasta 0,3°, y el experimento del ángulo crítico depende justo de que ese rayo entre derecho. Una circunferencia de geometría sin índice sigue siendo transparente para la luz.

Mecánica10 oct 2026

QF DSL de física: los ángulos del láser, vivos en el texto

Junto a la figura se pueden escribir los ángulos del láser: «note((0, -2.5), "δ = {{desviacion(l)}}°")», con incidencia(l, 2) y refraccion(l, 2) en cada impacto y critico(P) e indice(P) de un medio. «datos(l)» arma la ficha del láser: con qué ángulo llega y sale en cada cara, la desviación total y el ángulo crítico de cada medio que cruza. Los números se rehacen al mover el láser.

/ contexto

Un problema de prisma pide escribir θ₂, θ₄ y la desviación junto al dibujo, y que coincidan con lo que se ve. Por eso las medidas salen del mismo trazado que dibuja el haz, en cada render, y no de una cuenta aparte. En un espejo o en la reflexión total, refraccion() da el ángulo de reflexión, y un impacto que ya no existe se lee «—».

Mecánica10 oct 2026

QF DSL de física: prismas, láminas, el agua y el láser

Ahora el DSL de física dibuja la refracción. «P = prism(n=1.5)» es un prisma; «slab()», una lámina de caras paralelas; «medium(n=1.33, below=0)», el agua bajo su superficie, y «medium(n=1.5, [(0,0), (4,0), (0,3)])», un medio con cualquier contorno. «l = laser(P, incidence=40)» apunta el láser a la cara del prisma con su ángulo de incidencia, y el motor sigue el haz: Snell en cada cara, reflexión total más allá del ángulo crítico y los reflejos parciales, más tenues. «normals(l)» marca la normal y los ángulos, y «luz=blanca» separa los colores.

/ contexto

El motor ya trazaba haces por prismas y bloques desde el editor, con Snell, reflexión total y reflejos de Fresnel, pero el DSL no los nombraba: la referencia decía «todavía no». Para no obligar a calcular a mano el punto medio de una cara, su normal y un origen afuera, el láser se apunta con el ángulo de incidencia y desde un lado («from=arriba»). Si la cara mira hacia el otro lado, la luz viaja por dentro del medio, como del agua al aire. El agua se dibuja como un medio que sigue más allá de la figura: el borde del lienzo no cuenta como una cara.

Mecánica10 oct 2026

Banco óptico: los rótulos de los libros

En el banco óptico del DSL, el centro de una lente se llama O (V queda para el vértice de un espejo), el objeto sin rótulo es A y sus imágenes A′, A″ y A‴, con la prima en un solo carácter. F y F′ siguen el sentido de la luz: F es el foco del lado del objeto en una convergente y del lado por donde sale la luz en una divergente. Los elementos comparten un solo eje óptico, y «img = image(obj)» aparece entre los nombres declarados.

/ contexto

Un objeto llamado «A′» daba una imagen «A′'», la lente tenía su centro rotulado V y el objeto se llamaba O, como el centro óptico de los libros. Con la luz hacia la izquierda, los focos de una divergente quedaban invertidos, y cada elemento dibujaba su propio eje punteado, superpuesto al de los demás. En el editor, una escena con un solo elemento conserva sus rótulos de siempre.

Mecánica10 oct 2026

QF DSL de física: cotas, medidas vivas y la ficha del problema de óptica

«cota(obj, L)» dibuja dₒ = 5 bajo el eje, y también «cota(img, L)», «cota(L.F, L)» y la altura con signo, «cota(img, altura)»: h′ = −1.33. «note((2, -3), "m = {{aumento(obj)}}")» escribe el aumento, y «datos(obj)», la ficha con f, dₒ, dᵢ, m y si la imagen es real o virtual, derecha o invertida, mayor o menor. Todo cambia al arrastrar el objeto y respeta «decimal: coma» y las unidades. En el bloque de estilos, «obj { color: rojo }» pinta el objeto, sus rayos y su imagen.

/ contexto

El editor ya tenía la cota anclada a la construcción óptica, pero el DSL no: «cota» no existía y la física no tenía notas con medidas vivas, que el plano y la geometría sí. Los números no se calculan al compilar: el render los lee del mismo trazado que dibuja los rayos, así que nunca quedan viejos. También se avisa en las notas cuando el objeto está en el foco (la imagen se va al infinito) o en 2F (imagen del mismo tamaño).

Mecánica10 oct 2026

QF DSL de física: banco óptico, con varias lentes y espejos encadenados

Con varios elementos sobre el eje, la luz los recorre todos en su orden y cada imagen es el objeto del siguiente, real o virtual: un microscopio, un telescopio o una lente frente a un espejo se dibujan en 5 o 6 líneas. «obj = object(at=-1.5, height=0.6)» deja entrar la luz por la izquierda, «image(obj, L1)» dibuja la imagen intermedia A′ e «image(obj)» la final, A″. Los rayos concurren en la imagen, la lente crece hasta cubrirlos y «abertura=» fija su alto.

/ contexto

Un agente midió las figuras contra la ecuación de lentes delgadas. Con dos lentes, la luz cruzaba la segunda sin desviarse y la imagen era la de una sola: física falsa, sin aviso. En los espejos, los rayos fallaban la imagen por 4 a 7 px —y por 232 px con el objeto entre F y V, con el rayo «desde F» quebrado— porque se doblaban sobre un arco a escala con la dirección del plano del vértice. Ahora los espejos curvos se dibujan delgados, como la lente: la recta del vértice con las puntas curvadas, y ahí doblan la luz. Las prolongaciones ya no repisan el rayo real y el eje óptico es uno solo.

Editor10 oct 2026

Plano cartesiano: el mapa, la paleta y los campos hacen lo que muestran

En una figura con paneles apilados, la paleta crea en el panel seleccionado (o en el primero) y el objeto se ve. Un clic en una cónica, una curva paramétrica, polar o implícita, un segmento, un polígono o un área abre su tarjeta en el mapa. Borrar un campo numérico ya no guarda 0, y cada herramienta de la paleta recuerda su propia selección.

/ contexto

Antes, «Función» en una figura apilada creaba una curva que nunca se dibujaba; tocar una circunferencia abría el inspector de funciones con «Plot … no encontrado»; cambiar la curva de un área con condición («donde g > f») no cambiaba el dibujo; refinar con IA renombraba f y g a p1 y p2, y los puntos anclados a ellas desaparecían; borrar la x de un punto lo llevaba al origen y no se podía escribir «-3»; y elegir una cónica en Intersección hacía fallar «Área bajo curva», que seguía mostrando f. El mapa tampoco se cae ya con una anotación sin texto o un polígono sin vértices.

Editor10 oct 2026

QF DSL: una curva dentro de otra, y los errores que antes callaban

En el plano cartesiano, «k = plot(f(x - 2) + 1)» usa una curva del script dentro de otra: traslada, refleja o compone, también en curve() e inequality(). En física, una opción que el constructor no lee —«ramp(30, color=rojo)», «incline(30, mu=0.2)»— y un valor sin sentido —«block(-4kg)», «ramp(170)», «on(A, piso, at=1.5)»— se rechazan con su línea, en vez de dibujar otra cosa.

/ contexto

«plot(f(x) + 1)» compilaba y la curva no aparecía, con una nota en inglés. En física, «block(-4kg)» llegaba con 0 kg, «ramp(-30)» salía como un piso y «ramp(170)», casi vertical, todo sin aviso. Al revisar cada opción contra lo que se dibuja aparecieron dos que no hacían nada: «surface(angle=…)», que la guía prometía, y «spring(orientation=…)»; las dos se quitaron. La plantilla del espejo plano tampoco pasaba la validación del esquema: ahora una prueba revisa todas las plantillas.

Matemática10 oct 2026

QF DSL del plano: «axes off» y medidas vivas en notas y rótulos

En el plano cartesiano, «axes off» quita los ejes y sus números (la rejilla, con «grid off»). Las notas y los rótulos miden: «{{angle(A, B, C)}}°» es el ángulo en B en grados, «{{length(s)}}» el largo de un segmento, y «{{area(T)}}» y «{{perimeter(T)}}» los de un polígono, además de «{{dist(P, Q)}}». También en un rótulo: «label(s, "s = {{length(s)}}")». Al arrastrar un punto o mover un deslizador, el número se recalcula.

/ contexto

Para un lienzo limpio, un agente pintaba los ejes de blanco y sus marcas cortaban la figura. Y en el plano solo se podía medir la distancia: «{{length(s)}}» salía crudo y un rótulo con una medida se dibujaba «?{dist(A, B)}?», sin error. Ahora las medidas tienen los mismos nombres que en geometría, y lo que no se puede medir —el largo de una recta, una función que no es medida, un nombre que no existe— se rechaza con su línea.

Mecánica10 oct 2026

QF DSL de física: lentes y espejos, con sus rayos y su imagen

«L = lens(convergente, f=2)», «obj = object(L, at=-5, height=2)», «rays(obj)» e «image(obj)» dibujan la lente, el objeto, los tres rayos notables y la imagen, que calcula el motor: real e invertida en x = 10/3, o virtual y punteada si el objeto está dentro del foco. También «mirror(cóncavo, f=3)», convexo o plano, y lentes divergentes. Al arrastrar el objeto, los rayos y la imagen se rehacen.

/ contexto

Los objetos de óptica ya estaban en el editor, pero el DSL no los nombraba: un agente dibujó una lente convergente en geometría, con la lente como región de 24 vértices y la imagen calculada a mano (29 líneas). Ahora son 4. Las medidas son del banco óptico —sin unidad, o todas en cm— y el banco se encuadra solo. Los prismas y los láseres todavía no tienen constructor, y QuickFigen lo dice en vez de improvisar.

Matemática10 oct 2026

QF DSL de geometría: marcas de igualdad y de paralelismo, y el ángulo entre dos rectas

«marca(AC, BC, 1)» pone una rayita en cada lado para decir que miden lo mismo (dos o tres para otro grupo) y «paralela_marca(AB, DC)» pone puntas de flecha de paralelismo, todas en el mismo sentido. Siguen a la figura al arrastrar, y si la figura no cumple lo que la marca dice, las notas lo avisan. «angle(r, s)» marca el ángulo entre dos segmentos o rectas, en su extremo común o en su cruce.

/ contexto

El agente que dibujaba por MCP no tenía cómo marcar lados iguales ni paralelos, que es lo primero que se escribe sobre un triángulo isósceles o un paralelogramo. Una marca afirma algo de la figura: por eso, si los lados no miden lo mismo o no son paralelos, se avisa con su línea en vez de dibujar una figura que miente.

Matemática10 oct 2026

QF DSL del plano: elipses por sus focos, puntos sobre paramétricas y notas que miden

En el plano cartesiano, «e = ellipse(focos=(F1, F2), a=4)» o «ellipse(focos=(F1, F2), pasa_por=A)» dibuja la elipse por sus focos y la rehace al mover uno; «note((0, -3), "PF₁ + PF₂ = {{dist(P, F1) + dist(P, F2)}}")» mide en vivo; «M = on_curve(c, pi/2)» pone un punto sobre una paramétrica o una polar (con un parámetro, la recorre); «K = point(4*cos(30°), sqrt(3))» acepta expresiones y grados, y con parámetros sigue al deslizador; «X = intersection(r1, r2)» corta rectas, segmentos y semirrectas. «oculto» ya esconde curvas, cónicas, rectas, polígonos y áreas, y «A = P[0]» se rotula «A».

/ contexto

El mismo agente que dibujaba por MCP armó el lugar geométrico de la elipse con dos mitades de curva, b = 2,4 calculado afuera y «= 8» escrito a mano en la nota. Ahora la elipse es una sola, por sus focos, y la nota dice 8 en cualquier posición de P, también si se arrastra un foco. Para no mezclar unidades, un valor de t fuera del recorrido de la curva es un error que sugiere los grados.

Matemática10 oct 2026

QF DSL de geometría: elipses por sus focos, que se cortan con todo y siguen a sus puntos

«eA = ellipse(focos=(B, C), pasa_por=A)» dibuja la elipse de focos B y C que pasa por A, y se rehace al arrastrar cualquiera de los tres; también «ellipse(focos=(B, C), a=5)» y «ellipse((0, 0), a=4, b=2, giro=30)». Se corta con rectas, circunferencias y otras elipses con «intersection», y las reglas «cerca_de=», «arriba» o «second» eligen el cruce.

/ contexto

Para el punto de De Longchamps un agente usó el plano cartesiano y calculó afuera el centro, los semiejes y el giro de cada elipse, y a mano los puntos X, O y H. En geometría ahora son 23 líneas sin un número calculado fuera: las cuerdas comunes de las tres elipses se cortan en X, el simétrico del ortocentro respecto del circuncentro, y siguen haciéndolo al mover un vértice.

Matemática10 oct 2026

QF DSL del plano: sistemas de desigualdades, sus vértices y el cruce que pides

«F = sistema(x + y <= 8, 2*x + y <= 12, x >= 0, y >= 0)» pinta la región que cumple todas las desigualdades, con la recta frontera de cada una, y «V = vertices(F)» da sus esquinas: (0, 0), (6, 0), (4, 4) y (0, 8). «region(abajo f, abajo g)» queda bajo las dos curvas, e «intersection(f, g, cerca_de=M)» elige un cruce por lo que es (también lejos_de=, sobre=, arriba, abajo, izquierda y derecha) y lo sigue eligiendo al mover un deslizador.

/ contexto

Un agente que dibujaba por MCP armó una región de programación lineal con region(abajo l1, abajo l2) y el plano pintó una región falsa: solo contaba la última cota. Al revisar apareció otro silencio: un área bajo tan(x), floor(x) o log10(x) no se pintaba. También, si se pide óptica en física («laser», «source»), la respuesta ya no sugiere un tipeo: dice que QuickFigen todavía no dibuja óptica, para que no se improvise con otra construcción.

Matemática10 oct 2026

QF DSL: textos y medidas vivas en geometría, y «oculto» para cualquier objeto

En geometría, «note((0, 3), "AB = 4", tamaño=20, peso=negrita, giro=15)» pone un texto sobre la figura y «label(s, "MO = {{length(s)}}")» rotula un segmento con su medida, que se recalcula al arrastrar; también «{{dist(B, C)}}», «{{angle(A, B, C)}}», «{{area(T)}}» y «{{perimeter(T)}}». En el bloque de estilos, «k, r { oculto: sí }» esconde una recta o una circunferencia auxiliar: sigue sirviendo para construir y no cuenta para el encuadre. En el plano cartesiano, «eje { oculto: sí }» quita los ejes y sus números.

/ contexto

Lo pidió el mismo agente que dibujaba con el MCP: para esconder una recta la pintaba de blanco, lo que tapaba lo que cruzaba y achicaba la figura, y en cinco problemas no podía escribir los datos del enunciado sobre la figura. Además, un objeto llamado como un tipo (una recta «eje») perdía su estilo sin aviso: ahora es un error con su línea, y los rechazos del motor también dicen en qué línea está el objeto.

Matemática10 oct 2026

QF DSL de geometría: el cruce que pides, circunferencias por tres puntos y rectas construidas que se cortan

Con dos cruces, «intersection(k, r, lejos_de=M)» elige el más alejado de M y lo sigue siendo al arrastrar; también «cerca_de=», «sobre=» (un objeto o un lado AB) y «arriba», «abajo», «izquierda» o «derecha». El cruce con un segmento cuenta solo sobre el segmento. Las mediatrices, paralelas, perpendiculares y tangentes ya se cortan entre sí y con lo demás, «circumcircle(A, F, E)» pasa por tres puntos cualesquiera (también construidos) y «triangle(D, E, F)» se arma sobre puntos construidos y se mueve con ellos.

/ contexto

Lo pidió un agente que dibujaba con el MCP desde claude.ai: «second» dependía del sentido con que se declaró la recta y en Descartes el segmento midió 2 en vez de 8; un cruce con un segmento podía caer en su prolongación sin aviso; y el teorema de Miquel necesitó 50 líneas, con cada circuncentro armado a compás. Ahora son 12. Si un script viejo cruzaba un segmento en su prolongación, el rechazo dice cómo pedir la recta: line(A, B).

Simulación10 oct 2026

La etiqueta de una cuerda y los rótulos de un gráfico se arrastran en el lienzo

Elige la cuerda, el resorte o el plano cartesiano y arrastra su etiqueta o el rótulo de un eje con el mouse o con el dedo: queda donde la sueltas. La ficha muestra el corrimiento en píxeles, y «Posición automática» la devuelve a su lugar.

/ contexto

Hasta ahora esas etiquetas solo se corrían escribiendo números en la ficha. Se agarran por la letra, como la etiqueta de un espejo o una lente, y el lugar del agarre sale del mismo cálculo que las dibuja, así que no saltan al soltarlas. Al reproducir, la etiqueta de la cuerda conserva su corrimiento y acompaña a la cuerda mientras el péndulo oscila.

Simulación10 oct 2026

La etiqueta de una cuerda o un resorte se ve en el lienzo

Lo que se escribe en «Etiqueta» de la ficha de una cuerda o un resorte ahora se dibuja: a mitad del recorrido, al costado de la línea (arriba si el tramo es horizontal). «Posición de la etiqueta» la corre en píxeles, y «Posición automática» la devuelve. Acepta valores que se actualizan, como «T = {{c.T}} N».

/ contexto

La ficha ofrecía el campo para todos los objetos, pero el dibujo de la cuerda y el del resorte nunca lo leían: la etiqueta se guardaba y no aparecía. La mitad se mide sobre el tendido, así que en una cuerda que pasa por una polea la etiqueta queda a mitad del camino real, no entre los extremos.

Simulación10 oct 2026

Los valores de la simulación salen con dos decimales, y cada magnitud tiene un solo nombre

En un texto, {{b.Ek}} escribe «9.00 J» en reposo y «1.65 J» al arrancar: lo que mide la simulación sale con dos decimales fijos, y el texto ya no cambia de ancho. Los datos declarados siguen como se escribieron ({{b.m}} → «2»), y {{b.Ek|1}} pide otra cantidad de decimales. En «Insertar un valor», la masa y la velocidad inicial aparecen una sola vez, como b.m y b.v0.

/ contexto

Antes un valor entero se escribía sin decimales y uno con decimales con dos, así que el mismo texto saltaba de «9» a «1.65». Y el selector ofrecía la masa dos veces (b.m y b.mass), con dos nombres para lo mismo. Lo ya escrito con el nombre largo ({{b.mass}}) sigue funcionando.

AI Assistant10 oct 2026

Si «Generar con IA» no entrega un problema, no se cobra

En QF Problemas, si la generación termina sin un problema guardado (el modelo no respondió o devolvió algo incompleto), se devuelven los créditos del intento, hasta 5 veces al mes. Un problema que sí se generó se cobra, aunque su figura no se haya podido dibujar.

/ contexto

Los créditos se descuentan antes de llamar al modelo, y hasta ahora un intento fallido se cobraba igual. El tope mensual existe porque cada intento fallido también puede tener un costo para QuickFigen.

Simulación9 oct 2026

Los números y los rótulos de los ejes de un gráfico cambian de tamaño y de lugar

En la ficha del plano cartesiano, la sección «Rótulos y números de los ejes» cambia el tamaño de los números y el de los rótulos, y corre cada rótulo hacia un lado (↔) o hacia arriba o abajo (↕), en píxeles. «Posición automática» los devuelve a su lugar.

/ contexto

Antes los números medían siempre 10 px y los rótulos 11 px, en un lugar fijo, y la ficha no ofrecía cambiarlos. Al agrandar la letra, la banda de números crece y los rótulos se alejan solos para no pisarla; el corrimiento se suma a ese lugar automático. Un rótulo corrido fuera del marco se incluye en el encuadre, así que no se recorta al exportar.

Simulación9 oct 2026

El texto ofrece las magnitudes de la simulación y avisa lo que está mal escrito

En la ficha de un texto, «Insertar un valor» lista lo que publica la simulación, agrupado por cuerpo, cuerda y escena, con su símbolo, su valor y su unidad: un clic inserta {{b.Ek|2}} donde está el cursor. Debajo del contenido, cada referencia que no da un número dice por qué y ofrece el arreglo con un botón «Usar…»: {{b.ek}} → {{b.Ek}}, {{b.masa}} → {{b.m}}, {{sen(30 deg)}} → {{sin(30 deg)}} y {{sqrt{…}}} → {{sqrt(…)}}. El símbolo que muestra «Variables» también se puede escribir: {{b.Ec}} vale lo mismo que {{b.Ek}}.

/ contexto

Para mostrar la energía cinética había que saber de memoria que se escribe {{b.Ek}}: el selector solo ofrecía los campos guardados del objeto, con la posición en píxeles, y una raíz escrita con llaves de LaTeX quedaba tal cual en el lienzo, sin ningún aviso. Ahora la pestaña «Variables», el selector y los avisos usan la misma lista de nombres. Los avisos solo aparecen en física: en el plano cartesiano {{n}} es un parámetro y no hay que marcarlo.

Simulación9 oct 2026

El largo del péndulo es un dato de la cuerda

El largo L del péndulo, del pivote a la atadura, figura ahora bajo la cuerda en «Variables» y en el selector del texto, y se escribe {{c.L}} (c es la cuerda). Antes aparecía como dato del cuerpo que cuelga ({{b.L}}); escribir eso ahora muestra el aviso «el largo es de la cuerda» con el arreglo a un clic. La tensión T de la cuerda también se lista en reposo, con su valor de t = 0.

/ contexto

Lo señaló una persona usuaria: la longitud es una propiedad de la cuerda, no de la esfera. El motor ya medía L sobre el tendido de la cuerda; solo se publicaba en el lugar equivocado.

AI Assistant9 oct 2026

Generar con IA: describe el problema y QuickFigen dibuja su figura

En QF Problemas, «Generar con IA» ahora recibe un contexto libre: nivel o grado, currículo o examen, tema, idioma, formato y dificultad. La IA escribe el enunciado, la respuesta y la resolución, y QuickFigen dibuja la figura con QF DSL. Si la respuesta es una medida de la figura (un ángulo, una longitud, un área), QuickFigen la compara con lo que mide la figura y, si no coincide, avisa y guarda el problema igual. El problema queda privado en tu biblioteca para revisarlo en el editor.

/ contexto

Antes, el generador ofrecía un solo tema de geometría. Los currículos cambian por país y por institución, así que QuickFigen no comprueba que el problema siga un currículo o un grado: lo indicas en el contexto y lo revisas en el borrador. Lo que QuickFigen todavía no dibuja (circuitos eléctricos, óptica, campos eléctricos) sale sin figura, y el panel lo advierte.

Plataforma9 oct 2026

La página de límites dice lo que QuickFigen hace hoy

En /guia/limites, cada límite de un DSL ahora se comprueba con scripts que pasan por el compilador. Se corrigieron dos que ya no eran ciertos: un punto sí se ata a un segmento («P = on_segment(s, 0.3)» lo pone al 30 % de s), y «triangle(A, B, C)» sí toma como vértices puntos que ya pusiste. La sección de física ahora dice qué no tiene constructor en el DSL: circuitos eléctricos, óptica y campos eléctricos.

/ contexto

La página era texto escrito a mano y nada la comprobaba. El panel «Generar con IA» la enlaza para decir qué no se dibuja, así que tiene que decir la verdad: si vuelve a negar algo que compila, una prueba falla.

Editor9 oct 2026

El cilindro ya se puede usar en un problema

Un cilindro de la paleta ya se puede usar en un problema, y uno generado por la IA ya no termina en un error de validación. En el lienzo del problema y en la hoja impresa, un cilindro alto o acostado ahora sale entero; antes se le recortaban las bases.

/ contexto

La validación rechazaba cualquier cilindro: no lo tenía registrado y esperaba otro, con campos que nada en QuickFigen construye. Lo encontró el registro de objetos de la ontología, que cruza lo que cada parte de QuickFigen construye con lo que la validación acepta.

Editor9 oct 2026

El script dibuja lo que dice: comentarios, at= y construcciones sin solución

Un comentario ya no cambia la figura: «# el triángulo va después» dejaba un cuadrilátero de tres vértices. En física, «on(A, piso, at=0.8)» y «on(B, piso, at=0.1)» dejan cada cuerpo donde dice, aunque compartan la superficie. Y por el MCP y la API, una construcción sin solución, como una tangente desde un punto interior, se rechaza con su causa en lugar de responder «ok» con la figura sin la recta.

/ contexto

Son cuatro arreglos que preparan la generación por DSL, en la que un modelo escribe el script y lo corrige con lo que le responde el motor. El DSL pasaba por estaciones pensadas para pedidos en texto: buscaban palabras como «triángulo», «regular» o «tangentes» dentro del script, repartían en tercios los cuerpos de una misma superficie sin mirar su at= y apoyaban sobre una superficie ajena una masa que cuelga de una cuerda. Además, cuando la validación rechaza una escena, el mensaje nombra el objeto y el campo, por ejemplo «objeto «malo» (Spring): Value at /stiffness must be > 0», donde antes decía «{}».

Simulación9 oct 2026

Pestaña «Variables»: lo que se da, lo que se mide y lo que se calcula

En una escena de física, el panel derecho suma la pestaña «Variables», junto a «Prop.» y «Canvas». Lista los DATOS (la masa y la velocidad inicial, que se editan ahí mismo; el largo del péndulo y g), las MAGNITUDES que publica la simulación con su valor y su unidad —el del cuadro mientras corre, el de t = 0 en reposo— y las VARIABLES DERIVADAS que tú defines. Cada fila muestra cómo nombrarla en un texto, por ejemplo {{b.Ek}}, y se copia con un clic.

/ contexto

Es como se resuelve un problema de física: qué se da, qué se mide, qué se calcula. La pestaña funciona también como diccionario de nombres: lo que muestra para un texto es exactamente lo que el texto resuelve, con el mismo número. Si la escena todavía no se puede reproducir, lo dice con el motivo en vez de mostrar valores inventados.

Simulación9 oct 2026

Variables nuevas a partir de las que publica la escena

En «Variables» → «Derivadas» se define una magnitud con un nombre, un símbolo, una unidad y una expresión: theta_grados = b.theta * 180 / pi, p = b.m * b.v, o v² para linealizar. Se calcula en cada cuadro de la corrida, se puede graficar como cualquier otra magnitud y cada una puede usar las que se definieron antes.

/ contexto

Son las columnas calculadas del laboratorio escolar. Una expresión ve el tiempo t, la gravedad g, las magnitudes de cada cuerpo (b.s, b.v, b.Ek, b.theta…), sus datos (b.m, b.v0), el largo de la cuerda de un péndulo (c.L) y las energías de un sistema (sys.A.E). Mientras se escribe, el formulario muestra el valor que daría en ese instante o por qué no se entiende. Una variable que no se puede calcular en un cuadro no se publica como cero, y no impide calcular las demás. Las expresiones se evalúan sin acceso a funciones peligrosas (import, evaluate, parse), porque una escena se comparte y se abre en otro navegador.

Simulación9 oct 2026

Los textos de una escena de física muestran la energía, la rapidez o una fórmula, y cambian al reproducir

Dentro de un texto, {{b.Ek}} muestra la energía cinética del cuerpo b en el cuadro que se ve, {{b.Ek|1}} la escribe con un decimal, {{p|3}} muestra una variable derivada y {{b.mass * g|1}} calcula una expresión que mezcla un dato del objeto con la gravedad. También funciona dentro de una fórmula, como E_k = {{b.Ek|2}}.

/ contexto

Antes, las llaves dobles solo leían campos guardados en el objeto (como {{b.mass}}); las magnitudes de la corrida no eran alcanzables. Ahora el texto sigue a la simulación cuadro a cuadro, y en reposo muestra el valor de t = 0. Sin una corrida posible, lo que depende de ella se escribe «—» en lugar de un error, mientras que un nombre mal escrito sigue marcándose como error. Los valores del instante no se guardan en la escena: solo se usan para dibujarla.

Simulación9 oct 2026

El péndulo publica θ(t) y ω(t)

Un cuerpo que cuelga de una cuerda y oscila ahora publica su ángulo θ (en rad) y su velocidad angular ω (en rad/s), que se pueden graficar y leer en textos y en «Variables». La magnitud s indica que es el arco medido desde la vertical.

/ contexto

Solo estaba s(t), el arco, y para estudiar el péndulo hacía falta convertirlo a mano. θ(0) es el ángulo del dibujo: si el cuerpo empieza a la izquierda del pivote, θ(0) es negativo. En pequeñas oscilaciones θ(t) sigue al movimiento armónico simple, y ω es su derivada.

Simulación9 oct 2026

Barras de energía con escala en la energía mecánica inicial, y barras verticales

Al graficar energías como barras, el largo total es ahora la energía mecánica inicial E₀ (medida desde el nivel de referencia, si hay uno): sin fricción, la barra de la energía total la llena de punta a punta durante toda la corrida, aunque solo se grafique la cinética o la potencial. En el gráfico, «Orientación» ofrece barras «Horizontales» o «Verticales», y los nombres de cada magnitud caben en el recuadro: uno que no cabe se abrevia.

/ contexto

La escala salía del máximo de la corrida y la barra de la energía total quedaba corta sin motivo. E₀ es la referencia natural para comparar cómo se reparte la energía, y lo seguirá siendo cuando se sume la fricción (la energía térmica sale de esa misma cuenta). Si una barra supera la escala, se recorta con una marca y conserva su número. Cuando E₀ vale cero, o se mezclan energías con otras magnitudes, la escala sigue saliendo de la corrida como antes.

Simulación9 oct 2026

Las flechas de velocidad y aceleración se editan como las del DCL

En la ficha del cuerpo, las flechas de velocidad y de aceleración tienen su propio estilo: color, grosor, largo, cabeza, rótulo, color del rótulo y posición del rótulo. La dirección no se edita, porque la calcula el motor.

/ contexto

Las calcula la simulación en cada cuadro, así que no aparecen como objetos sueltos en el lienzo ni en la lista de objetos: el estilo se guarda en el cuerpo. El de la velocidad no afecta al de la aceleración. Si el cuerpo declara v₀, su flecha de velocidad ya se ve en t = 0, antes de pulsar ▶.

Matemática5 oct 2026

La suma de Riemann sigue al mismo deslizador que el texto

Con «param n = 6 in [1, 60] step 1» y «R = riemann(f, [0:1], n=n)», la cantidad de rectángulos ES el parámetro n: al mover su deslizador cambian a la vez los rectángulos, el valor Sₙ y cualquier texto con {{n}}. El deslizador «N rectángulos» del panel de propiedades mueve ese mismo parámetro. El parámetro tiene que avanzar de a enteros, entre 1 y 200.

/ contexto

Antes, n= solo aceptaba un número fijo, así que una figura con un texto «n = {{n}}» tenía DOS n sin conexión: el deslizador del parámetro movía el texto y el de «N rectángulos» movía el dibujo, y cualquiera de los dos dejaba al otro diciendo algo falso. Ahora el área guarda el nombre del parámetro y lo lee cada vez que la figura se recalcula. La reproducción ▶ de un parámetro con paso también avanza de paso en paso, como el deslizador, para no mostrar n = 6.23 mientras se dibujan 6 rectángulos.

Matemática5 oct 2026

El texto de una figura puede mostrar valores que cambian con el deslizador

Dentro de un texto, lo que va entre llaves dobles se calcula: «note((1, 4), "dx = {{1/n}}")» imprime 0.1667 con n = 6 y 0.0833 con n = 12. Vale cualquier expresión con los parámetros de la figura, así que una suma, un promedio o una fórmula cerrada se escriben una vez y se actualizan al mover el deslizador. Lo que no dé un número queda tal cual.

/ contexto

El texto solo sabía mostrar lo que estaba escrito, y los parámetros no eran alcanzables desde él. El valor se calcula al construir la figura, no al dibujarla, así que viaja dentro de la escena: también sale en el SVG exportado y en las figuras que pide un agente por MCP.

Matemática5 oct 2026

El plano cartesiano ya no ocupa siempre todo el lienzo

La directiva «frame x: [0.05, 0.95], y: [0, 0.55]» decide en qué parte del lienzo se dibuja el plano, en fracciones de 0 a 1 (la y se mide desde arriba). El plano entero —ejes, números, rótulos y título— se rehace dentro de esa región, y lo que queda libre sirve para otra cosa: un bloque de fórmulas debajo, o un segundo plano al lado. Dentro de un «panel», coloca ese plano solo en vez de apilarlo.

/ contexto

La caja del plano se centraba sobre las dimensiones del lienzo con dos expresiones fijas, sin ningún campo que llegara hasta ahí: en math2D no se podía mover ni achicar, mientras que en física un plano embebido sí se mueve y se repite. Ahora el plano se construye sobre una región en vez de sobre el lienzo. Sin declararla, la región ES el lienzo y la figura sale exactamente igual que antes.

Simulación4 oct 2026

La etiqueta de un espejo o una lente se arrastra

Elige el espejo o la lente y arrastra su etiqueta (la que escribes en «Etiqueta» de la ficha) a donde quieras. Queda atada al elemento: si después lo mueves o lo giras, la etiqueta lo acompaña.

/ contexto

La etiqueta se dibujaba en un lugar fijo, detrás del extremo de arriba, y al tomarla se arrastraba el elemento entero. Ahora se agarra por la letra, como la de un vértice, y guarda su corrimiento en el marco del elemento. Sin arrastrarla, queda exactamente donde estaba.

Simulación4 oct 2026

Luz de colores, el arcoíris del prisma y la lente definida por sus radios

En la ficha de un láser, un rayo o una fuente puntual, «Luz» ofrece ahora «De un color» (una longitud de onda, de 380 a 750 nm) y «Blanca»: la luz blanca entra gris al prisma y sale separada en siete colores, de violeta a rojo, y un prisma de flint abre el abanico dos veces y media o más que uno de vidrio común. En la ficha de una lente, «Se define por: Sus radios y su material» pide el material y el radio de cada cara, calcula f con la ecuación del fabricante y dibuja la lente desde sus radios: con la misma curvatura, la plano-convexa tiene el doble de f que la biconvexa. Con luz de color, esa lente enfoca cada color en un lugar distinto (aberración cromática).

/ contexto

Lo de siempre sigue siendo lo de siempre: «Como siempre (índice de tabla)» y «Su distancia focal f» son la opción por defecto, y nada cambia mientras no se elija otra. Los detalles —la longitud de onda, el número de Abbe de cada material, los radios— aparecen solo cuando se piden. El índice para cada color sale de la fórmula de Cauchy armada con el índice de tabla y el número de Abbe de catálogo (vidrio común 64.2, flint 36.4), que pasa exactamente por el índice de siempre. La lente sigue siendo delgada: su forma decide la f, pero la refracción en caras curvas (la lente gruesa) queda para más adelante.

Simulación4 oct 2026

La cota se ata arrastrando su extremo hasta el punto

Arrastra un extremo de la cota hasta un vértice, un punto, V, F, F′ o C de una lente o un espejo, o el pie o la punta del objeto: mientras lo llevas, un halo muestra a qué punto se va a atar, con su nombre, y al soltarlo queda atado. Cada extremo se ata por su cuenta: puedes atar uno y dejar el otro libre, y soltar uno lejos de todo ya no suelta el otro. Con Shift, el extremo no se imanta.

/ contexto

Hasta ahora atar era un gesto de la ficha, y arrastrar un extremo hacía lo contrario: soltaba la cota de los dos lados, porque los dos extremos tenían que estar atados a la vez. Ahora cada extremo guarda su propia atadura, y la ficha y el lienzo usan la misma lista de puntos: lo que la ficha ofrece es lo que el arrastre imanta, también los puntos ocultos.

Simulación4 oct 2026

La cota se ata al foco, al vértice y al objeto de una lente o un espejo

En la ficha de la cota, «Mide desde» y «Mide hasta» ofrecen ahora los puntos de la construcción óptica: V, F, F′ y C de cada lente o espejo, el pie y la punta del objeto y de su imagen. La cota queda atada: si mueves la lente o cambias su distancia focal, mide de nuevo sola. Así se acota la distancia focal, la distancia del objeto a la lente o la altura de la imagen.

/ contexto

Lo reportó una persona usuaria: «el objeto cota no se puede anclar al vértice, ni al foco ni al objeto en lentes». La ficha armaba la lista solo con los objetos que se dibujan a mano, y esos puntos los calcula el motor. De paso, los puntos V, F y C siguen existiendo aunque se oculten, así que apagarlos no suelta la cota, y el vértice de un espejo plano —que nace con los puntos ocultos— también se puede acotar.

Simulación4 oct 2026

Prismas, bloques de vidrio y rebotes entre espejos

La sección Óptica de la paleta trae «Bloque de vidrio» y «Prisma». El láser se refracta al entrar y al salir según el índice (ley de Snell), se refleja por completo más allá del ángulo crítico y deja en cada cara un reflejo más tenue, que muestra la reflexión múltiple dentro del bloque. Con «Ángulos de incidencia» se ven la normal y los ángulos en cada cara. El índice se elige en el panel del polígono: aire, agua, acrílico, vidrio, vidrio flint, diamante u otro valor; cualquier polígono puede volverse un medio. Y el haz ahora rebota en todos los espejos de la escena: dos espejos enfrentados, un periscopio o una esquina de 90°.

/ contexto

Lo pidió una persona usuaria: prismas «para ver la múltiple refracción y reflexión según el índice», y las reflexiones múltiples entre espejos, que habían quedado pendientes. Hasta ahora el haz se calculaba contra un solo espejo o lente y terminaba tras un rebote. Ahora recorre la escena entera: en cada paso busca la superficie más cercana. Los reflejos de cada cara usan la reflectancia de Fresnel (4 % en el vidrio con incidencia normal) y se pueden apagar con «Reflexiones parciales». Dos límites a la vista: el prisma todavía no separa los colores (un solo índice), y una fuente puntual atada a un espejo o lente sigue formando la imagen de ese elemento, sin pasar por el prisma.

Simulación3 oct 2026

Lentes plano-convexas, plano-cóncavas y meniscos

Con «Dibujo: Cuerpo de lente», el panel ofrece «Forma del cuerpo»: biconvexa o bicóncava, plano-convexa o plano-cóncava con la cara plana a uno u otro lado, y menisco convergente o divergente. Los lados se nombran según hacia dónde mira la lente en la pantalla («plana a la izquierda»). Cambiar la forma no cambia la física: la lente desvía la luz según su distancia focal f.

/ contexto

Lo pidió una persona usuaria: «no vi lentes mixtos, convergente plano o divergente plano». En el modelo de lente delgada que usa QF, una plano-convexa es una lente convergente y una plano-cóncava, una divergente: la forma solo cambia el valor de f (ecuación del fabricante de lentes). Faltaba el dibujo, que solo hacía biconvexa o bicóncava. De paso, la bicóncava se dibujaba con las dos caras cruzadas en el centro; ahora tiene el centro delgado y no se cruza.

Simulación3 oct 2026

Óptica: agregar otra lente o espejo ya no deshace la construcción

Si la escena tenía una sola lente y las fuentes formaban su imagen con ella —por ejemplo, la imagen de una figura con una fuente por vértice—, al soltar o duplicar otra lente o espejo esas fuentes siguen atadas a la primera, con sus imágenes y la figura imagen en su lugar. Una fuente que agregues cuando ya hay dos o más elementos muestra en el panel un aviso para que elijas en «Elemento» a cuál mira.

/ contexto

Lo reportó una persona usuaria: «puse otra lente y toda mi construcción se deshizo». Con un solo elemento, las fuentes puntuales y las flechas se atan solas a él; con dos, ninguna elige, y la segunda lente las dejaba a todas sin elemento sin avisar. Ahora, en el momento de agregar el segundo elemento, se escribe explícito el vínculo que ya existía. Las fuentes nuevas no se asignan solas: con varias lentes, elegir por la persona sería inventar.

Simulación3 oct 2026

Lentes: el objeto puede ir a cualquier lado, y la luz las cruza desde los dos

Frente a una lente, el objeto (flecha o vela) ya no queda atado a la izquierda: se arrastra al otro lado y la construcción se rehace allí, con su imagen del lado opuesto. La luz que llega por la derecha —un láser, una fuente puntual, las fuentes de los vértices de una figura— atraviesa la lente en lugar de rebotar. En el panel, «Distancia al elemento» muestra la que usa el motor y, frente a una lente, negativa significa el lado opuesto al que «mira». Los espejos no cambian: detrás de un espejo no llega luz.

/ contexto

Lo reportó una persona usuaria: «en lentes el objeto solo se puede mover al lado izquierdo; en lentes no hay un lado preferencial». La lente se trataba como un espejo de una sola cara: el objeto soltado a la derecha volvía a 480 px a la izquierda, el mango de distancia se frenaba en la lente y la luz que llegaba por detrás salía hacia el lado del que venía. Ahora la lente se mira desde donde está el objeto, y la regla de desvío usa el foco del lado hacia el que va la luz. «Mira hacia» solo decide de qué lado se rotula F (y F′ del otro).

Editor3 oct 2026

Lo que el script declara después se dibuja encima

En geometría y en el plano cartesiano, el orden del script es el orden de dibujo: un fondo «cielo = region(…)» escrito primero queda debajo del sol y de todo lo demás, y una figura declarada antes que una región queda tapada por ella. Los puntos y los textos quedan siempre arriba; en el plano, la cuadrícula y los ejes van abajo y sus números, arriba de todo. Es el mismo orden en el editor y en el SVG del MCP y la API. Además, «fill=» acepta los colores del bloque /qf-style («fill=rojo», «fill=marrón», «fill=celeste»), y el contorno de una región sigue a su relleno: «relleno: sólido rojo» ya no deja el borde ámbar, y con un degradado la región queda sin contorno.

/ contexto

Lo reportó un agente que dibuja por MCP: con el cielo declarado primero, el SVG lo pintaba encima del sol, de los segmentos y de los puntos. El SVG pintaba en el orden interno del motor, agrupado por tipo, y el editor por capas fijas: dos órdenes distintos y ninguno era el del script. Ahora los dos salen de la misma función. Una figura que nunca pasó por el DSL se dibuja como antes. En las ilustraciones de /guia, los puntos quedan ahora sobre las regiones sombreadas. En «fill=», los nombres que ya existían (ámbar, azul…) conservan su tono claro, y lo escrito en la línea del script sigue mandando sobre el bloque de estilo.

Editor3 oct 2026

Figuras por coordenadas, sin un punto por vértice

En geometría, «polygon((0, 0), (4, 0), (1, 3))» dibuja el polígono con esos vértices, sin letras ni puntos auxiliares, y «region()» también acepta pares (x, y), solos o mezclados con puntos con nombre. En el bloque /qf-style, la opacidad de una región alcanza ahora su contorno, y «borde: ninguno» lo quita en regiones, polígonos y circunferencias. Una circunferencia de menos de 1 px se rechaza con su línea y el radio mínimo para esa escala.

/ contexto

Un agente dibujó un atardecer con 434 puntos declarados solo para nombrar los vértices de 62 regiones: el 78 % del script. La guía que lee el modelo le decía que, para una figura con coordenadas, declarara los puntos. Con coordenadas, el mismo atardecer baja de 18 660 a 10 721 caracteres y su SVG de 252 KB a 37 KB, y se ve igual. Una región por coordenadas queda fija: no hay puntos que la muevan. Además, el contorno de una región translúcida salía opaco, y una estrella de radio 0,03 con «scale 32» volvía con un error ilegible del motor.

Editor3 oct 2026

La figura se puede ver construirse, paso a paso

En el editor, el botón «Reproducir» de la barra inferior (▶ en el teléfono) muestra la figura objeto por objeto, en el orden en que el script la escribe. En el plano cartesiano los ejes están desde el principio, y lo que una construcción trae consigo —las marcas de ángulo de un triángulo, el cuadradito de una perpendicular— aparece junto con ella. Se puede pausar, ir un paso adelante o atrás (también con las flechas y la barra espaciadora), elegir la velocidad, de 0,4 s a 2,5 s por paso, y repetir en bucle. En el MCP y la API, «animate» sigue ahora ese mismo orden, y «stepSeconds» y «holdSeconds» cambian el ritmo.

/ contexto

Ver cómo se arma una figura ayuda a explicarla. La reproducción es una capa de solo lectura, con la misma vista del editor: no cambia la figura ni agrega nada a deshacer. El orden se guarda con la figura, y una figura hecha a mano se reproduce en el orden en que se agregaron sus objetos. Al hacerlo apareció un problema del SVG animado del plano cartesiano: cada línea de la cuadrícula y cada número de los ejes ocupaba su propio turno, sin seguir el script. El área entre curvas de la suite del agente tardaba 56,8 s por vuelta y ahora tarda 9,1 s. Un punto auxiliar escondido con «marcador: ninguno; rótulo: no» no ocupa un paso propio: entra con lo que lo necesita.

Editor3 oct 2026

Los puntos auxiliares se pueden esconder

En el bloque /qf-style, «marcador: ninguno» quita la marca de un punto y «rótulo: no» quita su nombre; con las dos el punto no se ve, y sigue sirviendo para construir. Vale por tipo («punto { rótulo: no }»), por nombre («M { marcador: ninguno; rótulo: no }»), para un vértice de una figura y, en el plano cartesiano, para todos los puntos de una colección («P { … }» con «P = intersection(f, g)»). «rótulo: sí» devuelve el nombre a uno solo.

/ contexto

Fue lo primero que pidió un agente al dibujar por MCP una figura con muchos puntos de construcción: no había forma de esconderlos y el radio mínimo era 1 px. El motor y el panel ya sabían hacerlo; faltaba decirlo en el lenguaje. De paso, la figura pesa menos: los nombres viajan como trazos, y en una figura de prueba el SVG bajó de 5,9 KB a 0,8 KB. En el plano, el rótulo que pide «label(A, "…")» en la línea del script manda sobre «rótulo: no». Lo escondido se conserva cuando se envía otro script sobre la misma figura.

Editor2 oct 2026

Lo que la figura ya dibuja no se dibuja dos veces

Un triángulo con «angles=(30, 90, 60)» o «right_at=B» ya marca sus tres ángulos, y la mediatriz y la perpendicular ya traen su cuadradito de 90° en el pie. Si además el script escribe «angle(C, A, B)» sobre uno de esos ángulos, ahora se marca una sola vez: queda la marca escrita, que puede llevar un símbolo («angle(B, A, C, alfa)»). En física, una «force()» hacia abajo sobre un cuerpo que ya muestra su peso en el DCL se dibuja, pero con un aviso: si es el peso, se fija con «fbd(A, weight=39N)».

/ contexto

Apareció al usar QuickFigen desde Claude: el modelo no ve la figura mientras escribe el script y agregó un angle() en cada vértice de un triángulo que ya los marcaba. El arreglo tiene dos partes: el motor no dibuja dos veces el mismo ángulo, y la referencia que lee el modelo trae una regla general —lo que una construcción ya dibuja no se vuelve a declarar— y, en cada gramática, qué es lo automático. En física no se fusiona nada en silencio, porque una fuerza hacia abajo puede ser un empujón real además del peso. Un ángulo distinto en el mismo vértice, como el que forma la altura con un lado, se sigue dibujando además.

Plataforma2 oct 2026

API de figuras y MCP remoto, en piloto

Otra plataforma, o un agente como Claude, puede pedirle una figura a QuickFigen: envía un script QF DSL y recibe el SVG construido por el motor. Hay dos puertas con la misma llave: «POST /api/v1/figure» para el servidor de una plataforma, y el servidor MCP en «/api/mcp» para agentes (en Claude Code se agrega con un comando). Las llaves se crean y se revocan en Configuración → API y MCP, y la página /api explica el contrato, los límites y los errores.

/ contexto

Hasta ahora el MCP solo corría en la computadora de quien tenía el código. Ahora corre en el sitio, sin instalar nada, y cada llave tiene su cuota (60 llamadas por minuto y 1000 al mes): dibujar no usa IA ni créditos, pero sí tiempo de cálculo, y eso es lo que la cuota protege. Para un agente, conectarse no gasta cuota; si se agota, el dibujo responde con la fecha en que se renueva, para que el agente se lo pueda explicar a la persona en lugar de fallar en silencio. Está en piloto cerrado: para pedir acceso, escribe a soporte@quickfigen.com.

Editor2 oct 2026

Bloque de estilos /qf-style, y coma decimal a pedido

Al final de un script QF DSL, una línea «/qf-style» abre un bloque con el aspecto de la figura, escrito como una hoja de estilos: «curva { grosor: grueso; línea: punto-raya }», «punto { marcador: cruz }», «región { relleno: degradado(blanco, celeste, 90) }» o, por nombre, «A, f { color: rojo }». Sirve en geometría, plano cartesiano y física, y trae vocabulario nuevo: puntos cuadrados y en cruz, la línea punto-raya (también en el DSL del plano: «plot(f, punto-raya)»), el degradado radial y los rellenos rayados o de puntos en las regiones del plano. Los números salen con punto decimal; con «decimal: coma» salen con coma («0,5») y los pares que escribe la figura, con punto y coma («(1,5; 2,25)»).

/ contexto

El DSL dice qué es la figura y el bloque, cómo se ve: una regla vale para muchos objetos sin repetir «color=» en cada línea, y el mismo script puede cambiar de aspecto sin tocar la construcción. Lo que la línea del DSL ya dice («color=», «punteado», «fill=») manda sobre el bloque, y lo que nadie dice sale del estilo estándar. En el Perú y en buena parte de Latinoamérica la norma es la coma decimal; se dejó el punto por defecto para seguir la convención internacional, y la coma queda a un renglón de distancia (el Sistema Internacional admite las dos). Los paneles ofrecen también lo nuevo: cuadrado y cruz en el estilo de punto, punto-raya en la cuadrícula y en las cónicas, y degradado radial en los polígonos del plano. Límites de esta versión: el bloque se aplica al compilar el script, así que lo que se agrega después nace con el estilo estándar; en física no cambia los cuerpos ni las flechas del DCL, y en el plano una circunferencia todavía no se rellena. Cuando algo no se puede aplicar, QuickFigen lo avisa en lugar de callarlo.

Editor2 oct 2026

Un estilo estándar para todas las figuras

Geometría, plano cartesiano y física comparten ahora los mismos valores por defecto para puntos, líneas y ejes: una sola tinta, cuatro grosores (fino, medio, normal y grueso, en la proporción de las figuras de LaTeX), una discontinua y una línea de puntos que se ven igual en rectas, curvas y circunferencias, puntos del mismo tamaño y el signo menos tipográfico en los números de los ejes y en las coordenadas: «−3» en lugar de «-3».

/ contexto

Cada parte de QuickFigen había elegido sus propios números: el mismo punto salía con tres tamaños, la discontinua con cuatro patrones y la tinta con tres negros distintos, según la gramática y la ruta. Ahora salen de un solo lugar, y lo que eliges en una figura (un color, un punteado) sigue mandando. Es la base del futuro bloque de estilos, que permitirá cambiar esos valores sin tocar el guion de la figura.

Editor2 oct 2026

Las figuras exportadas conservan la letra de LaTeX fuera de QuickFigen

Al exportar a SVG, PNG o PDF desde el editor, y en las figuras que entrega el servidor MCP, el texto de la figura viaja dibujado con su letra (QF Figura) en lugar de como texto. Los rótulos salen con la misma letra y en el mismo lugar que en pantalla, aunque el programa o la computadora que abre el archivo no tenga esa fuente.

/ contexto

Un SVG con texto le pide la fuente a quien lo abre, y si no la tiene pone otra. El PNG se dibuja dentro de una imagen, donde la letra que carga la página no está disponible, así que salía con la serif del sistema. En el PDF el texto salía en Times, la letra integrada del generador de PDF, y los caracteres fuera de su codificación se rompían: «m₁» quedaba «m •». Ahora cada letra es un trazo, en la misma posición que en pantalla. A cambio, el texto del PDF ya no se puede seleccionar ni buscar; en el SVG, cada rótulo conserva su texto como etiqueta de accesibilidad. Un rótulo con un carácter que la fuente no tiene (por ejemplo, un ideograma) queda como texto, y el MCP lo avisa en sus notas.

Editor2 oct 2026

Las figuras se escriben con la letra de LaTeX

Rótulos, números de los ejes, medidas, ángulos, títulos y notas usan ahora una sola tipografía: New Computer Modern, el Latin Modern de LaTeX con griego y símbolos matemáticos. θ, α y ω salen como en un libro de física, y los subíndices y superíndices de m₁, v₀, x² o aᵢ, con la misma letra que el resto.

/ contexto

Antes una misma figura mezclaba tres letras: Cambria o Georgia en la mayoría de los rótulos, la del sistema en los títulos y en los textos libres, e Inter en el nivel de referencia. Las fuentes las sirve QuickFigen, renombradas «QF Figura» como pide su licencia (GUST Font License). La fuente traía la θ con la forma cursiva del griego tipográfico; ahora θ es la cerrada de \theta y ϑ la cursiva, como en LaTeX. Un texto con una fuente elegida a mano la conserva, y el cronómetro y la regla mantienen la letra de su instrumento.

Editor2 oct 2026

El relleno degradado ya no rompe la figura, y el rayado sale en las figuras del servidor

Un polígono del plano cartesiano con relleno «Gradiente» ya no hace fallar la figura cuando se le pide un cambio a la IA. Las figuras que dibuja el servidor —el MCP y las ilustraciones de /guia— muestran el rayado de pisos y techos, el relleno de puntos y la sombra suave igual que el editor. Y si la IA no responde, «plano inclinado» y «campo gravitatorio» vuelven a dibujarse con su plantilla.

/ contexto

Eran dos defectos que los tests revisaban por partes. El tipo de la escena conocía el degradado y la sombra suave, pero el validador no, y rechazaba la escena entera: también las dos plantillas que usa el respaldo sin IA, que por eso mostraba el aviso de IA no disponible. Y el rayado se definía solo en el lienzo del editor; el SVG del servidor lo nombraba sin definirlo, y una referencia sin definición no se pinta. Ahora el lienzo y el servidor toman las definiciones del mismo lugar, y un test recorre cada origen hasta el SVG.

Matemática2 oct 2026

Plano cartesiano: hasta tres gráficas apiladas con el mismo eje x

En el QF DSL del plano, «panel "Velocidad"» abre una gráfica debajo de la anterior, con el mismo eje x: f arriba y f′ abajo, o x(t), v(t) y a(t). Lo que va antes del primer panel (window x, axis x, param, title) es de toda la figura; dentro de cada panel van su «window y», su «axis y» y sus objetos. Los ejes x quedan alineados, las áreas de datos miden lo mismo y un deslizador mueve todos los paneles.

/ contexto

El motor ya apilaba gráficas, pero solo se llegaba a eso por la ruta con IA. Al traerlo al DSL aparecieron tres defectos que también afectaban a esa ruta: los ejes x quedaban corridos si los números del eje y tenían distinto ancho, un parámetro declarado para toda la figura no llegaba a los paneles y el panel con título quedaba más bajo. Además, el «0» del origen se encimaba con el primer número negativo del eje y en gráficas bajas, y ahora ese número se omite.

Matemática2 oct 2026

Plano cartesiano: el trazo punteado y los colores se dibujan como se piden

En el QF DSL del plano, «plot(sen(x), punteado)» dibuja la curva discontinua y «puntos» la dibuja de puntos. Funciona también en curve, polar, las cónicas, segment, ray, line y vector, por ejemplo en «k = circle((0, 0), 3, punteado, color=gris)». color= y fill= aceptan rojo, azul, verde, amarillo, morado, naranja, negro, gris, rosa, cian, celeste, violeta y marrón, o un hexadecimal como color="#1f77b4".

/ contexto

Al armar figuras complejas en el plano apareció que la ayuda enseñaba «punteado» y la curva salía continua, que «color=gris» salía azul sin avisar y que las cónicas ignoraban lo que viniera después de sus campos. Ahora un color desconocido, o una opción que el constructor no lee, rechaza el script con el número de línea, igual que cualquier otro error de escritura.

Matemática1 oct 2026

Geometría: la perpendicular marca su ángulo recto

«q = perpendicular(A, B, P)» dibuja el cuadradito de 90° donde la perpendicular corta a AB, igual que la mediatriz. Acompaña a la figura: si mueves A, B o P, o deslizas P por el segmento, el cuadradito sigue en el pie.

/ contexto

Lo notó la persona usuaria al probar la tanda anterior: la mediatriz traía su cuadradito y la perpendicular no. Si el punto P queda lejos de AB y la perpendicular termina antes de llegar a la base, el cuadradito no aparece, porque no habría un cruce que marcar; al alargar la recta desde su extremo hasta cruzar AB, aparece solo.

Editor1 oct 2026

Geometría: los puntos se agarran desde su centro

Un clic en el centro de un punto lo agarra, aunque una circunferencia, un arco o una recta pase por él: el punto que da la abertura de «c = circle(O, P)», las dos bases de Euclides I.1, los extremos de «arc(O, A, B)», un punto sobre una circunscrita o el extremo de un segmento. Antes el clic caía en la curva y el punto no se movía.

/ contexto

Apareció al verificar en el editor los arreglos de la prueba de estrés: en las escenas de ejemplo de la guía, 18 de 51 puntos tenían otro objeto encima de su centro. Había dos causas. Una curva construida después de un punto que pasa por ella se dibujaba encima, y si esa curva no se arrastra (un compás o un arco), el clic no hacía nada; ahora los puntos se dibujan siempre encima de las líneas, las circunferencias y los arcos. Además, la marca punteada que une el extremo de un segmento con su punto se llevaba el clic justo en el centro; ahora se ve, pero no responde al clic.

Matemática1 oct 2026

Geometría: lo que declaras es lo que se dibuja

«circle((0, 0), 0.3)» respeta su radio, aunque sea pequeño. Una tangente desde un punto interior ya no desaparece en silencio: el script se rechaza con la causa («Desde un punto interior no hay tangente.»). Un punto que deslizaste sobre una circunferencia o un segmento conserva su lugar cuando agregas algo con otro «/qf-dsl», y se desliza bajo el cursor aunque hayas movido el centro del compás o deformado el triángulo de una circunscrita.

/ contexto

Son hallazgos de la prueba de estrés de la geometría. Había un radio mínimo oculto de 24 px; una construcción sin solución se omitía sin aviso; el plan guardaba el lugar donde nació cada punto atado, y al deslizarlo se medía sobre la figura vieja (hasta 90 px de error). También se corrigió la ayuda de «center(Q)»: es el promedio de los vértices, que coincide con el cruce de las diagonales solo en un paralelogramo. Para el cruce en cualquier cuadrilátero, se usa «intersection» de las dos diagonales.

AI Assistant1 oct 2026

IA: los puntos quedan donde los ubica el modelo

Cuando la IA arma una figura de geometría e indica dónde va cada punto con nombre, ese es el lugar donde aparece. Antes esas coordenadas se perdían y los puntos caían en un lugar por defecto, también al generar desde una imagen.

/ contexto

Las instrucciones del modelo le piden la posición de un punto con un nombre de campo y el paso que valida la respuesta leía otro, el que usa el modo DSL. El ejemplo que traen esas mismas instrucciones —dos segmentos que se cruzan— «salía bien» igual, porque la ubicación por defecto también deja el cruce dentro de los dos segmentos. Ahora se leen los dos nombres, y una prueba toma los puntos directamente de las instrucciones del modelo para que no vuelvan a separarse.

Plataforma1 oct 2026

La guía del plano cartesiano nombra todo lo que el DSL acepta

La tabla del plano cartesiano en /guia ahora incluye «point(2, 3)», «segment(A, B)», «vector(A, B)», «ray(A, B)», «line(A, B)», «polygon(A, B, C, fill=azul)», «parabola((0,-1), p=2, abajo)» y «root(f, branch=0)»: el DSL ya los aceptaba, pero la tabla no los mencionaba. Y si el plano cartesiano no reconoce un constructor, el error enumera los que sí existen.

/ contexto

La tabla de /guia es lo que lee una IA externa para escribir QF DSL, así que lo que no aparece ahí nadie lo usa. En geometría y en física una prueba ya comparaba la tabla con lo que acepta el DSL; en el plano cartesiano no existía, y faltaban ocho constructores. Ahora la prueba cubre las tres gramáticas. El comando sigue siendo «/qf-dsl» en las tres gramáticas, sin nada más. Escribir la versión al lado («/qf-dsl v1») es opcional y está pensado para otras plataformas que guardan scripts: física la rechazaba y el plano cartesiano aceptaba cualquier número; ahora las tres la tratan igual. Es parte de preparar el DSL para que otras plataformas lo usen.

Matemática1 oct 2026

Los ejemplos de la ayuda del DSL funcionan tal como están escritos

Dos ejemplos de la ayuda de geometría no compilaban: ahora son «par = parallel(A, B, P)» y «k = circle(C, AB)». En el plano cartesiano, la f y la g de la ayuda se cortan de verdad, así que «P = intersection(f, g)» seguido de «A = P[0]» funciona copiándolos juntos, y «R = roots(g)» encuentra su raíz.

/ contexto

En geometría los nombres no distinguen mayúsculas: «p» y «P» son el mismo nombre, y la ayuda los usaba juntos. En el plano, la recta del ejemplo era tangente a la parábola y la intersección quedaba vacía. Ahora cada ejemplo de la ayuda, cada fila de la tabla de /guia y cada tarjeta tiene una escena de prueba que se compila igual que tu script y comprueba que se dibuja todo lo declarado: si algo de la guía deja de funcionar, la prueba falla antes de publicarse.

Matemática1 oct 2026

Geometría: la tangente en un punto de la circunferencia

Con el punto sobre la circunferencia, «tangent(c, P)» traza la tangente EN P: perpendicular al radio y centrada en P. Sirve con «P = on_circle(c, 50)», con «c = circle(O, P)» o con un punto que cae en la circunferencia por construcción. Al deslizar P por el borde, la tangente lo acompaña, y sus extremos se alargan arrastrándolos.

/ contexto

Lo encontró una prueba de estrés de la geometría: es la construcción escolar más común, y no se veía. Con el punto sobre el borde, la fórmula de la tangente desde un punto exterior da un trazo de largo cero. De paso se corrigieron dos cosas del editor: la tangente tapaba al punto y no se lo podía agarrar, y al agarrar el extremo de cualquier recta construida —tangente, mediatriz, paralela— después de mover lo que la define, la recta se recortaba de golpe. Ahora el extremo se queda bajo el cursor.

Matemática1 oct 2026

Geometría: las construcciones con muchas capas se arman al instante

Un script del modo DSL con construcciones encadenadas —puntos medios de puntos medios, el paralelogramo de Varignon repetido nivel tras nivel— se construye en milisegundos. Antes, cada capa duplicaba el tiempo: 21 niveles tardaban más de nueve segundos y, desde unos 24, el pedido se cortaba sin llegar a dibujar la figura.

/ contexto

Lo encontró una prueba de estrés de la geometría. Al construir, el motor volvía a recorrer toda la cadena de un punto cada vez que otro punto lo nombraba, así que una figura donde cada nivel depende de dos puntos del anterior se recorría como un árbol que se duplica en cada capa. Ahora cada punto se calcula una sola vez. Las posiciones son exactamente las mismas que antes: se comprobó en 17 construcciones de referencia, punto por punto.

Matemática1 oct 2026

Geometría: lo que deja de existir al arrastrar ya no queda dibujado

Si al arrastrar una figura una construcción se queda sin solución —dos rectas que se vuelven paralelas, dos circunferencias que se separan, un triángulo que queda aplanado—, el punto, la recta o la circunferencia que dependían de ella dejan de dibujarse, junto con todo lo que se apoya en ellos: el segmento que llega al punto, la marca de ángulo, la cota. Cuando la construcción vuelve a tener solución, reaparecen en su lugar.

/ contexto

Lo encontró una prueba de estrés de la geometría. Antes, el punto sin solución volvía al lugar donde estaba al construirse la figura y seguía a la vista con su letra: el cruce de dos rectas paralelas aparecía donde se cortaban al principio, una mediatriz hecha con compás seguía en pie con los arcos separados, y las tangentes de Tales seguían dibujadas con el punto adentro de la circunferencia. Es la regla de la geometría dinámica: lo que no existe no se dibuja. Si ocultaste un objeto a mano, sigue oculto, y la figura que se guarda no cambia.

AI Assistant1 oct 2026

QF Explain: la cámara ya no se mueve sola, y una explicación sin figura se puede reproducir

Al reproducir una explicación, la figura queda en el mismo encuadre de principio a fin: ya no se achica cuando un paso agrega algo en el borde ni crece cuando se va un resaltado. Una explicación sin figura se reproduce igual, con su texto, en lugar de mostrar «todavía no tiene figura». Y en el DSL de física, los rótulos con coma decimal, como «fbd(A, weight="mg = 49,1 N")», llegan completos a la figura.

/ contexto

Son arreglos que encontró la auditoría de QF Explain antes de abrirlo a física y al plano cartesiano. El encuadre se calculaba en cada fotograma con lo visible en ese instante; ahora se calcula una vez, con todo lo que la explicación llega a mostrar. El resaltado de un paso ahora dura solo ese paso, como dice el contrato de las acciones, en lugar de quedar pintado en los siguientes. La coma decimal partía el rótulo en dos argumentos: el DSL separaba por comas sin mirar las comillas, y por la misma razón un «#» dentro de un rótulo lo cortaba como si fuera un comentario.

AI Assistant29 sep 2026

QF Explain (beta): la IA explica por pasos dibujando en QF DSL, con regla y compás

En el Studio de un problema de geometría hay un botón nuevo, «✦ Con IA · DSL (beta)». La IA escribe la explicación como líneas de QF DSL repartidas por momento: cada momento narra y después dibuja lo que dice, con todo lo que el DSL sabe hacer —compás, arcos, mediatrices, tangentes—. Si la figura del problema viene de un script QF DSL, construye sobre ella sin cambiarla; si el problema no tiene figura, la dibuja. La explicación y la figura llegan juntas como borrador, con avisos cuando una narración nombra algo que todavía no está dibujado.

/ contexto

La generación de siempre emite acciones sobre una figura existente con un vocabulario propio, y ese vocabulario no alcanzaba para construcciones: no tenía compás ni mediatriz por un punto. En el banco de nueve construcciones (72 corridas, 8 por caso, con compás, tangentes, mediatrices y una figura dada), las 72 terminaron con la figura correcta medida y la narración coherente con el dibujo; 71 compilaron al primer intento. Las tangentes siguen siéndolo al mover el punto exterior, porque el modelo usa el compás vivo. Así, el límite de lo que se puede explicar pasa a ser el límite del DSL, y cada ampliación del DSL llega sola a las explicaciones. Si el script no compila, el error del compilador vuelve al modelo una vez para corregirlo, dentro del mismo costo. Es beta porque falta medirlo en problemas reales; el camino de siempre no cambió.

Cuatro momentos de una explicación que generó la IA con el canal DSL, sobre el segmento AB: 1, con centro en A, dos arcos del compás; 2, con centro en B, otros dos que los cruzan; 3, los cortes C y D; 4, la recta CD, mediatriz de AB, con el punto medio M y su ángulo recto.
Matemática29 sep 2026

Geometría: arcos, marcas de compás y cruces que no saltan al arrastrar

En el modo DSL, «arc(O, A, B)» dibuja el arco de centro O que empieza en A y gira en sentido antihorario hasta la dirección de B, y se rehace al mover cualquiera de los tres. «circle(A, 3, arcs)» deja solo las marcas del compás junto a cada cruce, que es como se ve una construcción en el cuaderno: la mediatriz con regla y compás sale en ocho líneas. Los cruces de un arco cuentan solo los puntos que caen sobre él. Al arrastrar, el cruce elegido con «first» o «second» ya no salta al otro lado.

/ contexto

La rama de un cruce se elegía por la posición en pantalla (el de menor x). En el triángulo equilátero de Euclides, bajar B menos de un píxel mandaba C debajo de AB. Ahora la elige la construcción: en recta con circunferencia, el primer cruce es donde la recta entra; entre dos circunferencias, el que queda a la izquierda de la recta que va del primer centro al segundo. Con los centros a la misma altura da el mismo punto que antes; con otras posiciones puede tocar el otro, y desde ahí se mantiene. Los arcos siguen la convención del CircularArc de GeoGebra. De paso, la exportación SVG (la guía, el video) dejó de dibujar objetos ocultos que el lienzo ya escondía.

Animación: el segmento AB y las cuatro marcas del compás —dos desde A y dos desde B— que se cortan arriba y abajo en C y D; después, la mediatriz CD punteada.
Matemática29 sep 2026

Geometría: el compás en el DSL, con circunferencias que siguen a sus puntos

En el modo DSL, «circle(O, 2)» con O un punto con nombre (libre, punto medio, cruce o vértice) sigue a O al arrastrarlo. La abertura del compás también puede ser un punto por el que pasa, «circle(O, P)», o la longitud de un segmento, «circle(C, AB)». Con «dashed» al final sale punteada. Las circunferencias se cruzan entre sí con «intersection(k1, k2)»: el triángulo equilátero de Euclides se construye en cinco líneas y sigue siendo equilátero al mover A o B. Hay una sección nueva en /guia: «Regla y compás».

/ contexto

«circle(O, 2)» copiaba las coordenadas de O al leer el script: la circunferencia quedaba suelta, y un centro que no fuera un punto libre (un punto medio, un cruce) se rechazaba. Tampoco había forma de decir «que pase por P» ni «con radio AB», que son los dos gestos del compás en una construcción. Al construirlo aparecieron dos fallas que afectaban también a la inscrita y la circunscrita: «intersection()» no encontraba el cruce con una circunferencia derivada y «tangent()» sobre una derivada no se dibujaba, sin ningún aviso. Las dos quedaron corregidas. La circunferencia de compás no se arrastra por el borde, porque no tiene grados de libertad propios: se mueve arrastrando su centro o su punto, igual que una región sombreada. Con abertura numérica, el handle del borde abre el compás.

Dos cuadros de la construcción de Euclides con el compás del DSL: al compilar, el triángulo ABC con sus lados de 4.00; tras arrastrar A y B, las dos circunferencias y el punto C se rehacen y los tres lados siguen iguales (3.55).
Matemática29 sep 2026

Geometría: el centro de una circunferencia con nombre y vivo, y tangentes que se pueden prolongar

En el modo DSL, «O = center(k)» nombra el centro de la circunferencia k sin declarar un punto aparte, y al mover k el punto O se mueve con ella. También vale para «incircle(T)» y «circumcircle(T)». Las tangentes pueden seguir más allá del punto de tangencia: «tangent(k, P, extend=2)» las prolonga 2 unidades, y en el lienzo se alargan arrastrando sus extremos.

/ contexto

Para una circunferencia de centro O había que escribir «O = point(0, 0)» y «k = circle(O, 2)», pero la circunferencia solo copiaba las coordenadas de O al construirse: al moverla, O quedaba donde estaba. Ahora el centro es un punto derivado de la circunferencia, como el punto medio lo es de un segmento. La tangente terminaba siempre en el punto de tangencia y el arrastre de sus extremos se ignoraba; ahora su largo es un dato que se puede cambiar, con dos garantías: siempre llega al punto de tangencia y nunca empieza delante del punto exterior. La secante no cambia.

Animación: una circunferencia con su centro O nombrado, un punto exterior P, las dos tangentes desde P prolongadas más allá del punto de tangencia y una secante.
Simulación29 sep 2026

Espejos: una fuente anclada al vértice A de una figura forma la imagen A′

Al anclar una fuente puntual a un vértice con «Anclada a», la fuente toma el rótulo de ese vértice y su imagen se llama igual, con prima: A, A′. Si la figura no muestra rótulos, la imagen queda sin nombre; al encender los rótulos después, la imagen toma el nombre sola. Desanclar no le quita el nombre a la fuente, y reanclarla en otro vértice le da el nombre nuevo.

/ contexto

La imagen tomaba el nombre solo de la etiqueta de la fuente, y la fuente de la paleta nace sin etiqueta, así que una fuente atada al vértice A de un cuadrado mostraba su imagen como I′. Ahora la acción de anclar fija la etiqueta de la fuente con el rótulo del vértice, y después manda la etiqueta de la fuente: si la escribes a mano, no se pisa, y renombrar el vértice no la cambia. Solo se usa el rótulo que la figura muestra. La letra que el panel usa para elegir el vértice no le pone nombre a una imagen que la figura no nombra. En el vértice se lee una sola A: la fuente no repite el nombre que el vértice ya muestra.

Editor29 sep 2026

Cuerdas: la longitud en el panel, y un péndulo que se arrastra sin cambiar de largo

El panel de una cuerda muestra su longitud en la unidad de la escena, en metros si está calibrada. En un péndulo se puede escribir: el cuerpo se corre por la recta desde el pivote y el ángulo no cambia. Con la casilla «Mantener la longitud», arrastrar el cuerpo en el lienzo lo hace girar alrededor del pivote sin estirar la cuerda, y mover el techo o el anclaje lleva al péndulo entero. Sin la casilla, arrastrar el cuerpo cambia la longitud, como hasta ahora.

/ contexto

La longitud no se guarda como un número aparte: sale del dibujo, y es la misma que mide el motor al simular el péndulo. Un número guardado podría contradecir lo que se ve, y la simulación usaría un largo distinto del dibujado. Por eso escribir la longitud mueve el cuerpo, igual que el campo «Longitud» de un segmento mueve sus extremos, y el candado es una regla del arrastre, no un segundo dato. Solo se escribe en un péndulo (una cuerda recta de un soporte fijo a un cuerpo), con el mismo criterio que usa el motor para decidir que es un péndulo. En una cuerda que pasa por poleas la longitud se muestra, pero no hay un único movimiento que la cambie; el candado sobre poleas queda para una etapa siguiente.

Simulación29 sep 2026

Poleas móviles: ▶ explica por qué no las simula, en vez de mostrar un equilibrio falso

Si una polea cuelga de las cuerdas y se mueve con el sistema, al pulsar ▶ el panel dice qué la vuelve móvil (por ejemplo, «rope1 ata block1 al eje de la polea pulley1») y que el motor todavía no simula poleas móviles. Lo mismo pasa con una polea colgada de un resorte, fijada a un anclaje que va atado a un cuerpo o atada directamente a un cuerpo. En el DSL, equilibrium() responde «indeterminado» con la misma razón. Las poleas fijas se simulan igual que antes, también la que cuelga del techo por una cuerda.

/ contexto

El motor tomaba el eje de cualquier polea como un punto fijo. Con una polea móvil, la corrida quedaba quieta y el veredicto decía «EQUILIBRIO» con tensiones que no existen. En la escena del reporte, un bloque sobre una rampa atado al eje de una polea libre, marcaba T = 1.56 N, cuando en realidad el bloque sube con unos 3.6 m/s². Si el script pedía el DCL, esa tensión falsa se dibujaba a escala. Lo que decide es qué sostiene a la polea, no la casilla «Móvil» del panel. Un pin a algo que no se mueve, o una cuerda atada al techo, la dejan fija, aunque de su eje cuelgue un cuerpo. Una cuerda que ata su eje a un cuerpo, un resorte, o un pin a algo que se mueve la vuelven móvil. Si la casilla dice «Móvil» pero nada la mueve, se simula como fija y el ⓘ lo avisa. Simular de verdad las poleas móviles queda para una etapa siguiente.

Matemática27 sep 2026

Geometría: la tangente sale del punto que escribiste, aunque la circunferencia tenga su centro con nombre

En el modo DSL, «t = tangent(k, P)» dibuja la tangente desde P aunque antes hayas definido otros puntos, por ejemplo el centro «O = point(0, 0)» con «k = circle(O, 2)». Un punto atado a un segmento con «on_segment» ya no aparece dos veces cuando la escena también tiene una circunferencia.

/ contexto

La circunferencia elegía como punto exterior el primer punto libre de la escena, sin mirar cuál nombraba la tangente. Con el centro O definido primero, la tangente se calculaba desde O, que está adentro, y no se dibujaba; con otro punto Q antes que P, salía desde Q. El mismo atajo tomaba un punto atado a un segmento como si no tuviera lugar propio, y lo emitía por segunda vez en otra posición. Apareció al pedirle a una IA que explicara construcciones escribiendo DSL: la construcción de manual (centro con nombre y punto exterior) es justo la que fallaba.

Matemática25 sep 2026

Plano cartesiano: cambiar el rango de los ejes ya no mueve tus puntos

Cuando el asistente cambia el rango de los ejes, por ejemplo al pedir «el gráfico con x entre 0 y 0.545», cada punto conserva exactamente las coordenadas que escribiste, quede dentro o fuera del rango nuevo. Las etiquetas de los ejes siguen al eje como siempre. Arrastrar un punto con el mouse sigue guardando su nueva posición.

/ contexto

El cambio de rango se anima: durante una fracción de segundo cada punto se desliza desde su lugar viejo hasta el nuevo. A mitad de ese deslizamiento, el editor tomaba la posición en pantalla de cada punto, la convertía a números con el rango nuevo y la guardaba como si alguien lo hubiera arrastrado. El punto quedaba con coordenadas que nadie escribió, y el siguiente pedido al asistente ya las llevaba, así que la IA las respetaba. Se notaba al cargar una tabla de valores: después de ajustar los ejes, los valores de x ya no eran los mismos. Lo mismo dejaba las etiquetas de los ejes fijas en un lugar que nadie eligió. Ahora el editor distingue un arrastre de una escena que él mismo recalculó, y solo el arrastre escribe en los datos.

Simulación24 sep 2026

Nivel de referencia: elige desde dónde se mide la energía potencial, para todos, por sistema o por cuerpo

En la paleta, dentro de Instrumentos, está el «Nivel de referencia» (N.R.): una línea horizontal punteada que marca desde dónde se miden la altura y la energía potencial gravitatoria. En su panel se elige a quién se aplica: a todos los cuerpos con masa, al sistema de los cuerpos marcados o solo a los cuerpos marcados; con tres pistas independientes, cada una puede medir desde su propia base. El panel muestra la altura inicial de cada cuerpo sobre el nivel, en metros y con el mismo número que publica la simulación. Para ubicarlo se puede escribir esa altura, arrastrar el nivel en el lienzo o alinearlo con la base de una pista, un techo o el punto de partida de un cuerpo. Se puede ocultar sin que deje de valer.

/ contexto

Hasta ahora la altura y la energía potencial se medían siempre desde el origen del marco de la escena, que por defecto nace en el primer cuerpo y que el editor no permite mover. Un enunciado suele fijar otro cero, como «tomando el piso como nivel de referencia», y con varias islas en el lienzo un solo cero no tiene sentido. El nivel es un objeto aparte del marco: las posiciones x e y siguen midiéndose desde el marco, y el nivel solo cambia la altura y la energía potencial de los cuerpos a los que se aplica. Si un cuerpo queda vinculado a varios niveles, gana el más específico (el del cuerpo, luego el del sistema, luego el general), y el ⓘ dice desde qué nivel mide cada cuerpo y con qué altura inicial. Mover el nivel cambia la energía potencial en una constante, así que el cambio de energía durante la corrida es el mismo. Por ahora se agrega desde la paleta: el asistente y el DSL todavía no lo crean.

Simulación24 sep 2026

DCL con resorte: la flecha del resorte cambia durante la corrida, aunque la masa no esté declarada

Con el DCL activo, la flecha del resorte cambia de largo mientras el cuerpo oscila, en proporción a la fuerza de cada instante: en el equilibrio de un bloque colgado mide lo mismo que el peso. Funciona con la masa sin declarar, que el DCL toma como 1 kg, igual que el motor y el panel. Y funciona con un bloque sobre el piso o en un plano inclinado: la normal del apoyo aparece con su valor (m·g sobre el piso, m·g·cos θ en la rampa) y todo el diagrama queda a escala.

/ contexto

Con la masa sin declarar, la flecha del resorte medía lo mismo durante toda la corrida y solo empezaba a cambiar al escribir otra masa. El DCL era la única parte que no usaba el 1 kg que supone el motor: dejaba el peso sin valor, y cuando una fuerza no tiene valor el diagrama deja de afirmar proporciones y dibuja todas las flechas del mismo largo. Escribir 1 en el panel no lo arreglaba, porque ese valor se guarda como «sin declarar». Sobre un apoyo pasaba lo mismo aun con la masa declarada, porque la normal de un cuerpo con resorte no se publicaba. Ahora se publica la que el motor ya calculaba para saber si una fuerza despega al cuerpo, y es constante durante la oscilación. En reposo, un bloque colgado sin masa declarada ya se dibuja a escala, y en el modo «Derivación» el peso dice «mg = (1)(9.81) = 9.81 N». Un cuerpo que el motor no simula, como un cilindro, sigue sin valor mientras no se declare su masa.

Simulación23 sep 2026

Resortes: la x del MAS se mide desde el equilibrio, y el ⓘ dice qué supone la simulación

Cada cuerpo con resorte publica ahora «Desplazamiento desde el equilibrio» (xₘₐₛ), la x del movimiento armónico simple. Con ella, el gráfico x–v es una elipse centrada en el origen y el de a contra x es una recta que pasa por el origen, colgado, apoyado o en un plano inclinado. El equilibrio sale de un balance de fuerzas que incluye las fuerzas externas: una fuerza a lo largo del resorte lo corre F/k, y el marcador verde del editor se mueve con él. El ⓘ enumera los supuestos y los datos de cada oscilador: qué extremo del resorte toma como fijo y por qué, hacia dónde crece x, cuánto queda estirado o comprimido el resorte en el equilibrio y dónde queda respecto del dibujo.

/ contexto

La posición en el eje x se mide desde el origen del marco, que por defecto es el punto desde donde se soltó el cuerpo. Por eso el diagrama de fase no quedaba centrado. Mover ese origen al equilibrio no alcanzaba: con varios resortes hay varios equilibrios, y en un plano inclinado ningún eje del marco sigue al resorte. También se publica la energía elástica, así que Ec + Ep + Ee da la energía mecánica en cada instante. Antes una fuerza externa sobre un cuerpo con resorte se ignoraba sin aviso. Ahora se suma su parte a lo largo del eje; la parte perpendicular la toma el apoyo, y si despegaría el cuerpo o lo haría balancearse colgado, el motor lo rechaza con su razón. El extremo fijo se decide con un solo criterio para el dibujo y la física: el que marca el panel, o el que no está atado a un cuerpo. Un extremo suelto cuenta como punto fijo, y uno atado a una polea o a un nudo se rechaza porque se mueve. Además, el origen de un cuerpo apoyado con resorte arranca en cero, y el ⓘ ya no dice «más abajo» cuando el equilibrio queda arriba del dibujo.

Simulación22 sep 2026

Parábola y Bézier en movimiento: un cuerpo corre por la curva, se despega o oscila

Una superficie con «Forma: Parábola» o «Forma: Bezier» en el panel ya se puede simular. Suelta una esfera o un bloque sobre la curva y pulsa ▶: baja por la loma y sale por el extremo, se despega en el punto exacto donde la normal se anula, o en un valle oscila y vuelve siempre a la misma altura. El ⓘ anuncia antes de empezar cuánto recorre, en qué instante y a qué rapidez. Lo mismo vale para las curvas que se piden por instrucción, como «Dibuja un bloque sobre una superficie parabólica». Antes estas curvas se rechazaban y solo se dibujaban.

/ contexto

A diferencia del círculo, estas curvas no tienen una fórmula cerrada del movimiento. El motor usa lo que sí tienen: la rapidez sale exacta de la energía en cada punto, así que la energía no deriva. Solo el tiempo se calcula numéricamente, con una integral adaptativa de alta precisión y un cambio de variable que evita el problema de los puntos donde el cuerpo se detiene. Los instantes de los retornos, del despegue y de la salida no dependen de la velocidad de la animación. Si despega, vuela y puede aterrizar de nuevo sobre la misma curva. Varios cuerpos, cada uno en su pista, corren a la vez: es la base del experimento de la braquistócrona. Es una partícula guiada sin rozamiento y sin rotación. Siguen fuera un cuerpo atado a una cuerda sobre la curva y una Bézier con un punto de control encima de su vecino, porque ahí la curva no tiene tangente. En ambos casos el motor explica por qué.

Simulación22 sep 2026

El rizo: una rampa que entra en un círculo, y el motor dice si da la vuelta, se despega o vuelve

Una superficie con tramos rectos y arcos de circunferencia ya se puede simular: la esfera baja la rampa, entra al rizo y lo completa si llegó con suficiente altura (h ≥ 2.5R desde el reposo); si no, se despega en el punto exacto donde la normal se anula y sigue como proyectil hasta aterrizar, dentro del rizo o donde caiga; y con poca altura sube por el arco y vuelve. La misma física sirve para la loma por fuera, donde el cuerpo pasa la cima y se despega después. Antes cualquier tramo curvo se rechazaba.

/ contexto

En cada arco el cuerpo se mueve como un péndulo de ese radio, con la solución exacta (funciones elípticas), incluida la rama que da vueltas completas; en las rectas, la fórmula de aceleración constante de siempre. La normal lleva el término centrípeto: por dentro N = m·(v²/R + g·cos θ), por fuera N = m·(g·cos φ − v²/R), y se publica en el diagrama de cuerpo libre y como observable, con N = 0 justo en el despegue. Los instantes de las uniones, el despegue y el aterrizaje son exactos, no por pasos. El ⓘ predice por energía cada arco: la velocidad necesaria √(5·g·R), a qué ángulo se despegaría o hasta dónde subiría. Se escribe con surface(path=[…, arc(porX,porY, hastaX,hastaY), …]) y on(). Es una partícula guiada sin rozamiento y sin rotación: una esfera que rueda necesitaría h ≥ 2.7R, y ese caso sigue pendiente. De arrastre, el péndulo simple ya no rechaza la energía para pasar por encima del pivote: con la cuerda tensa da vueltas completas y, si no alcanza, se afloja antes de la cima.

Simulación21 sep 2026

El diagrama de cuerpo libre ya mide lo que pasa: la tensión crece y se encoge durante la corrida

Al reproducir una escena, las flechas de tensión y de normal toman la magnitud que el motor resuelve en cada cuadro, en vez de un largo fijo. En un péndulo la flecha de la cuerda es más larga en el fondo del arco que en los extremos, porque ahí la tensión sostiene el peso más la fuerza que curva el movimiento. Antes la flecha giraba con la cuerda pero medía siempre igual.

/ contexto

Los números no son nuevos: son los mismos que publica el observable «Tensión en …» de un plano cartesiano, así que la flecha y el gráfico siempre coinciden. El diagrama también estrena escala propia: el peso mide siempre lo mismo y las demás fuerzas van en proporción exacta a él, así que el tamaño ya no depende de la masa ni salta al pulsar reproducir, y el ajuste de largo del panel se mantiene con la simulación encendida o apagada. Los factores de tamaño dejaron de tocar el número del rótulo, que ahora dice la fuerza real en newtons. Si alguna fuerza del cuerpo no tiene valor, todas vuelven al largo uniforme, que es la forma honesta de decir que el diagrama no afirma proporciones. La escena guardada no cambia. Medido: el paso agrega alrededor de un microsegundo por cuadro, sobre un presupuesto de 16.7 milisegundos.

Editor21 sep 2026

Plano cartesiano: los nombres de los ejes ya no tapan los números, y las curvas son curvas

El nombre del eje horizontal va centrado en el tramo positivo del eje, debajo de los números y separado de ellos; el del eje vertical corre a lo largo del suyo, girado, a la izquierda de los números, como en un libro de física y como en el plano cartesiano de Matemática. Antes iban a las esquinas del marco y caían encima de los números. Y las curvas de una corrida se dibujan con tramos curvos que pasan por cada muestra, en vez de rectas entre muestra y muestra: las primeras décimas de una corrida, o una corrida corta, ya no se ven como un polígono.

/ contexto

Las muestras de la corrida siguen siendo las de siempre, entre veinte y treinta por segundo de simulación y todas exactas; lo que cambió es cómo se unen. La interpolación es monótona (la misma de curveMonotoneX de d3), así que no inventa picos entre dos muestras y un salto, como el de la velocidad en un impacto, queda como un escalón. Los puntos que escribes a mano se siguen dibujando como poligonal, que es su dibujo fiel. Si un nombre de eje no cabe en el tramo positivo, pasa al negativo; y el encuadre de la exportación cuenta lo que asoma fuera del marco, así que la figura exportada no lo recorta.

Simulación21 sep 2026

El péndulo simple se mueve solo, y exacto para cualquier amplitud

Un cuerpo colgado por una cuerda de un techo, o de un anclaje del techo, y corrido a un lado ya es un péndulo para el motor: al pulsar ▶ recorre su arco, llega al extremo opuesto y vuelve, con la cuerda tendida en cada cuadro. Antes ese mismo dibujo descendía como en caída libre. Sirve armado con la paleta o desde el DSL, y el ⓘ dice el largo, el ángulo inicial y el período.

/ contexto

No es la aproximación de pequeñas oscilaciones: la solución es la exacta, con funciones elípticas, así que el período crece con la amplitud y el ⓘ muestra los dos números, el exacto y el de 2π√(L/g). La energía se conserva a nivel de redondeo, la tensión de la cuerda se publica como observable y la aceleración incluye la componente centrípeta. Una cuerda solo tira: si el cuerpo pasa de la horizontal del pivote, la cuerda se afloja y la corrida termina ahí con su razón. Con la cuerda declarada vertical, pasando por una polea o con dos cuerdas al mismo cuerpo, todo sigue como antes.

Editor21 sep 2026

La biblioteca de Física, reordenada: instrumentos juntos y objetos icónicos en un solo lugar

En la biblioteca de Física, «Instrumentos» reúne ahora el cronómetro, la regla y el termómetro, y «Objetos icónicos» junta el auto, el ciclista, la persona, el edificio y los aparatos de termodinámica y fluidos, que antes estaban repartidos en tres grupos. En «Cuerpos», el antiguo «Punto/Masa» pasa a ser una masa puntual de verdad: tiene ficha de física y su masa es opcional, puede ser cero. El punto geométrico sigue disponible en «Geometría». El manómetro en U se retira de la biblioteca por ahora.

/ contexto

Los aparatos de termodinámica y fluidos siguen siendo ilustrativos, sin física todavía, y la biblioteca lo dice en el aviso del grupo y en la nota de cada uno. Los títulos y nombres llevan tildes: al ir en mayúsculas, la mezcla se notaba. Reordenar es mover, no editar: el conjunto de objetos ofrecidos es el de antes, más la masa puntual y menos el manómetro.

Editor20 sep 2026

Nuevo grupo «Instrumentos»: cronómetro y regla

En la biblioteca de Física hay un grupo nuevo con dos instrumentos. El cronómetro es una pantalla digital con su propio reloj: lo inicias, lo pausas y lo reinicias desde su panel, como en un experimento, y lo que marque es tu medición. La regla es una cinta métrica: se tiende con su asa, gira con la de rotación y lee la distancia en las unidades de la escena, en metros en Física y en unidades en Geometría 2D, donde también está disponible.

/ contexto

Los dos instrumentos miden la escena y no la construyen: agregarlos no cambia la simulación ni el historial. El cronómetro no está atado a la reproducción de la escena: quien mira la corrida pulsa Iniciar cuando arranca y Pausar cuando pasa lo que quiere medir, con su tiempo de reacción incluido, igual que en el laboratorio. La punta de la regla se imanta a puntos, vértices y cruces con el mismo resolver del lápiz inteligente, así que medir entre dos vértices es tocar cada uno. Las marcas se eligen solas para que la mayor caiga cada 60 px como mínimo y su valor sea redondo, y entre dos menores van diez marcas finas, como los milímetros entre centímetros, cuando caben en pantalla. La cinta empieza un tramo antes del 0 para que su raya se vea entera, con el estuche a la izquierda.

Mecánica18 sep 2026

Nuevo objeto icónico: el ciclista

En la biblioteca de Física, junto a «Auto» y «Persona», hay un «Ciclista»: el pictograma de señal vial, de perfil y en un solo color. Sirve como cuerpo de un diagrama de cinemática: «un ciclista se mueve hacia la derecha a 6 m/s» lo pone en la escena con su vector velocidad. Apoyado sobre una superficie, las ruedas tocan exacto.

/ contexto

Los enunciados de cinemática hablan de ciclistas tanto como de autos, y hasta ahora el motor dibujaba una persona de pie o un bloque. El pictograma sigue la convención de las señales viales para que se reconozca a primera vista y no compita con las flechas del diagrama. Como todo objeto icónico, se puede recolorear y redimensionar desde el panel, y el dibujo conserva sus proporciones aunque el cuadro cambie de forma.

Editor16 sep 2026

Herramienta punto: el punto se ata a lo que tocas

En Geometría 2D, el botón «Punto» de la barra inferior activa un lápiz inteligente: al tocar un segmento, una circunferencia, el lado de un polígono o el cruce de dos objetos, el punto nace atado ahí y se mueve con su anfitrión. Antes de hacer clic, un fantasma muestra qué va a pasar. Tocar un punto o un vértice que ya existe no crea otro: lo señala. Los puntos atados llevan ahora un anillo que los distingue de los libres.

/ contexto

Un punto libre puesto encima de un segmento se ve igual que uno que pertenece al segmento, hasta que alguien mueve el segmento y el punto se queda. Para que la figura no mienta, el lápiz resuelve el clic con un orden fijo, el mismo que usa GeoGebra: primero un punto que ya existe, después un cruce, después un solo objeto, y si no hay nada cerca, libre. Cerca de un punto o de un cruce manda esa preferencia; más lejos manda la proximidad, para que señalar una línea no termine agarrando el punto de al lado. La tolerancia se mide en píxeles de pantalla, así que el zoom no cambia lo que se siente. El anillo de los puntos atados sale de la restricción y no del color: cambiar el color no lo borra.

Editor12 sep 2026

Al mover la polea, los bloques que cuelgan de ella se van con la cuerda

En una máquina de Atwood armada a mano, arrastrar la polea por el techo (o el anclaje que la sostiene) ahora traslada también a los bloques que cuelgan de su cuerda. Antes la cuerda se re-tendía y los bloques se quedaban en su sitio. Un bloque apoyado sobre una mesa no se mueve: lo ubica su apoyo.

/ contexto

La regla del editor era «el conector acompaña al cuerpo»: mover un bloque lleva la cuerda, pero mover lo que sostiene la cuerda no llevaba los bloques. Para lo que cuelga esa asimetría no tiene sentido físico: si la polea se corre, lo que pende de ella se corre igual. Se traslada solo lo que es extremo de una cuerda que pasa por la polea y no tiene otro vínculo que lo ubique (apoyo, pila, unión o trayectoria). Mover un bloque sigue moviendo solo ese bloque. De paso se corrigió el suelte del pin: deslizar la polea por el techo más de 90 px la soltaba del anclaje, porque el tirón se medía por el recorrido total; ahora solo la suelta alejarla de la cara.

Simulación12 sep 2026

El ⓘ de la reproducción dice cómo toma el motor cada cuerda

Al abrir el ⓘ junto al botón ▶ en una escena con cuerdas, ahora se lee la regla: el motor no supone que los tramos sean verticales; la tensión actúa en la dirección en que cada tramo está dibujado, salvo que la cuerda declare su orientación. Cada extremo dice de qué cuerpo sale y a qué ángulo se tomó, y si el tramo que sostiene a un cuerpo colgante no está vertical, lo avisa con el ángulo y cómo corregirlo.

/ contexto

La pregunta fue literal: «¿la simulación considera que las cuerdas deben estar completamente verticales?». No, y el ⓘ ya avisaba el ángulo que tomaba de cada tramo, pero con dos líneas iguales que no decían de qué cuerpo salía cada una, así que en una rampa con polea y colgante no se podía saber cuál era cuál. Sobre un cuerpo apoyado la tensión se descompone según el ángulo que forma con la superficie: la componente tangente lo mueve y la normal cambia la fuerza de apoyo; eso lo resuelve el solver a partir de la dirección real, no una fórmula por caso. El cuerpo colgante, en cambio, avanza por la vertical aunque su tramo esté dibujado torcido: por eso el aviso nuevo dice el ángulo y sugiere colgarlo justo debajo de la polea o declarar la orientación (vertical, o along_surface cuando el otro extremo se apoya en una superficie).

Simulación9 sep 2026

Con varios móviles, la reproducción sigue hasta que cae el último

Si lanzas varias esferas a distintos ángulos, la primera en tocar el piso o en salir de cuadro ya no detiene a las demás: se queda donde cayó y las otras siguen su vuelo. La reproducción termina sola cuando ya no queda ningún cuerpo en movimiento, y el mensaje de cierre lo dice.

/ contexto

El motor tenía una sola bandera de «detenida» para toda la escena, así que el primer aterrizaje de cualquier cuerpo cerraba la corrida entera. Ahora cada proyectil tiene su propio final. El cuerpo que termina se queda tal como está, con la velocidad del instante del impacto congelada y sin flechas: ponerla en cero sería inventar un choque que el modelo no declara. Un cuerpo que ya estaba quieto no mantiene viva la reproducción, para no dejar la pantalla inmóvil hasta el tope de 30 s. Los sistemas acoplados, como una máquina de Atwood, siguen deteniéndose enteros cuando una de sus masas sale de cuadro, porque ahí los cuerpos se mueven juntos. Se evaluó dejar el play corriendo hasta que la persona lo detenga, y se descartó por esa misma pantalla inmóvil.

Editor9 sep 2026

Los números del panel se pueden borrar, y la cota se arrastra por sus extremos

En el panel de propiedades ya se puede vaciar una caja numérica para reescribirla: borrar y escribir «10» da 10, y no «010». Vale para los 174 campos del panel, la velocidad inicial y su ángulo incluidos. La cota, además, muestra un asa en cada extremo cuando está seleccionada: arrastrarlas mueve el punto que se mide, y arrastrar la línea sigue cambiando su separación.

/ contexto

Al vaciar la caja, el texto vacío se leía como cero y se escribía en la figura; peor, como el campo mostraba el número del modelo y no lo tecleado, React dejaba el cero pegado adelante para siempre. Ahora, mientras se escribe, la caja muestra el borrador, y lo que todavía no es un número —vacío, un signo menos suelto— se ve pero no se guarda. De paso se corrigió que el campo redondeaba lo mostrado a un decimal: un coeficiente de 0.004 aparecía como 0 y era intipeable. La cota, por su parte, ya tenía sus dos extremos en el archivo de la escena y hasta se podían editar por teclado; lo que faltaba era el asa para tomarlos con el mouse. Si el extremo seguía a un punto de la figura, arrastrarlo lo suelta y la ficha lo puede volver a atar.

Simulación9 sep 2026

Ver la velocidad, la aceleración y la trayectoria de un móvil

En la ficha de un cuerpo, la sección Física tiene tres interruptores nuevos bajo «Al reproducir»: la flecha de la velocidad con su valor en m/s, la de la aceleración en m/s², y el rastro del camino recorrido. En el DSL son «velocity(b)», «accel(b)» y «trail(b)», y aceptan varios cuerpos a la vez.

/ contexto

Para las fuerzas estaba el diagrama de cuerpo libre, pero la velocidad y la aceleración solo se podían ver como número en la barra o como curva en un gráfico. El motor ya las calculaba en cada cuadro y nadie las dibujaba. La flecha de la aceleración en vuelo apunta siempre hacia abajo y vale g, porque la única fuerza es el peso; sobre una rampa va a lo largo de ella. El largo de cada flecha es proporcional a su valor, con la escala fijada al pulsar ▶ desde el máximo de la corrida entera para que no persiga al dato.

Editor9 sep 2026

La ficha del cuerpo, en orden y con las unidades bien escritas

Al seleccionar un bloque o una esfera en física, el panel muestra primero Geometría (posición y tamaño, en metros), después Física (masa y velocidad inicial; carga y temperatura plegadas) y al final Estilo. Las unidades ya no se ven en mayúsculas: «Masa (kg)», «Radio (m)», «v₀ (m/s)». El segmento tiene ahora longitud y ángulo editables.

/ contexto

Los rótulos del panel se subían a mayúsculas por CSS, unidad incluida, y en física eso cambia el significado: «M» es mega, «K» es kelvin y «G» la constante de gravitación. Y el orden de la ficha no seguía la importancia: el ID interno iba primero y la posición, plegada, al final. La posición de un cuerpo apoyado se muestra de solo lectura, porque la fija el apoyo.

Mecánica9 sep 2026

El DSL de física ya habla en metros

Con «scale(300px, 1m)» declaras la escala de la escena y con «frame(x=100, y=400)» el origen del marco; desde ahí «place(b, x=1m, y=0.5m)» ubica un cuerpo en metros, con y hacia arriba, y toda longitud admite unidad: «floor(length=3m)», «sphere(r=10cm)». La cuadrícula, ahora también en física, rotula esos mismos metros. Un número sin unidad sigue siendo píxeles.

/ contexto

La escala existía en el editor y en el pedido a la IA, pero no en el script, y las coordenadas del DSL eran píxeles desde la esquina del lienzo con y hacia abajo: lo contrario de cómo se piensa una escena de física. Lo escrito en metros es exactamente lo que el motor lee al reproducir, y el DSL canónico conserva la escala y el origen al exportar.

Mecánica9 sep 2026

Cuerpos con color y velocidad inicial: el lanzamiento se escribe

«sphere(2kg, color=rojo, v0=5, angle=30)» crea una esfera roja que sale lanzada a 5 m/s con 30° de elevación al reproducir; sin apoyo ni cuerda es un proyectil, sobre una rampa sube o baja a lo largo de ella. «at=» sobre una superficie por tramos ya es la fracción del recorrido real, y la superficie plana admite pendiente negativa arrastrando el extremo.

/ contexto

Tres esferas de colores sobre tres rampas en L eran imposibles de pedir: no había color, at=0.5 caía en la primera rampa del valle en vez del fondo, y un cuerpo suelto se rechazaba. La velocidad inicial es una condición inicial del cuerpo, no una propiedad: vive en su ficha y Reset vuelve a ella.

Plataforma19 ago 2026

La guía ya documenta el DSL del plano cartesiano

La sección «QF DSL v1» de /guia cubre las dos gramáticas —geometría y plano cartesiano— con su referencia de sintaxis completa, y hay un capítulo nuevo de cónicas.

/ contexto

La guía decía que el DSL era solo de geometría, así que después de estrenar el del plano cartesiano estaba diciendo lo contrario de lo que hace el producto. Ahora cada capítulo de matemática trae también su ejemplo en script, y un test los compila todos por el pipeline real: si un ejemplo deja de funcionar, la guía no puede seguir mostrándolo.

Matemática19 ago 2026

Escribir la gráfica en vez de describirla

En el plano cartesiano ya puedes escribir un script exacto: «f = plot(x^2)», «k = circle((3, -2), 1)», «S = area(f, g, [0:3], donde g > f)», «P = intersection(f, g)». Sin IA, sin ambigüedad, y si algo está mal escrito te dice la línea en vez de dibujar otra cosa.

/ contexto

Pedir «grafica la circunferencia x^2 + y^2 = 9» en lenguaje natural devolvía la recta y = x, sin ningún aviso: el motor no entendía y elegía lo más parecido que sabía dibujar. Con el script, una circunferencia es una circunferencia. El lenguaje también abre cosas que el motor ya sabía hacer y no había forma de pedir: sumas de Riemann, sombreado condicional entre dos curvas, regiones de inecuación, y puntos atados a intersecciones que se mueven solos al mover un deslizador. «P = intersection(f, g)» devuelve TODAS las intersecciones, no una elegida al azar, y P[0] es siempre la de menor x.

Matemática19 ago 2026

Un punto que ya no existe deja de dibujarse

Los puntos atados a una intersección desaparecen cuando esa intersección deja de existir, en vez de quedarse en una posición inventada.

/ contexto

Si dos curvas dejaban de cortarse —por mover un deslizador, por ejemplo—, el punto de intersección se seguía dibujando en las coordenadas de relleno con las que había nacido, y pedir «la cuarta intersección» de una curva que corta dos veces devolvía la segunda sin decirlo. Las dos son respuestas equivocadas presentadas como correctas. Los puntos que tú colocaste a mano no cambian: ahí las coordenadas son un dato tuyo y se conservan.

Matemática16 ago 2026

Un cuadrado de lado 40 cm ahora mide 40 cm

Al pedir «un cuadrado de lado 40 cm» o «un rectángulo de 30 por 20 cm», la escena queda calibrada con esas medidas: los lados se rotulan solos y una fórmula viva como {{area ABCD}} escribe 1600 cm², no un número en unidades arbitrarias.

/ contexto

Las figuras del catálogo (trapecio, rombo, paralelogramo) ya tomaban la escala del enunciado; el cuadrado, el rectángulo y el triángulo no, así que se dibujaban con un tamaño fijo y sus medidas no tenían relación con el problema. Se notaba al escribir fórmulas sobre el lienzo: se veían bien y decían otro número. Ahora las dos familias siguen la misma regla, y sin números en el enunciado nada cambia — la figura sigue en unidades arbitrarias en vez de inventar una escala.

Editor15 ago 2026

Las instrucciones ya funcionan sobre las figuras que arrastras

Arrastra un cuadrado desde la paleta, agrándalo con el handle y pide «marca el punto medio de CD» o «traza el segmento BM»: el motor ahora reconoce esas figuras y sus vértices. Antes solo entendía las que habían nacido de un prompt.

/ contexto

Una figura de la paleta se creaba sin ficha semántica, así que para el modo instrucciones simplemente no existía: la petición se iba a la IA y volvía sin nada a lo que referirse. Ahora el lienzo manda — si la figura está dibujada, se puede nombrar — y el ancho y alto reales viajan también a la IA, así que agrandar una figura cambia lo que el modelo lee sobre ella. De paso, el color que elijas ya no se pierde al aplicar una instrucción.

Plataforma15 ago 2026

Mis clases: tus sesiones QF Live ya no se pierden al cerrar el modal

Nueva sección en el menú lateral con todas las sesiones que proyectaste: el código, si sigue activa, cuántos estudiantes se conectaron, cuántos terminaron, el enlace para compartir y el atajo al panel de seguimiento.

/ contexto

Antes el código de una sesión solo existía en el instante de crearla: si cerrabas el modal sin anotarlo, la clase quedaba inalcanzable aunque siguiera viva en la base y con estudiantes conectados. Ahora una sesión se retoma. De paso, QF Live salió de las rutas de administración —ya no es una función premium— y el panel vive en /dashboard/clases.

Matemática15 ago 2026

Medidas vivas de cualquier polígono, y ahora se pueden sumar

Las etiquetas con llaves dobles ya no se limitan a triángulos: {{area ABCD}} y {{perim AEPH}} miden polígonos de cualquier cantidad de lados. Y se pueden combinar medidas del mismo tipo — {{area AEPH + area PFCG}}, {{area ABCD / 2}}, {{AE + EB}} — con el resultado recalculándose al arrastrar cualquier punto.

/ contexto

Sirve para enseñar propiedades, no solo para rotular. El teorema clásico del cuadrilátero (une un punto interior con los cuatro puntos medios y las áreas opuestas suman lo mismo) deja de ser un dibujo con números escritos a mano: se construye la figura, se ponen las dos sumas en pantalla y la persona estudiante arrastra el punto y ve que no cambian. Mezclar unidades se rechaza a propósito: un área más una longitud no es un descuido tolerable, es una figura que miente.

Plataforma15 ago 2026

QF Live ahora es gratuito: proyecta una microlección y sigue a tu clase en vivo

Cualquier cuenta puede iniciar una sesión QF Live desde el reproductor de una microlección: se genera un código de clase, los estudiantes entran desde su celular sin registrarse, y tú ves sus respuestas en vivo. Antes requería plan premium.

/ contexto

QF Live es lo que convierte una microlección en una actividad de aula, y estaba detrás del muro de pago justo para el público que más lo necesita: el docente que quiere probarlo con sus estudiantes antes de decidir si paga por algo. Mientras dure el beta, la prioridad es que la clase ocurra — no cobrarla.

Mecánica15 ago 2026

Poleas y anclajes en el vértice del plano inclinado

Los puntos de unión ahora se enganchan a cualquier lado del triángulo del plano inclinado — incluido el vértice superior, donde el agarre toma forma de cuña orientada por la bisectriz de la esquina. Al pedir "plano inclinado con polea y masa colgante", la polea llega anclada al vértice y sigue al plano si cambias el ángulo o lo arrastras. Las cuerdas y resortes también pueden fijarse a las patas del triángulo.

/ contexto

El plano inclinado se modela internamente como su hipotenusa (el triángulo es dibujo), y la cadena de anclaje solo veía esa línea: soltar un anclaje en el vértice o en las patas lo devolvía a la hipotenusa con la orientación equivocada. Ahora toda la cadena — arrastre, imán de vértices y posicionamiento — comparte el mismo contorno triangular, así que la escena clásica de polea en la cima con cuerpo colgante se arma de un solo gesto, a mano o por prompt.

Mecánica14 ago 2026

Las fuerzas del DCL ahora se estiran y sus etiquetas se mueven a mano

Cada vector del diagrama de cuerpo libre se puede ajustar individualmente: arrastra la punta para cambiar su largo (la dirección la sigue cuidando el motor — el peso sigue vertical, la normal perpendicular), y arrastra la etiqueta para reubicarla. En el panel de propiedades, el control "Largo" ahora acepta valores exactos hasta 6× además del deslizador.

/ contexto

Un DCL didáctico no dibuja las fuerzas a escala real: el docente exagera la fuerza que quiere discutir y encoge las demás. Hasta ahora solo existía un escalado global de todo el DCL; la longitud por fuerza quedaba fija y la etiqueta donde el motor la ponía. La dirección sigue siendo responsabilidad del motor — estirar el peso no puede inclinarlo — porque la corrección física es el contrato de QuickFigen: libertad en el énfasis, no en la física.

Plataforma14 ago 2026

El asistente ahora dice qué NO puede ilustrar, con enlace a la guía

Cuando un pedido incluye algo que el motor todavía no soporta, el asistente del editor lo dice explícitamente en vez de entregar una escena incompleta en silencio: enumera lo que quedó fuera y enlaza a la sección exacta de la guía de capacidades (/guia) que documenta ese límite. Lo mismo cuando el pedido completo no se puede interpretar como diagrama.

/ contexto

La guía pública ya declaraba qué soporta QF y con qué estado (disponible o parcial), pero los flujos de creación no la consultaban: la degradación parcial era invisible y el usuario no sabía si la IA "no entendió" o si el motor no lo soporta. Ahora ambos hablan el mismo vocabulario — el catálogo de capacidades es un contrato único, legible por la documentación y por el producto. Es la base para que los futuros generadores de lecciones y problemas también digan "esto sí, esto todavía no".

Matemática14 ago 2026

Primera μLesson de Matemática: ¿cuántas soluciones tiene una ecuación?

Se estrena la sección de Matemática en μLessons con una lección sobre la relación entre intersecciones de gráficas y soluciones de una ecuación cuadrática. El estudiante manipula una recta y = mx + b sobre la parábola y = x², y los puntos de intersección aparecen, se fusionan y desaparecen en vivo. El discriminante Δ recién se formaliza al final, cuando su significado ya se construyó con las manos.

/ contexto

La lección inaugura un tipo de paso nuevo: el desafío constructivo. En vez de elegir una opción, el estudiante tiene que CONSTRUIR un estado que cumpla una condición matemática («consigue que la recta toque la parábola en un solo punto»), y el sistema evalúa el estado de la escena de forma determinista — sin IA, sin autorreporte. Producir ejemplos en lugar de seleccionar respuestas es la diferencia entre explorar un simulador y resolver un problema.

Editor14 ago 2026

Cuadrícula en unidades reales y barra propia de geometría

El editor de geometría ahora tiene un botón «Cuadrícula» que enciende un papel cuadriculado alineado con las unidades de la figura: 1 cuadro = 1 unidad de la escena (el mismo mapeo que usa el DSL en «point(x, y)»), con línea mayor cada 5 unidades. La cuadrícula acompaña el pan y el zoom sin despegarse de las figuras, y si la escena tiene escala calibrada (por ejemplo 1 cuadro = 1 cm), el paso se ajusta solo. Además, la barra superior dejó de mostrar controles de física que no hacían nada en geometría: «Inteligente/Libre» desaparecen y los vínculos ahora se llaman «Unir» (pegar un vértice a un punto, pivote libre) y «Soldar» (dos figuras se mueven como una pieza).

/ contexto

La cuadrícula no es un objeto que se inserta: es parte del lienzo, se prende y se apaga, y no viaja en la escena — la figura queda limpia para quien no la quiere. Se dibuja en coordenadas de mundo, no de pantalla, porque su función es didáctica: leer coordenadas y medidas directamente del dibujo, en el editor y en lo exportado. Los botones que se fueron eran ajustes de endpoints de vectores de fuerza, que en geometría pura no existen.

AI Assistant9 ago 2026

Triángulo por ángulos: la figura mide lo que pediste

Pedir «un triángulo MNP cuyos ángulos internos son 65°, 65° y 50°» ahora construye la figura EXACTA con esos ángulos, con sus marcadores mostrando el valor verdadero de cada vértice. Si das solo dos ángulos («65, 65 y ..»), el tercero se deriva y la respuesta lo dice: «Tercer ángulo derivado: 50° (los ángulos internos suman 180°)». Y si los datos son imposibles (65 + 65 + 60 = 190), QuickFigen lo rechaza explicando la suma en vez de dibujar un triángulo que miente.

/ contexto

Antes estos prompts producían el triángulo genérico con los ángulos ignorados en silencio — una figura que contradice el enunciado es peor que ninguna. Ahora los ángulos declarados son un generador (la geometría se construye por intersección de rayos, sin redondeos) y además una verificación: la figura compilada se mide contra lo pedido antes de mostrarse. Funciona igual si el pedido entra por lenguaje natural o por la IA.

AI Assistant9 ago 2026

QF DSL: construye geometría con instrucciones exactas, sin IA

En el editor de geometría ahora puedes escribir scripts que construyen la escena de forma exacta y reproducible: activa el botón «DSL» junto al clip (o empieza el mensaje con /qf-dsl) y escribe una construcción por línea, por ejemplo «A = point(-3, 0)», «M = midpoint(A, B)», «T = triangle(P, Q, R, angles=(30,60,90))» o «t = tangent(c, P)». El script no consume IA, responde al instante y siempre produce la misma figura. Y es incremental: si la escena ya tiene una construcción, el siguiente script añade sobre ella referenciando sus nombres — incluso después de arrastrar objetos, todo se calcula con las posiciones actuales del lienzo. Escribe «help» con el modo DSL activo para ver la referencia completa.

/ contexto

El lenguaje natural es el modo de conveniencia; el DSL es el modo de precisión: no hay interpretación posible, cada línea es una construcción del vocabulario geométrico de QuickFigen (puntos medios, mediatrices, alturas, tangentes, centros del triángulo) y las construcciones quedan VIVAS en el lienzo — si arrastras un punto, su mediatriz lo sigue. Si el script tiene un error (una referencia sin definir, ángulos que no suman 180°), QuickFigen lo dice con el número de línea en vez de dibujar una figura incorrecta. Como el lienzo no muestra ejes, la respuesta indica el mapeo de coordenadas usado (origen en el centro, y hacia arriba, 40 px por unidad).

Editor8 ago 2026

QF Steps: el reproductor narra primero y dibuja después

En el modo presentación, cada paso de una explicación ahora se comporta como un docente frente a la pizarra: primero se lee la narración del paso y recién después aparecen los trazos que le corresponden, en orden. El avance, la pausa y el retroceso respetan esa secuencia — retroceder devuelve la escena exactamente al estado anterior del paso.

/ contexto

Debajo hay una línea de tiempo determinista: cada fragmento de narración declara qué acciones de dibujo dispara, y un motor puro proyecta cualquier instante de la explicación al estado exacto de la escena. Eso es lo que hace posible pausar a mitad de un paso, saltar a otro y que la figura siempre quede consistente — y es la base sobre la que vienen la voz y el resaltado sincronizado.

AI Assistant7 ago 2026

La IA de geometría ve lo que hay en el lienzo — tal como está ahora

Dibuja un punto y un segmento desde la paleta, arrástralos donde quieras, y pide «traza la altura del punto P al segmento»: funciona. Todo lo que agregas a mano queda registrado para el asistente, y lo que importa es el estado ACTUAL del lienzo — si mueves un vértice y luego pides la mediatriz de ese lado, se calcula sobre la posición de ahora, no sobre la de cuando se dibujó. Borrar también es limpio: al eliminar un objeto se van con él sus dependientes (la altura que salía de un punto borrado no queda flotando ni revive en el siguiente cambio).

/ contexto

Es la misma filosofía del editor de física: el asistente refina sobre lo que acontece en el canvas, no sobre una foto vieja. Cada objeto de la paleta se registra en el plan de construcción de la escena, y ese plan se sincroniza con el lienzo cada vez que la IA lo lee. Con esto, construir a mano y refinar con IA (o con el DSL) son dos caminos sobre la misma escena viva.

Editor6 ago 2026

Mediatriz, paralelas, tangentes y alturas VIVAS

Las construcciones derivadas ya no son trazos estáticos: la mediatriz de AB (con su cuadradito de 90°), la paralela o perpendicular por un punto, las dos tangentes desde un punto externo y la altura de un punto a un segmento se recalculan en vivo mientras arrastras. Mueve un vértice y su mediatriz lo sigue; mueve el punto externo y las tangentes se reacomodan. El largo de estas líneas es editable (arrastre sobre su propio eje o campo en el panel), pero su dirección nunca — es geometría derivada, no un dibujo suelto.

/ contexto

Cada línea derivada guarda de qué construcción nace (¿mediatriz de qué segmento? ¿tangente a qué circunferencia desde qué punto?) y el motor la resuelve en cada cuadro. Si dos figuras usan las mismas letras, QuickFigen continúa sobre la figura seleccionada o la última creada; si el ámbito sigue siendo ambiguo, pide seleccionar una figura en vez de adivinar u obligar a cambiar sus letras. También puedes pedir la altura de un punto suelto a un segmento cualquiera — ya no hace falta un triángulo.

AI Assistant6 ago 2026

Refinar geometría añade sin rehacer lo que ya tienes

Pedir un cambio sobre una construcción existente («traza el segmento AM», «marca el punto medio de BC») ya no reconstruye la escena entera. Las instrucciones del catálogo se resuelven al instante y sin costo de IA; los pedidos más libres pasan por un modo delta en el que el modelo ve tu construcción actual y emite SOLO lo nuevo. Tus figuras, letras y ajustes quedan intactos; lo agregado aparece con un fundido.

/ contexto

El replan completo (rehacer todo desde la historia de prompts) queda como último respaldo, y cuando corre recibe un inventario fiel de la escena — forma, medidas, unidades y letras de cada figura — para no «simplificar» un trapecio a cuadrado ni perder construcciones previas. Además, toda la cadena del refine comparte ahora un presupuesto de tiempo: si un proveedor tarda de más, la etapa siguiente se acota o se salta, y el peor caso es un mensaje claro en vez de una espera de un minuto que muere en silencio.

Matemática22 jul 2026

Los cambios en el plano cartesiano ahora se animan

Cuando le pides a la IA que modifique una gráfica —trasladar un vector, cambiar una función, mover un polígono o un punto—, la figura ya no salta al nuevo estado: se desliza suavemente hacia él. Los objetos interpolan su geometría de la posición vieja a la nueva (los vectores se mueven, las curvas morfean, los polígonos se trasladan) y los elementos nuevos aparecen con un fundido. El marco queda quieto: solo se mueve lo que cambió, no todo el plano.

/ contexto

La animación no es decorativa: es el resultado real del segundo prompt interpolado en el tiempo. Como el motor de QuickFigen recalcula de forma exacta (las intersecciones, los puntos anclados a una curva), lo que ves deslizarse es matemáticamente correcto en cada cuadro, no una transición estética por encima de una imagen. Por ahora aplica al plano cartesiano; las curvas remuestreadas con distinta cantidad de puntos todavía saltan (el morph con remuestreo llega después).

Matemática22 jul 2026

Reproducir un parámetro: animación en vivo sobre la curva

Cada parámetro (esos deslizadores como a, k o t que controlan una expresión) ganó un botón de reproducción. Al tocarlo, el valor recorre su rango de ida y vuelta en el tiempo, y todo lo que depende de él se mueve solo: un punto anclado a una curva la recorre trazándola, una parábola a·x² se abre y se cierra, una intersección viaja mientras la escena cambia. Es la idea de una animación matemática correcta —del estilo de las de 3Blue1Brown— pero en vivo, editable y sin escribir una sola línea de código.

/ contexto

La trayectoria del punto no la inventa la IA: la calcula el motor determinista de QuickFigen a partir de la expresión y el valor del parámetro en cada instante. El botón de reproducción solo hace avanzar ese valor en el tiempo; el resto ya estaba resuelto. Sirve para cualquier objeto que dependa del parámetro, no solo para un punto sobre una curva.

Matemática22 jul 2026

Relleno de polígonos: sólido, trama, puntos y gradiente

Los polígonos de geometría analítica ya no se limitan a un color plano. En el panel puedes elegir el tipo de relleno —sólido, rayado (trama), puntos o degradado— y ajustar la opacidad con un deslizador (antes no había control de opacidad). Con degradado, defines los dos colores y el ángulo. Útil para barras, regiones sombreadas y figuras de problemas de áreas que necesitan distinguirse a simple vista.

Plataforma19 jun 2026

Nueva microlección: el peso en un plano inclinado

Está disponible en /lessons la microlección "DCL en un plano inclinado: el peso y sus componentes", diseñada para desmontar la concepción alternativa más común en el tema: que el peso del bloque cambia al inclinar el plano. La lección lleva al estudiante por cinco preguntas (predicción, dirección, magnitud, descomposición y síntesis) con retroalimentación específica por cada opción incorrecta, no un mensaje genérico. La escena interactiva responde al ángulo en cada paso: el peso queda vertical (la conclusión que la pregunta busca), la normal se acorta proporcionalmente a cos θ (cuantitativamente correcta para el bloque en reposo) y, cuando se activan las componentes, aparecen sobre el plano con el ángulo numérico en la etiqueta — Fg·sen(30°) que pasa a Fg·sen(45°) al mover el slider.

/ contexto

El guion pedagógico vino de una persona docente y se aplicó tal cual al lesson player. El criterio fue: cada paso ataca una creencia errónea concreta y la retroalimentación de cada distractor explica por qué esa intuición es razonable y dónde se rompe, en vez de devolver "incorrecto, intenta de nuevo". Las opciones correctas confirman con la fórmula y enmarcan el siguiente paso. La notación del peso usa Fg (fuerza gravitacional) en vez de W o mg: Fg evita el choque con W de Trabajo en lecciones posteriores y, sobre todo, resuelve una confusión sutil del paso 3 — la pregunta enseña "el peso no cambia" y la flecha dice Fg en ambos pasos, mientras que si dijera mg en el paso 3 y mg·sen θ en el 4, el alumno podría leer que mg cambió. Los profesores que quieran usarla en clase pueden compartir el enlace o embeber el reproductor: la lección queda con URL estable en /lessons/dcl-plano-inclinado.

Mecánica19 jun 2026

Plano inclinado: descomposición y ejes opcionales en el template

La plantilla pública "bloque en plano inclinado" ganó dos controles que el docente puede activar por paso o por escena. El primero muestra las componentes del peso paralela y perpendicular al plano, etiquetadas con la fórmula y el ángulo real (Fg·sen(30°), Fg·cos(30°)), descompuestas por el solver desde el peso vertical — actualizan automáticamente con el slider del ángulo. El segundo dibuja un sistema de ejes XY anclado al centro del bloque, que rota con el plano para que el alumno vea explícitamente el sistema de referencia rotado en el que se hace la descomposición. Los dos controles son independientes: ejes solos para introducir el sistema de referencia, componentes solas para mostrar la descomposición clásica de textbook, o ambos juntos para conectarlos visualmente. La normal cambia de longitud con el ángulo siguiendo la relación de equilibrio (a θ=60° la normal mide la mitad del peso): el diagrama es cuantitativamente medible con regla, no solo cualitativo.

/ contexto

En la versión anterior la plantilla solo tenía peso, normal y un toggle de "componentes" que dibujaba dos flechas con direcciones aproximadas. Ahora la descomposición la genera el mismo solver que usa el editor cuando se arma una escena con un sistema de coordenadas en modo "auto tangente": el mismo mecanismo, una sola fuente de verdad. El resultado es que la plantilla curada queda idéntica a lo que un creador armaría en el editor con los mismos elementos, sin ramas paralelas que divergen con cada cambio. Para soportar el caso pedagógico, además, se hizo configurable el rótulo de las componentes desde cualquier escena: por defecto el solver las llama mg_t y mg_n, pero el autor puede pedir la fórmula con el ángulo real (Fg·sen(θ°)) o el símbolo que prefiera, sin que eso sea un parche por plantilla. Mismo razonamiento aplicado al color: las componentes heredan el del peso para que se lean como su descomposición, no como fuerzas nuevas.

Matemática18 jun 2026

El editor de funciones se adapta a lo que hay en la escena

El plano cartesiano ahora reacciona al contenido en lugar de mostrar un layout fijo. Si no hay rótulo en el eje X o en el eje Y, el plot recupera ese espacio en vez de reservarlo; si el rango está en el primer cuadrante (por ejemplo, t≥0), aparecen únicamente las flechas en X+ y Y+; las funciones nuevas se nombran automáticamente f(x), g(x), h(x), con tipografía matemática real; las etiquetas que se arrastran ya no vuelven a su posición original al cambiar el grosor o el color; y la cuadrícula queda detrás de los ejes para que se vean nítidos al cruzarla. El canvas inicial pasó de 900×900 a 720×720 para que entre cómodo con los paneles laterales en pantallas medianas. Como subproducto, una escena vacía ahora tiene menos de la mitad de objetos internos que antes.

Editor18 jun 2026

Fórmulas matemáticas nítidas y correctas al exportar

Las fórmulas en LaTeX que se escriben dentro de las etiquetas (por ejemplo, $\sigma_x$ o $\frac{1}{2}mv^2$) ahora se exportan con tipografía matemática real en PNG, PDF y SVG, idénticas a lo que muestra el editor. Antes, las exportaciones caían a una fuente genérica que reemplazaba símbolos por aproximaciones (la sigma griega aparecía como una "s" latina), o quedaban en blanco por restricciones del navegador al rasterizar. El PDF, además, ahora se embebe como vector real: se mantiene nítido a cualquier zoom y queda apto para incluir en documentos académicos junto a otras figuras vectoriales.

Editor17 jun 2026

La cámara del editor entiende qué hay en la escena

Cuando el asistente de IA genera una escena nueva, si los objetos exceden el viewport o quedan descentrados, la cámara hace zoom-out automático para que entren centrados sin sacrificar la posibilidad de seguir editando con pan y zoom libres después. En paralelo se corrigieron tres comportamientos del canvas que se reportaron en la práctica: arrastrar un objeto y salir del SVG ya no congela el drag, hacer click en una zona panneada fuera de la página deselecciona como debería, y el botón "100%" preserva el paneo aplicado en vez de saltar al origen.

Mecánica15 jun 2026

Cuerpos colgantes bajo poleas se anclan donde deben

Cuando se describe una escena tipo "bloque suspendido de una polea por una cuerda", el cuerpo aterriza directamente debajo de la polea con la longitud de cuerda adecuada, sin necesidad de reposicionarlo manualmente. Antes el cuerpo aparecía en una posición default que rara vez coincidía con la intención del problema, y el ancla de la cuerda quedaba en la cara incorrecta del cuerpo. El cambio se nota especialmente en problemas clásicos de máquina de Atwood y en sistemas con varias poleas en serie.

Plataforma16 may 2026

Dashboard por dominio: la IA vive dentro del editor

El dashboard ahora abre directamente tres entradas — Física, Funciones (gráficas cartesianas) y Geometría — cada una con su editor correspondiente y su paleta nativa. Antes había una entrada única de IA generalista que primero adivinaba el dominio del prompt y después lo enrutaba al pipeline correspondiente. Ahora el usuario elige el dominio primero, entra al editor (vacío o con un template), y desde adentro usa el AI Assistant para generar o refinar la escena. El AI Assistant está siempre disponible en el panel lateral y ya conoce el dominio activo, así que sus sugerencias y su salida coinciden 100% con lo que el canvas puede renderizar.

/ contexto

La IA generalista de entrada agregaba una capa de "adivinanza" que fallaba sutilmente: una "trayectoria parabólica" solicitada desde el dashboard a veces se enrutaba a math2D y se dibujaba como parábola algebraica en lugar de un tiro parabólico físico; un "diagrama de cuerpo libre" pedido desde el editor de math2D intentaba reescribirse como gráfica. El usuario sentía que el AI Assistant a veces "no entendía". El problema no era el modelo sino la falta de contexto explícito de dominio. Resolverlo desde la UX es honesto: para hacer mecánica se entra a Física, para graficar se entra a Funciones — y la IA recibe ese contexto desde el primer prompt. Como subproducto se eliminó toda una capa de heurísticas de clasificación de dominio que era fuente recurrente de bugs, y el dashboard quedó más limpio: tres tarjetas con un ícono y un click, sin un input de texto al frente que invitaba a escribir prompts ambiguos.

Comparativa: a la izquierda, el dashboard anterior con un único input "Describe tu diagrama" que requería que la IA adivinara si el prompt era de física, matemática o geometría. A la derecha, el dashboard nuevo con tres tarjetas (Física, Funciones, Geometría); al hacer click en una se abre el editor del dominio con el AI Assistant en el panel lateral ya en contexto.
AI Assistant16 may 2026

Pipeline físico más directo y robusto

La generación de escenas de física desde el AI Assistant ahora pasa por una ruta más corta y predecible: el modelo emite directamente la estructura de objetos y relaciones, sin capas intermedias de re-interpretación. Eso se nota en cosas concretas: los vectores ya no aparecen por default a menos que el usuario solicite explícitamente un DCL (y aun así los materializa el solver automáticamente, no la IA), un bloque colgando de un resorte aterriza vertical debajo del techo en lugar de aparecer flotando diagonal, una cuerda entre dos cuerpos se posiciona con la separación correcta, y el plano inclinado expone los tres lados como puntos de anclaje (hipotenusa, lado vertical y base — antes solo era anclable la hipotenusa). Cuando el prompt describe una pared con piso, la IA prefiere usar un perfil polilínea en L que conecte los dos segmentos en una esquina limpia, en vez de un muro y un suelo separados con un hueco visible.

/ contexto

La ruta anterior pasaba el output del LLM por cinco capas determinísticas — normalización, plan semántico, documento de autoría, compilador y validador — cada una con sus propios nombres de campos. Un detalle tan sutil como que el modelo dijera "connectorId" mientras una capa intermedia esperaba "ropeId" hacía que un resorte se renderizara desconectado de su anclaje al techo. Acumulamos varios bugs de ese estilo. La capa intermedia existía porque originalmente los LLMs eran más débiles y emitían descripciones parciales que requerían inferencia. Con los modelos actuales y un spec bien diseñado, el LLM puede emitir la estructura final directamente — el mismo patrón que ya usaba la página de funciones cartesianas. El resultado es un pipeline que se entiende leyendo dos archivos en lugar de cinco, donde los bugs se ven a la primera, y donde añadir comportamientos nuevos (como las reglas de posicionamiento para resortes y cuerdas, o el anclaje arbitrario en los tres lados del plano inclinado) toca un solo punto en lugar de coordinar cinco.

Mecánica8 may 2026

Diagrama de cuerpo libre con control granular

Al activar el FBD de un cuerpo, cada fuerza (peso, normal, fricción, tensión, resorte) aparece listada con su propio checkbox para mostrar u ocultar y un toggle "atenuar" que la deja al 35% de opacidad. Cada fuerza también tiene un panel de estilo: color, grosor, largo (multiplicador de 0.3× a 2.5×), tipo de cabeza (triángulo o chevron) y posición de su rótulo.

/ contexto

El FBD original era todo o nada: o se mostraban todas las fuerzas, o ninguna. Para enseñar es necesario poder destacar una fuerza específica, atenuar las que no estamos analizando ahora, o esconder la fricción para mostrar el caso ideal. El estilo editable per fuerza también permite personalizar diagramas para presentaciones — pintar una fuerza más larga, mover su rótulo si se superpone con otro, cambiar el tipo de cabeza para diferenciar visualmente fuerzas de contacto vs. a distancia.

/ preview pronto
Panel de FBD con la lista de fuerzas. Cada fila muestra el nombre de la fuerza, un checkbox de visibilidad, un botón "atenuar" y un botón "estilo" expandible. Una fuerza aparece atenuada con opacidad reducida en el canvas.
Mecánica8 may 2026

Sistema de ejes rectangulares como objeto

Nuevo objeto en el palette: dos ejes X/Y rectangulares colocables en cualquier parte del canvas. Cruz completa o solo primer cuadrante (estilo física), con o sin flechas, etiquetas configurables por eje (soportan fórmulas inline y referencias dinámicas a otros objetos), color y estilo de línea editables. Tamaño por default 100×100 px, ajustable en el inspector.

/ contexto

Hasta ahora no había forma simple de dibujar un sistema de ejes locales en una escena de mecánica — útil para mostrar un frame de referencia rotado, etiquetar componentes de una fuerza o dar contexto geométrico a un diagrama. Es la primitiva foundational sobre la que se construirán las próximas mejoras: anclaje a otros objetos con orientación reactiva (los ejes rotan junto al plano inclinado cuando cambia el ángulo, o siguen la tangente de una trayectoria parabólica) y descomposición automática de vectores cercanos al origen del sistema.

/ preview pronto
Sistema de ejes X/Y dibujado en el canvas, con flechas en los extremos y etiquetas. Variantes mostradas: cruz centrada, primer cuadrante, rotado 30°.
Editor8 may 2026

Texto inteligente: referencias dinámicas a otros objetos

Los textos ahora pueden referenciar propiedades de cualquier objeto de la escena con la sintaxis {{objeto.propiedad}}: por ejemplo, {{plano.profile.angleDeg}}° o "x = {{block1.position.x}} px". El texto se reescribe solo cuando el objeto referenciado cambia. Funciona dentro y fuera de fórmulas $...$. El editor incluye un buscador que lista todos los bindings disponibles con sus valores actuales — clic para insertar en el cursor.

/ contexto

Una clase manipula objetos: el bloque se mueve, el plano cambia de ángulo, la masa se ajusta. Antes, las etiquetas eran estáticas y los números quedaban desactualizados al instante. Ahora cada etiqueta es una expresión que se reevalúa cada render — al rotar el plano, la fórmula que dice "el ángulo es {{plano.profile.angleDeg}}°" se actualiza sola. El buscador resuelve el problema de descubribilidad: el docente no necesita conocer el JSON interno para saber qué propiedades existen.

/ preview pronto
Editor de texto mostrando la entrada con sintaxis {{...}}. Debajo, el buscador "Bindings disponibles" listando los objetos de la escena con sus propiedades y valores actuales. En el canvas, una etiqueta con valores que cambian al manipular el objeto referenciado.
Editor6 may 2026

Texto con fórmulas matemáticas inline

Los textos en QuickFigen ahora mezclan prosa y fórmulas matemáticas correctamente: las expresiones en LaTeX se renderizan al baseline del texto (ya no aparecen flotando como superíndices) con tipografía matemática estándar. Además, ahora se puede seleccionar el texto haciendo clic directo sobre él, sin necesidad de arrastrar para definir un área.

/ contexto

El TextLabel original era una primitiva pensada para etiquetas cortas, pero los docentes mezclan prosa y fórmulas constantemente — frases como "la energía cinética es $E_k = \frac{1}{2}mv^2$" son cotidianas en una clase. Reescribimos el render de texto con math: ahora el container es un único bloque HTML embebido en el SVG (foreignObject), lo que permite a KaTeX alinearse al baseline correcto y respetar el spacing entre tokens. También agregamos un área de selección generosa alrededor del texto para que el clic directo lo capture sin fricción.

Bloque de texto que dice "La energía cinética del bloque es E_k = ½mv²" con la fórmula renderizada inline al mismo baseline que el texto que la rodea.
Editor6 may 2026

Recta y curva por tramos: ahora son objetos inteligentes

Nuevo objeto Recta en la palette + Curva por tramos repensada. Vértices anclables a otros objetos (siguen al objeto si éste se mueve), preset visual de extremos (segmento, semirrecta, recta extendida, puntos abiertos/cerrados, infinito), ángulos interiores editables y ángulo con la horizontal en rectas.

/ contexto

El usuario en una clase de geometría no quiere "armar una curva con 2 puntos para hacer una recta" — quiere una recta. Y necesita que sus vértices se peguen a otros objetos para que el diagrama no se rompa al editar. Reorganizamos el panel de propiedades en secciones (Geometría / Estilo / Nodos) y reemplazamos los dropdowns separados de markers por una grilla visual de presets, estilo PowerPoint.

Recta con un vértice anclado al centro de un block que se mueve junto al block; otra curva con ángulos interiores etiquetados α, β, γ.
Mecánica6 may 2026

Plano inclinado espejado

Toggle "Espejar horizontal" en las propiedades del plano inclinado para invertir la orientación del triángulo (ángulo recto a la izquierda, hipotenusa subiendo a la derecha → izquierda).

/ contexto

Antes solo se podía representar planos inclinados con el ángulo recto a la derecha — para problemas con bloques deslizando hacia la izquierda había que rotar el diagrama entero. Ahora un solo checkbox alterna la orientación; la física, el FBD y los anclajes block-on-surface se compensan automáticamente.

/ preview pronto
Plano inclinado con el ángulo recto a la derecha; al activar el toggle se voltea horizontalmente, con un block descansando correctamente sobre la nueva pendiente.
AI Assistant5 may 2026

AI Assistant 100% LLM para gráficas matemáticas

El AI Assistant en math2D ahora razona sobre la escena completa con un schema inyectado: agrega áreas, intersecciones y curvas conservando lo que ya hay.

/ contexto

El parser determinista anterior tropezaba con frases ambiguas y rompía el contexto entre prompts. Pasamos todo a Gemini con el spec de CartesianPlotParams + reglas explícitas de semántica (above/below/between, smart points, x_range del viewport). Resultado: prompts encadenables sin perder la escena.

/ preview pronto
AI Assistant agregando un área sombreada entre dos curvas en una segunda interacción.
Matemática5 may 2026

Puntos matemáticos inteligentes

Los puntos en plano cartesiano ahora pueden anclarse a la intersección de dos curvas, a un punto sobre una curva o a un corte con eje. Si cambia la función, las coordenadas se recalculan solas.

/ contexto

Antes, marcar una intersección era congelar coordenadas estáticas: cualquier edit de la curva dejaba el punto desfasado. Con el resolver de bisección y el campo attachedTo, los puntos quedan declarativos — basta con declarar "intersección de f y g" y el render se encarga del resto, igual que GeoGebra.

/ preview pronto
Punto marcado en la intersección de dos curvas que se mueve solo al editar la fórmula.
Simulación5 may 2026

Zonas de simulación con templates analíticos

Al arrastrar un template (spring-mass horizontal, etc.) sobre el canvas y presionar ▶, el sistema evoluciona en tiempo real con solución analítica cerrada y FBD vivo.

/ contexto

A diferencia de herramientas como PhET donde cada simulación es un módulo aislado, las zonas de simulación de QuickFigen conviven con anotaciones, fórmulas y otros diagramas en el mismo lienzo. La fórmula que ve el alumno (x(t) = A·cos(ωt)) es la misma que estudia en clase.

/ preview pronto
Zona de simulación spring-mass horizontal corriendo con bloque oscilando y FBD actualizándose.
Matemática5 may 2026

Líneas de proyección a los ejes

Cualquier punto del plano cartesiano puede mostrar líneas auxiliares (dashed, sólidas o punteadas) hacia el eje x y/o y para visualizar sus coordenadas.

/ contexto

Al enseñar coordenadas, valores de funciones o intersecciones, las "guías" hacia los ejes son el estándar visual del libro de texto. Antes había que dibujarlas a mano como segmentos. Ahora son una propiedad declarativa del punto y se actualizan con él.

/ preview pronto
Punto en una curva con líneas dashed bajando al eje x y al eje y mostrando las coordenadas.

¿Qué te falta para tu clase?

Si quieres ver un objeto, simulación o template específico, escríbeme y entra al backlog.

Envíame una idea