Files
openvistapro/docs/knowledgebase/feature-inventory.md
2026-05-16 16:29:57 -04:00

7.1 KiB
Raw Permalink Blame History

Feature Inventory

This is a normalized reconciliation of the VistaPro manuals, MakePath guide, screenshots, and current OpenVistaPro implementation.

Status counts by normalized feature family:

  • Implemented: 7
  • Partial: 7
  • Planned: 6

Notes:

  • “Implemented” means the current codebase has a working, tested slice for that family.
  • “Partial” means the codebase covers part of the family but not the full manual-described workflow.
  • “Planned” means the family is still absent or only mentioned as roadmap context.

Normalized feature families

Feature family Manual / reference evidence OpenVistaPro status Implementation evidence Gap / next step
Terrain sources and compatibility boundary VistaPro 2 manual: Load Landscape / Save Landscape; VistaPro 3 manual: Load, Save, Exp/Imp menus and DEM/PCX/Targa24 references. Partial src/import.rs, src/cli.rs (supported_importers()), README.md importer status. OpenVistaPro intentionally keeps the clean internal model separate and does not claim legacy VistaPro format compatibility.
Project-owned plain-text heightfields (ovp-text) Clean-room project fixture format, not part of the legacy manuals; used to model the import boundary safely. Implemented src/import.rs (import_ovp_text), tests in src/import.rs, fixture in tests/fixtures/open/. No gap for the MVP slice; this is the project-owned test/import path.
SRTM / HGT terrain import VistaPro manuals describe loading DEM-like landscape data; the open equivalent is the SRTM/HGT family. Implemented src/import.rs (import_hgt behind hgt), README.md, tests in src/import.rs. Still only the open SRTM slice; broader compatibility formats remain separate.
GeoTIFF terrain import Modern open terrain source, not a legacy VistaPro format. Implemented src/import/geotiff.rs behind import-geotiff, tests in that module. Deliberately narrow subset: tiny synthetic single-band raster support only.
Fractal / synthetic terrain generation VistaPro overview calls out fractal landscapes and generated terrain. Partial src/terrain.rs (plane, radial_hill), src/app_state.rs presets. Current terrain generation is only deterministic fixtures, not a true fractal/noise terrain engine.
Camera and target placement VistaPro 2 / 3 manuals: “Setting Camera and Target”; screenshot workflow uses camera/target gadgets. Implemented src/scene.rs (Camera), src/app.rs (camera position/target controls), src/app_state.rs. Only the core position/target slice exists; there is no map-click placement UI yet.
Lens / range / orientation controls VistaPro manuals describe lens/range, bank, heading, and pitch controls. Partial src/scene.rs (Camera.fov_degrees), src/render.rs perspective renderer. No explicit bank/heading/pitch model or legacy lens/range UI yet.
Water / sea level, tree line, snow line, haze Manuals repeatedly mention tree line, snow line, water level, haze, and atmospheric tuning. Implemented src/scene.rs, src/app.rs sliders, src/colormap.rs, src/render.rs. Rivers/lakes are still missing, but the core elevation-band controls are present.
Rivers and lakes VistaPro manuals explicitly mention rivers and lakes as adjustable landscape features. Planned Not yet represented in Scene or renderer code. Add hydrology controls/data model before claiming this family.
Light direction and custom lighting Manuals discuss sunlight placement and lighting experiments. Partial src/scene.rs (Light), src/render.rs, src/app.rs (light state exists in the scene model even if UI is minimal). The current model is much simpler than VistaPros lighting workflow and lacks richer light controls.
Vertical exaggeration VistaPro manuals describe vertical scaling / scene exaggeration controls. Planned No dedicated field or control in the current scene model. Add an explicit vertical-scale parameter and render integration.
Color maps / palettes / texture image loading VistaPro 3 manual includes loading PCX images, adding texture, and saving/loading color maps. Partial src/colormap.rs fixed bands, src/render.rs uses scene thresholds. No color-map editor, no palette import/export, and no PCX/texture loading yet.
Preview / final render workflow VistaPro manuals describe rough preview rendering and full render output. Implemented src/render.rs (render_top_down, render_perspective), src/cli.rs (render), tests in src/render.rs. The preview/final split is still simplified, but the core render outputs are working.
Render quality presets / smoothing / detail tradeoffs VistaPro manuals describe quality menus and poly/detail tradeoffs. Planned No dedicated quality preset system in current code. Add explicit quality presets or a render-quality profile object.
Scene file save/load (.ovp.toml) Not a VistaPro legacy format; this is the clean-room OpenVistaPro scene format. Implemented src/scene_file.rs, src/cli.rs (scene export), tests in src/scene_file.rs. No gap for the project-owned scene format slice.
Script language parser MakePath guide and VistaPro manual describe scripts and “Run Script” workflows. Partial src/script.rs parser, tests in src/script.rs, README.md script section. Parser exists, but script execution is intentionally deferred.
Script execution and animation frames MakePath guide says scripts should render full animations and VistaPro can run scripts from the Script menu. Planned No script runner or frame-sequencing engine exists yet. Add execution semantics once the command model is stable.
MakePath-style path generation and motion models MakePath guide describes spline nodes, previewing a path, and vehicle models (jet, glider, dune buggy, motorcycle, helicopter, cruise missile, custom). Planned No path generator or motion-model layer exists yet. This is a separate planner/animation feature, not just a script parser.
UI shell, menus, dialogs, and numeric gadgets VistaPro screenshots/manuals show dense menus, dialogs, map tools, and numeric gadgets. Partial src/app.rs, src/app_state.rs, src/ui_shell.rs, src/bin/openvistapro_app.rs. OpenVistaPro now has a durable docked egui shell with stable navigation, sidebar, viewport, inspector, and status chrome; menus/dialogs/numeric gadgets still remain to be filled in.
Legacy image / landscape export formats VistaPro manuals mention saving rendered images and landscapes in formats like IFF/IFF24/RGB and DEM/binary landscape files. Planned Current output is PNG plus project-owned .ovp.toml scenes. Add separate compatibility/export work only after the clean internal pipeline is stable.

Current reconciliation summary

OpenVistaPro already covers the core clean-room pipeline: terrain grids, open importers, scene state, preview/final rendering, project-owned scene files, and a small script parser. The remaining VistaPro-specific gaps cluster around legacy compatibility, richer scene controls, script execution, MakePath-style animation tooling, and the old dense UI/menu workflow.