2 puntos por GN⁺ 2025-02-02 | 1 comentarios | Compartir por WhatsApp
  • Visualizar todos los libros del mundo en el espacio ISBN

  • Las bibliotecas han intentado recopilar el conocimiento de la humanidad. En la era digital, podría ser posible recopilar de forma integral todos los escritos humanos que cumplan ciertos criterios. Las bibliotecas sombra cumplen la función de recolectar y compartir la mayor cantidad posible de libros.

  • El ISBN (Número Internacional Normalizado del Libro) es un número de 13 dígitos asignado a casi todos los libros publicados. Este número tiene una estructura específica, y gracias a ella es posible visualizar el espacio ISBN13, que tiene 2 mil millones de slots.

  • La estructura única del ISBN

    • El prefijo 978-/979- del ISBN es un subconjunto del European Article Number. Este prefijo puede prácticamente ignorarse.
    • La Agencia Internacional del ISBN asigna grandes bloques de ISBN a organizaciones internacionales, y cada país subdivide esos bloques para sus editoriales.
    • Los bloques de ISBN siempre se asignan según el prefijo. Por ejemplo, a Japón se le asignó 978-4, y a partir de eso distribuye ISBN a las editoriales.
  • Curvas de llenado de espacio

    • Si se eliminan el prefijo y el sufijo del ISBN, queda un número decimal entre 0 y 2 mil millones. Se necesita una forma de proyectarlo en un espacio bidimensional.
    • Se propusieron curvas de llenado de espacio como la curva de Hilbert, pero pueden introducir una estructura que no existe en los datos.
  • La curva de "estantería"

    • El ISBN es esencialmente decimal, y esto puede usarse para crear una curva de llenado de espacio fácil de entender y visualmente atractiva.
    • Esta curva se parece a una estantería, y mediante una transformación simple de coordenadas se puede convertir un ISBN en coordenadas.
  • Tiles de mapa

    • Se pueden generar imágenes de tiles para cada prefijo. Para cada dataset se almacena información distinta por píxel.
    • En el nivel máximo de zoom, se mapea 1 libro por píxel para mantener la precisión.
  • Shader

    • En lugar de almacenar datos RGB directamente, el renderizado se realiza usando un fragment shader de GLSL. Esto permite elegir la escala de color después y combinar múltiples datasets al instante.
  • Vista de estantería

    • En la vista completamente ampliada, cada píxel está estilizado como si fuera un libro. Esto se implementa en el shader y aparece suavemente según el nivel de zoom.
  • Rendimiento

    • El renderizado de texto se implementa de forma jerárquica según el nivel de zoom y el view-frustum culling. Para resolver problemas de rendimiento, se redujeron los elementos HTML y se limitó el contenido del DOM.
  • Código de barras

    • En el zoom máximo, cada libro tiene un código de barras. Esto se agregó para reforzar la idea de ordenar los libros según el ISBN.
  • Rangos de editoriales

    • Cada "grupo" tiene un rango grande, y cada editorial tiene un rango pequeño dentro del grupo. Para visualizarlo, se asigna un color único a cada grupo y editorial.
  • Ruta de vuelo

    • Al buscar un libro o hacer clic en el minimapa, se navega hacia esa ubicación. El cálculo de la ruta de vuelo es complejo y fue mejorado tras varios intentos.
  • Arquitectura

    • No se necesita backend; se usa un host de archivos estáticos para almacenar HTML, JS, CSS, PNG y JSON.
    • El frontend está implementado con ThreeJS, React y MobX.
  • Conclusión

    • Ofrece una forma flexible de visualizar todos los libros publicados con ISBN. Este proyecto fue muy entretenido de realizar, y el código fuente puede consultarse en GitHub.

1 comentarios

 
GN⁺ 2025-02-02
Comentarios de Hacker News
  • Cuando iniciaron Amazon, querían usar la clasificación triple de la Library of Congress, pero el proveedor de datos la convirtió en una sola cadena, por lo que era difícil encontrar los límites. Al final, terminaron abandonando esa idea

  • Hay casos en los que un mismo ISBN se asigna de forma duplicada a varios libros, así que la expresión "todos los libros del espacio ISBN" podría ser una exageración. Además, también existen libros con ISBN incorrectos, por lo que podrían quedar fuera del espacio ISBN asumido en la publicación del blog

  • La presentación solo refleja el contenido de Anna’s Archive y tiene un sesgo hacia ciertos idiomas. Las partes marcadas en negro representan elementos faltantes en el archivo

  • El proyecto es sorprendente, y resulta impresionante poder ver títulos de libros, códigos de barras, portadas y detalles. Una idea de mejora sería agregar casillas de verificación para ocultar el panel blanco de la esquina superior izquierda y los elementos de la esquina superior derecha

  • Se puede pensar en rutas de vuelo modelando el movimiento en el semiplano superior hiperbólico. Se consideró una forma de minimizar los mosaicos según el nivel de zoom, y la implementación actual dedica más tiempo al paneo en niveles de zoom altos

  • La presentación en su formato actual fue algo abrumadora, pero la visualización de datos y la profundidad son excelentes. Fue interesante ver la actividad editorial de ciertas regiones; Polonia ha estado muy activa recientemente, y China ha crecido mucho desde 2005

  • Microsoft SilverLight PivotViewer encaja bien con esta aplicación, y la charla TED de Gary W. Flake es impresionante. Sin embargo, es una pena que no fuera un estándar web

  • Los proyectos parecidos a una Library of Babel del mundo real son interesantes, y si una biblioteca o museo infinito llegara a hacerse realidad en VR, valdría la pena invertir en ello

  • Es genial que al hacer zoom aparezcan estantes de libros

  • Es una visualización muy genial, y hay más envíos geniales