The Hacker News discussion primarily revolves around the introduction of "Geotoy," a new tool for creating 3D graphics in the browser, and its comparison to existing technologies like Shadertoy, Three.js, and older graphical programming environments. Key themes include the capabilities of Geotoy, its performance, its relation to shader languages and geometry processing, and the broader context of browser-based 3D creation.
Geotoy's Capabilities and Design
The discussion highlights Geotoy as a novel approach to 3D graphics generation within the browser, likening it to a scripting language for 3D models. Users are intrigued by its potential and its underlying technology.
- A New Paradigm for 3D Creation: Users recognize Geotoy as a distinct method for generating 3D content. "riidom" describes it as "it's like a scripting language for 3D models (could call it a DSL, I guess)".
- Emphasis on Geometry Definition: Unlike pixel-focused tools, Geotoy focuses on defining vertices. As "socalgal2" points out the fundamental difference: "shadertoy: given a pixel coordinate, write a function to return a color. geotoy: write a function to return vertices".
- Visual Examples and Demonstrations: Users share links to demonstrate what can be achieved with Geotoy and related technologies, showcasing its visual output. "soalgal2" provides examples like "https://holtsetio.com/lab/chromeBallet/" and "https://holtsetio.com/lab/flow/", while "idrios" expresses excitement about creating "beautiful 3D animations in the browser".
- Material Definition and Triplanar Mapping: The method of defining materials and the use of triplanar mapping are discussed as key technical aspects. "riidom" explains, "It's not done via code, you can find the materials in the burger menu, top right corner of the console, in bottom right screen corner. The article I linked in another post here describes that it's all done with triplanar mapping, so no UV's involved."
Performance and Comparison to Shadertoy
A significant portion of the conversation is dedicated to comparing Geotoy's performance, particularly against Shadertoy, and explaining the underlying differences in their approaches.
- Performance Advantages: Several users note that Geotoy runs more smoothly than Shadertoy for them. "lawlessone" states, "This runs a lot smoother than shadertoy does for me."
- Fundamental Differences in Approach: The core distinction lies in how each tool processes information. "socalgal2" elaborates: "To draw a cube in geotoy requires your function to be called 36 times. That's over simplifying but saying one is fast and one is a slow is comparing atoms to balls. Shadertoy = describe every atom, geotoy = describe the shape." This highlights Geotoy's efficiency in describing geometric primitives.
- Shadertoy's Strengths: While acknowledging Geotoy's speed, users also recognize that Shadertoy's pixel-level control allows for effects not easily replicated by Geotoy. "socalgal2" adds, "Similarly describing every atom means you can describe fog or god rays or caustics etc. Describing the shape won't do that."
- Animation and Time-Based Rendering: The possibility of animation in Geotoy, akin to Shadertoy's
iTime
, is queried. "dernett" asks, "Is it possible to create animations using something like Shadertoy'siTime
?"
Geolocation and Discovery
The novelty of Geotoy and its creator are also points of interest, with some users expressing surprise at not having encountered it before.
- Discovery and Appreciation: Users express admiration and surprise at finding Geotoy. "__bohm_" asks, "This is cool! @OP, are you the creator of Geoscript? I've never heard about this anywhere else before." Similarly, "retrofuturism" exclaims, "This wowed me in the same way when I saw GLSL for the first time. What is Geoscript??? I love this."
- Related Technologies and Articles: The discussion references related technical articles and other tools that share similar concepts. "riidom" shares a link to "https://cprimozic.net/blog/the-tech-behind-geotoy/#overview", suggesting it provides further insight into Geotoy's technical underpinnings.
Evolution of Graphics Shaders and Browser Capabilities
The conversation touches upon the broader landscape of graphics programming, including the evolution of shader stages and the general capabilities of browser-based graphics development.
- Geometry Shaders and Their Modern Successors: The discussion briefly delves into the history and practicality of geometry shaders. "pezezin" notes, "Geometry shaders have been replaced by mesh shaders, which are way more powerful as they can output any kind of geometry." This context helps position Geotoy within the ongoing advancements in graphics hardware and APIs.
- Advancements in Browser 3D: There's an underlying theme of progress in what can be achieved directly within web browsers. While "idrios" envisions a future with "Rigtoy, Animtoy and Rendertoy", other users point to existing impressive tools like "cables.gl or tooll3" which have "quite impressive end to end motion graphics capabilities."
- Inspiration from Older Tools: Geotoy is also compared to foundational tools in procedural generation. "jcelerier" draws a parallel to "the venerable structure synth: "https://structuresynth.sourceforge.net/". They further mention their own attempt to revitalize it in ossia.io, hoping "_maybe geotoy will work better for this!".
- Modern Approaches to 3D Asset Creation: The discussion includes commentary on current trends in 3D modeling, such as using Signed Distance Fields (SDFs) as an alternative to mesh-based construction. "xixixao" shares, "My current hobby project is getting 3D SDF meshing good enough so that I can use them instead of building out of meshes. I’m starting from marching triangles but it’s very much an open problem. Everything in JS, with the goal of building models in JS."
User Experience and Feedback
Some feedback is provided regarding the user interaction with Geotoy.
- Interaction Feel: One user offers unsolicited feedback on the feel of rotation. "jasonjmcghee" suggests, "I think if rotation decelerated quickly to no velocity instead of instantly stopping when you let go, it would feel more natural."
- Animation vs. Static: A point of clarification is raised about whether Geotoy is for animation or static generation. "wewewedxfgdf" asks, "Help me understand what this is - so it's like Shadertoy but no animation?"