8 puntos por GN⁺ 2026-01-11 | 2 comentarios | Compartir por WhatsApp
  • Dwitter es una plataforma donde puedes crear y compartir demos visuales con código JavaScript de hasta 140 caracteres
  • Cada publicación se llama “dweet” y muestra, junto con el código, una animación gráfica que se ejecuta al instante
  • Los usuarios interactúan mediante comentarios, remixes y hashtags, y hay mucha actividad de variación y recreación del código
  • Se puede explorar contenido popular con varios criterios de ordenamiento como hot, new, top (semana/mes/año/todo)
  • Es un espacio de experimentación de programación creativa donde se logran efectos visuales complejos con código corto

Resumen de Dwitter.net

  • Dwitter.net es una plataforma web para crear demos visuales con código JavaScript limitado a 140 caracteres
    • Cada demo se llama “dweet” y genera gráficos animados que se ejecutan de inmediato en el navegador
    • Tras iniciar sesión, el usuario puede escribir un nuevo dweet o hacer remix de trabajos existentes
  • El sitio permite explorar contenido popular con distintos criterios de ordenamiento, como hot, new, top (semana/mes/año/todo)
  • Cada dweet incluye funciones de compartir, pantalla completa, reportar y comentar

Ejemplos destacados de dweets

  • “Bubble universe colour expansion” es valorado por sus colores variados y su efecto visual bien definido
    • En los comentarios aparecen reacciones como “A whole universe!”
  • “Ants! 🐜” representa una colonia de hormigas con código breve y ha recibido elogios como “god level dweetage!”
  • “Trees, shadows, hills.” es una animación que retrata árboles, sombras y colinas, y obtuvo reacciones como “Amazing stuff!”
  • “Flight Over Destroyed City ✈️” recrea una escena de vuelo sobre una ciudad destruida
    • En los comentarios siguieron respuestas humorísticas como “i love the smell of sulfur and uranium in the morning”
  • “Solar Orbit ☀️🌘” implementa una órbita planetaria dentro de 140 bytes, provocando asombro con comentarios como “How did you fit a whole planetary system in 140 BYTES OF JAVASCRIPT!?!?”

Actividad de la comunidad y cultura del remix

  • Cada dweet puede remixarse a partir del código de otros usuarios, y se indica el enlace al original
  • En los comentarios se mezclan retroalimentación técnica, impresiones y humor, creando un ambiente comunitario muy activo
  • Con la función de hashtags se puede explorar por temas como #space, #galaxy, #lighting, #scene

Características técnicas

  • La mayor parte del código está comprimida en formas como eval(unescape(escape...)), buscando lograr el máximo efecto visual dentro del límite de 140 caracteres
  • Dentro del código predominan las expresiones de formas, color y movimiento usando la Canvas API
  • Cada dweet indica la longitud del código (por ejemplo, “// 136/140”), por lo que las técnicas de optimización y compresión son un elemento importante

Un espacio para la experimentación creativa en programación

  • Dwitter combina el code golf con el arte visual, fomentando una competencia creativa entre desarrolladores
  • El proceso de crear resultados visuales complejos con código simple se valora como una forma de estética de la programación
  • La plataforma funciona como un espacio experimental para explorar la frontera entre la expresión artística y la compresión técnica

2 comentarios

 
roxie 2026-02-27

Es realmente asombroso.

 
GN⁺ 2026-01-11
Comentarios en Hacker News
  • Qué gusto ver esto en HN :D
    Perdón por tener que reiniciar el servidor un momento. Gracias a la lección que aprendí la vez pasada que pasó algo parecido, ajusté el tamaño del droplet de DigitalOcean
  • Está genial, pero si el límite se pone por cantidad de caracteres, aparece un metajuego de comprimir caracteres ASCII usando caracteres Unicode multibyte
    Por ejemplo, algo como eval(unescape(escape\<<97 wide characters>>`.replace(/u../g,'')))`, donde 97 caracteres Unicode se restauran como 194 ASCII
    Preferiría que hubiera un acuerdo tipo la conversación entre Ford Prefect y Mr Prosser de “digamos que metimos 194 caracteres en 140 y simplemente mostrémoslo”
    Es una lógica parecida a la del límite de 4096 bytes en las demoparties, donde en la práctica se comprimen 12~20 KB con Crinkler para que entren
    • El frontend beta de beta.dwitter.net/top tiene un interruptor de “compressed” para verlo como prefieras
    • Otra opción es poner el límite simplemente por bytes UTF-8 (por ejemplo, 140 bytes)
    • 140 bytes equivalen a unas 160 letras ASCII. Si se excluyen los caracteres de control, se puede llegar hasta 170 caracteres
    • Creo que este comentario es el que más respuestas ha recibido de todos los que he visto en HN :-)
    • Qué gusto encontrar a alguien que captó la referencia a HHG (Hitchhiker’s Guide)
  • Este invierno Dwitter cumple 10 años
    Busqué una entrevista vieja y está interesante: entrevista en Medium
    La verdadera magia está en la comunidad: comunidad en Discord
  • Organicé una colección de sketches generativos hechos en Dwitter dentro de 140 caracteres
  • Hace tiempo participé en una pequeña competencia de la edición Authotokey de Dwitter y gané con una animación de engranajes
    GIF animado
    Para más detalles, ver publicación en el foro de Autohotkey
  • Sitios como Dwitter me renuevan la confianza en la creatividad humana
    Cuando hay restricciones, la diversidad explota. Ilusiones visuales, frases cortas, experimentos en direcciones inesperadas
    Las restricciones ayudan a enfocarse y reducen el costo del fracaso, lo que fomenta la experimentación
    La mayoría de las plataformas intentan expandir la creatividad agregando funciones, pero terminan volviéndose más complejas
    A menudo pienso en la regla de que las restricciones crean diversión
    Me da curiosidad saber cuándo las restricciones han producido mejores resultados, y cuándo se sienten como algo artificial
  • En los primeros años de Twitter me clavé muchísimo con el code golf de 140 bytes
    Esa experiencia cambió por completo mi forma de pensar el código
    En una comunidad pequeña compartíamos técnicas para ahorrar bytes e hicimos desde renderizado de Mandelbrot hasta solvers de Sudoku
    Diez años después me sorprendió muchísimo encontrar una implementación de UUID que había hecho en ese entonces dentro del codebase de mi empresa
    Enlaces relacionados: video de YouTube, Byte-saving techniques, UUID gist
  • Algo que descubrí hoy por primera vez:
    js_func`string`
    
    Esto es sintaxis válida de JS. js_func se llama como tagged template literal
    Ahora voy a empezar a usar cosas como console.log\weeee``
    • Algunas librerías usan esta sintaxis para soportar una sintaxis parecida a JSX sin proceso de build
      Por ejemplo: htm, lit.dev
    • Yo también usé esta función recientemente en un generador de imágenes dentro del código
      Guardé pequeños datos SVG en código inline e hice un sampler de 13 KB
      Enlace de ejemplo
    • Ahora por fin entiendo por qué esta sintaxis se usa en plantillas de SQL y GraphQL
      Por ejemplo:
      sql`SELECT * FROM users WHERE id = ${userId}`
      gql`query GetUser { user(id: ${userId}) { name email } }`
      
  • Me gusta Dwitter, pero ojalá bloquearan el uso de eval
    En cambio, estaría bien que agregaran más atajos. Por ejemplo, s significa Math.sign, pero se podría ampliar más
    • Plataformas así primero tienen que existir para que luego aparezcan formas de “romper” las reglas
      Si se cambia después, desaparece el objetivo fijo y pierde parte de su encanto
      beta.dwitter.net mejora la accesibilidad del encoding y aun así mantiene un objetivo fijo
      Excepciones como Math.sin o el codificador de colores CSS se agregaron por razones prácticas
      En Dwitter 2 también se habló de incluir más caracteres predefinidos para que los usuarios pudieran extenderlos por su cuenta
      Al final, lo importante es la creatividad. Incluso torcer las reglas es en sí mismo un acto creativo
    • Si la puntuación se cambiara para calcularse por bytes UTF-8, el problema de eval se resolvería de raíz
      Todavía se podría comprimir datos con literales de cadena, pero se reduciría la compresión del código completo
    • Llevo mucho tiempo usando dwitter.net, y me parece bien que se permita eval. Las reglas son las reglas (o no hay reglas)
  • Como ejemplos relacionados,