This is a preliminary scope/living document of my current plans for half-edge! Pretty much everything is subject to change as circumstances evolve, but this should be a pretty good rough guideline to give you an idea for what's to come! ## Core Features > [!success] Features planned for the 1.0 release > - 🌐 Polygonal Modeling > - Primitives (Box, torus, sphere) > - Polygon/prism drawing > - Translate/Rotate/Scale manipulation > - Selection conversion & expansion > - πŸ“² GPU accelerated selection > - Live previews of box selections > - Camera-based selection support > - βœ‚οΈ Geometry Tools > - Extrude, Bridge, Revolve > - Fill hole, Create quad, Bevel > - Path cut, Separate edges > - 🫰 Grid & Snapping tools > - Hotkey adjustable power of two grid > - Vertex, per-axis, & planar snapping > - Adjustable gizmo/pivot position > - πŸ“¦ UV editor that doesn't make you hate yourself > - A modern take on UV mapping > - Interactive unfold > - Texel density & deformation visualizations > - Adjustable pixel grid with snapping > - Non-uniform UV region preview/support > - 🎨 Vertex painting > - Per-channel masks & preview > - Vertex normal painting > - UV painting > - ⬆️ Vertex normal tools > - Edges can be soft, hard, or auto (angular threshold) > - Advanced per-face normal alignment/weighting > - 🧭 Configurable up axis & handedness > - yeah that's right you heard me > - πŸ’Ύ File import/export > - Exports .gltf or .usd or .obj or .fbx, not sure which yet! > - Import formats TBD ## Potential features > [!summary] Features that *might* be included for 1.0, or as an update > - πŸ“‚ Tabbed interface > - Because, it's convenient as heck > - No need to decide whether to save > and close before opening something else > - Easily jump between meshes > - 🍞 AO Baking > - Ambient occlusion is an instant upgrade for many models, and would be relatively easy for me to make > - πŸ™ SubD surfaces (Catmull-Clark) > - Easy enough to implement as a destructive operator > - Might not make it to 1.0 as a real-time non-destructive layer/mode though! > - ⌚ Timelapse video export > - If I can compress the data enough > - would be a neat tool for social media > - πŸͺ‘ Splines > - Placing/editing splines > - Extruding along splines > - πŸ’ͺ Skinning & Rigging > - Rarely used for level art, but would open up the tool to be used for most meshes in a whole game > - 🍩 Volumetric SDFs w. boolean operations > - Unlike polygonal meshes, booleans are trivially easy with SDFs > - one-way conversion from SDF to polygons > - 🧊 Voxel/3D grid mesh tool ## Big Maybes > [!example] Features that would be nice, but are deep rabbit holes that are dangerous to walk down, especially as the sole developer on an already large project > - πŸ–ΌοΈ Texture painting > - 🎹 Generalized boolean operations > - πŸƒβ€β™‚οΈ Animation editor > - This is a pretty big rabbit hole > - Having this would pretty much make it viable as a game dev 3D art tool from start to finish though > - πŸ“š Non-destructive editing > - (modifier stacks or node-based mesh editing) > - I often find these to rarely cooperate well with destructive editing > - Also, I want to emphasize human made, hand-crafted art, and this does slightly steer away from that > - I want to prioritize making destructive editing as nice to use as possible first > - πŸ”ŒPlugin API > - For custom mesh operations > - Or maybe export workflows ## Out of scope > [!warning] Features that are unlikely to ever be implemented > - ✨ HD fancy beauty shot staged renders > - No marmoset style renders > - No offline path tracing renders either > - πŸŽ₯ Cameras, camera paths, & video export > - This is not designed for cinema stuff > - πŸͺ© Node-based shaders/procedural texturing > - Substance designer/Pixel composer style > - As much as I'd love to do this (again), it's a dangerously big undertaking > - πŸ—οΈ Advanced rigging tools > - Look-at controls, IK joints, that kind of thing > - πŸš› Importing .blend/.ma/.mb/similar files ## Will never happen > [!failure] Someone murdered Freya and is impersonating her > > - ❌ Generative AI features > - ❌ web3/NFT/crypto features > - ❌ turning it into a game engine