Skip to content

Community poll: what should I build next in dxf-render / dxf-vuer?Β #8

@arbaev

Description

@arbaev

πŸ—³οΈ Community poll: what should we build next in dxf-render / dxf-vuer?

Hey everyone! dxf-render and dxf-vuer have a long roadmap, and I'd love to hear from you which features matter most for your use cases.

  1. πŸ’¬ Leave a comment with your top 3 features (just paste the IDs, e.g. R-1, I-1, UI-3).
  2. 🎯 Briefly describe your use case β€” it helps us prioritize features that solve real problems.

Viewing only for now β€” DXF editing is explicitly out of scope.


🎨 Rendering β€” more DXF coverage

New entity types

  • R-1 Β· IMAGE / WIPEOUT β€” raster images embedded in DXF (parser ready, needs render)
  • R-2 Β· 3DSOLID β€” ACIS solids (at least wireframe / bounding box)
  • R-3 Β· VIEWPORT β€” render model-space content inside paper-space viewports
  • R-4 Β· TABLE (ACAD_TABLE) β€” tables with cells and styles
  • R-5 Β· TOLERANCE β€” GD&T feature control frames
  • R-6 Β· REGION β€” 2D regions

Existing entity improvements

  • R-7 Β· SHX fonts β€” AutoCAD SHX support (conversion or custom parser)
  • R-8 Β· Vertical text β€” TEXT/MTEXT with vertical flow direction
  • R-9 Β· Bidirectional text β€” correct RTL ordering (Arabic, Hebrew)
  • R-10 Β· Full DIMSTYLE coverage β€” all DIMSTYLE variables
  • R-11 Β· Full MLINESTYLE β€” fills, end caps, joints
  • R-12 Β· Gradient HATCH β€” gradient fills (currently solid + patterns only)

Paper Space / Layouts

  • R-13 Β· Layout switching β€” toggle between Model Space and Paper Space
  • R-14 Β· Title blocks & sheets β€” borders, title blocks, sheet scales
  • R-15 Β· Layout selector prop/component

DWG support

  • R-16 Β· DWG parsing β€” DWG β†’ DXF via WASM lib (LibreDWG / ODA File Converter) or a native binary parser
  • R-17 Β· Format auto-detection β€” detect DWG/DXF by file signature and handle transparently
  • R-18 Β· DWG version coverage β€” R14 / 2000 / 2004 / 2007 / 2010 / 2013 / 2018

⚑ Performance & scalability

  • P-1 Β· Streaming parser β€” incremental parsing for large DXFs (>50 MB)
  • P-2 Β· Level of Detail (LOD) β€” geometry simplification at low zoom
  • P-3 Β· Frustum culling β€” skip off-screen objects
  • P-4 Β· GPU instancing β€” InstancedMesh for mass INSERT blocks
  • P-5 Β· Lazy block loading β€” defer rendering blocks outside viewport
  • P-6 Β· Memory optimization β€” BufferGeometry reuse, proper dispose on file switch
  • P-7 Β· Progressive rendering β€” show partial scene during load

🧭 Navigation & interaction

Camera

  • N-1 Β· Minimap β€” overview navigator in the corner
  • N-2 Β· Named views navigation β€” jump to VPORT / Named Views from DXF
  • N-3 Β· Zoom to selection β€” zoom to selected layer or region
  • N-4 Β· Zoom to layer extents
  • N-5 Β· Navigation history β€” undo/redo camera positions
  • N-6 Β· Animated transitions β€” smooth camera tweens on fit/zoom

Measurements & info

  • I-1 Β· Distance measurement tool β€” ruler between two points
  • I-2 Β· Area measurement β€” closed region
  • I-3 Β· Angle measurement
  • I-4 Β· Snap to geometry β€” vertices, midpoints, centers
  • I-5 Β· Entity inspector β€” click β†’ properties (type, layer, color, coords)
  • I-6 Β· Attribute search β€” text search across INSERT ATTRIB values

Selection

  • S-1 Β· Click to select β€” highlight entity on click
  • S-2 Β· Rectangle selection β€” marquee select
  • S-3 Β· Layer hover highlight β€” emphasize all entities on layer hover
  • S-4 Β· Spatial association heuristic β€” heuristic association of leader/dimension to the nearest geometry pointed to by the arrow (optional flag, experimental β€” DXF does not store this association)

πŸ–ΌοΈ UI & UX

Panels

  • UI-1 Β· Properties panel β€” details of the selected entity
  • UI-2 Β· Blocks panel β€” list all INSERT blocks with navigation
  • UI-3 Β· Text/dim style panel β€” overview of styles in use
  • UI-4 Β· Extended statistics β€” charts of entity/layer distribution
  • UI-5 Β· Breadcrumbs β€” Layout > Block > Entity path
  • UI-6 Β· Context menu β€” right-click β†’ Zoom to / Properties / Copy coords

Layer panel

βœ”οΈ L-1 Β· Layer search filter β€” text filter by layer name (done in #9)

  • L-2 Β· Layer grouping β€” auto-group by prefix (A-WALL, A-DOOR β†’ group A)
  • L-3 Β· Drag-and-drop layer order
  • L-4 Β· Persist visibility β€” remember layer state across sessions (localStorage)
  • L-5 Β· Visibility presets β€” quick configs ("architecture only", "electrical only")

Toolbar

  • T-1 Β· Button groups β€” visual separators between groups

πŸ“€ Export & integration

Export

  • E-1 Β· SVG export β€” vector export of visible layers
  • E-2 Β· PDF export β€” preserving scale and layers
  • E-3 Β· PNG export options β€” resolution, DPI, transparent background
  • E-4 Β· Copy to clipboard β€” screenshot current view

Print

  • E-5 Β· Print layout β€” print prep with border and scale
  • E-6 Β· Print-friendly CSS β€” @media print styles

Loading

βœ”οΈ E-7 Β· Load from ArrayBuffer / Blob β€” file-storage integration (done in #9)

  • E-8 Β· Authenticated URL loading β€” custom headers on URL fetch
  • E-9 Β· .dxf.gz support β€” auto gzip decompression

β™Ώ Accessibility

  • A-1 Β· ARIA attributes β€” aria-label on all controls
  • A-2 Β· Keyboard navigation β€” Tab/Enter/Space across UI
  • A-3 Β· Keyboard pan/zoom β€” arrows to pan, +/- to zoom
  • A-4 Β· Screen reader announcements β€” loading, errors, layer changes
  • A-5 Β· Focus management β€” visible focus, correct tab order
    βœ”οΈ A-6 Β· prefers-reduced-motion β€” disable TAA and transitions (done in release: dxf-render@1.3.0, dxf-vuer@2.4.0Β #9)
  • A-7 Β· High contrast mode β€” Windows High Contrast support

🧩 API & extensibility

DXFViewer

  • API-1 Β· v-model for layer visibility β€” two-way binding
  • API-2 Β· Events: entity-click / entity-hover β€” with entity data
  • API-3 Β· Programmatic API β€” viewer.zoomToEntity(handle), viewer.highlight(entities)
  • API-4 Β· Plugin system β€” register custom entity renderers

Other

  • API-5 Β· Headless mode β€” server-side rendering (Node + headless GL) for thumbnails
  • API-6 Β· React wrapper β€” dxf-react on top of dxf-render
  • API-7 Β· Web Component β€” <dxf-viewer> custom element, framework-free

βœ… Quality

  • Q-1 Β· Visual snapshot tests β€” reference DXF vs. rendered image diff
  • Q-2 Β· Parser fuzz testing β€” resilience to malformed DXF
  • Q-3 Β· Performance benchmarks β€” 1 MB / 10 MB / 50 MB files
  • Q-4 Β· E2E tests β€” Playwright for core scenarios
  • Q-5 Β· Storybook / Histoire β€” interactive component catalog
  • Q-6 Β· API Reference β€” auto-generated from TSDoc
  • Q-7 Β· Reference DXF suite β€” compatibility across AutoCAD / BricsCAD / LibreCAD / QCAD

πŸ’‘ Missing something?

If your must-have isn't listed, just comment below!

Thanks for helping shape the roadmap!

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is neededquestionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions