Practical first.
Transparent always.
Bivar is a growing toolbox for construction professionals. Each tool should do one useful job, explain its assumptions and stay out of your way.
XER Viewer methodology
The viewer is an independent, read-only implementation. It is not affiliated with Oracle. It reads tab-delimited Primavera XER records using field names, rather than assuming a fixed column order.
What is interpreted
PROJECT, PROJWBS, TASK, TASKPRED and CALENDAR records support project selection, WBS filters, activities, relationships and calendar metadata. Other tables are ignored and listed in import notes. Resource loading, baselines, costs and calendar working-time rules are not calculated.
Which dates are displayed?
Start uses the first valid field in this order: act_start_date, restart_date, early_start_date, target_start_date. Finish uses act_end_date, reend_date, early_end_date, target_end_date. Activity details and CSV exports show the chosen source field. This explicit fallback is a viewer convention, not a promise to match every P6 layout or calculation mode.
Timestamps are treated as schedule-local values with no timezone conversion. Timeline spacing uses a timezone-independent coordinate to avoid browser daylight-saving shifts. Invalid dates are reported, not repaired. Dates outside 1900–2200 are unsupported. A finish before its start is not plotted.
Float, longest path and percentages
Float and durations are shown in imported hours. There is no universal eight-hour-day assumption. Highlighting for unfinished activities with total float ≤ 0 hours is separate from the imported driving_path_flag (Longest Path). Neither is a recalculated critical path or a guarantee to reproduce the project’s configured critical threshold. Physical percent complete is imported, not a weighted project completion calculation.
Relationships and checks
FS, SS, FF and SF relationships are displayed. The chart draws only links whose endpoints appear on the current 100-row page, capped at 2,000 drawn links; details retain imported relationship types and lag hours. Calendar-specific lag is not recalculated. External endpoints are labelled rather than invented.
The six screening checks identify missing dates, negative float, missing incoming/outgoing links, primary constraints and reversed ranges. They are review observations, not certified findings or a complete DCMA 14-point audit.
Limits and compatibility
Imports are limited to 25 MiB, 250,000 total data records and 100,000 activities. These are safety caps, not validated performance guarantees. Large-file performance varies by device. UTF-8 and BOM-marked UTF-16 are detected; an unsuccessful UTF-8 decode falls back to Windows-1252 with a visible warning. Other legacy encodings may need conversion before import.
Rows with mismatched column counts are skipped with diagnostics. Duplicate project, WBS or activity identities stop import to prevent silent merging. Unknown relationship types are retained but not drawn. This preview has been exercised with synthetic fixtures; a real-world P6 export compatibility corpus remains a release gate.
Field references: Oracle TASK mapping, Oracle TASKPRED mapping, and Oracle CALENDAR mapping.
Schedule Compare methodology
Open a baseline and updated XER file, select one project from each, then explicitly compare the pair. This is a comparison of imported values, not a baseline-aware scheduling engine or forensic delay analysis.
Matching and ambiguity
Matching uses the exact, case-sensitive Activity ID (task_code) within the chosen projects. Internal database record IDs are not used as cross-file matching keys. A renamed or renumbered Activity ID appears as removed and added. Duplicate IDs are shown as ambiguous groups with all candidate records. Missing IDs are listed as unmatchable records. No fuzzy name matching or guessed pairing is hidden from you.
Compared values and date shifts
The 13 compared fields are activity name, status, type, displayed start, start-source field, displayed finish, finish-source field, original duration, remaining duration, total float, physical percent, imported longest-path flag and primary constraint type. Null values remain unknown, not zero. Source-field changes are differences even if the chosen timestamp is unchanged.
Date shifts are updated minus baseline timestamps in schedule-local wall-clock hours. No working calendar, timezone conversion, daylight-saving correction, eight-hour-day assumption or causation is applied. A positive finish shift means a later displayed timestamp, not proven project delay.
Scope and limitations
“Unchanged fields” means only these 13 imported fields match. Relationships, WBS, calendars, resources, costs, constraint dates and other unsupported fields are not compared. Review import notes: skipped records can affect addition/removal counts. Two whole-project files are not automatically paired. The project selection is yours to confirm.
Comparison grouping runs in the page after both files are parsed in separate local workers. Results are paginated at 100 groups. CSV exports include the currently filtered groups, both selected projects, data dates, both values, source fields and identity warnings. There is no file upload. Persistent device storage is used only when you choose Remember on this device.
Lookahead Builder methodology
One project, one date window, imported work dates. The builder reuses the XER Viewer’s parser, local worker importer and Gantt renderer. It does not recalculate CPM, working calendars, resource loading or site readiness.
Window and selection
Start and end dates are inclusive. The 2/3/6-week buttons set the end to start + 7 × weeks − 1 calendar days, without timezone conversion or an eight-hour working-day assumption. Dates must be valid and between 1900 and 2200. The default start is the imported project data date, falling back to the earliest unfinished start when needed; otherwise it stays blank. Changing the project resets the WBS and date window. Changing WBS retains your chosen dates and includes descendant branches.
Unfinished activities appear when their imported start/finish interval overlaps the window, including boundary milestones and activities spanning the whole window. Activities marked In progress with an imported finish before the window are included as overdue. Completed activities are excluded. Missing or reversed dates are counted and listed in the selected project/WBS scope, with up to 50 omitted examples shown; dates are never repaired.
Report and limits
The table retains imported dates and their source fields, sorted by start then Activity ID. The Gantt is clipped to the chosen window; overdue work before the window is labelled rather than moved into it. Select a chart activity to focus its table details. The table and Gantt use Previous/Next pagination with 200 activities per page; CSV includes all selected activities, project and data date, window and WBS context, and protects spreadsheet formulas. Browser Print / Save PDF includes the chart followed by the complete activity list. The existing Gantt renderer produces A4 landscape chart pages with a repeated date axis, independent of screen width and pagination. The activity table follows with repeated headers, full names, imported dates, metadata and assumptions. Printing is limited to 5,000 selected activities: narrow the WBS or dates for a larger selection. No file is uploaded. Projects are stored in this browser only when you choose Remember on this device.
IFC Viewer methodology
The viewer renders models locally and reads IFC STEP geometry, basic element identities, scalar property sets and imported quantities in a disposable browser worker. All viewer assets are self-hosted. Files stay in tab memory by default and are never uploaded. Remember on this device explicitly enables local project storage; Save project downloads a portable copy.
Files, colors and details
Load multiple files, including copies with overlapping Express IDs. Each file has its own identity, visibility and removal control. Imports are queued one at a time to limit temporary memory. Removing a queued or opening file cancels it; removing a loaded file releases its tracked geometry and application data. One model is limited to 64 MiB, 4 million vertices, 12 million indices and 50,000 meshes. A desk holds up to 12 files, 96 MiB of sources, 8 million vertices and 24 million indices. These input limits reduce memory pressure; available browser RAM and graphics memory still matter. Slow imports stop after three minutes.
Colors can follow original appearance, file, element type or an imported property. Missing property values are shown as “Not provided.” Type property defaults are applied before occurrence overrides. Property legends paginate at 20 categories. Models, Details, View, Find and Tags tabs keep one sidebar panel open at a time, below the canvas on mobile. Expand viewer fills the browser tab with the live desk and shared save controls; browser tabs and the address bar remain visible. Selected-element metadata opens Details automatically as collapsed groups; each group paginates at 40 values. CSV exports the selected element’s complete imported property list, with spreadsheet formula protection.
Undo visibility restores up to 20 hiding, isolation or filter changes. Show all restores file and element visibility, clears filters and cuts, turns off X-ray and frames the complete model. These controls remain available when no elements match. Adding or removing files clears undo history. Isolate can target an element, its type across files, or its file. Metadata value buttons apply an exact property-value filter; Find offers Clear property filter. Fit frames visible geometry. Hide and Isolate are grouped beneath Undo visibility and Show all on the canvas. View offers Isolate by element type or file, followed by a value selector. View offers seven camera directions, X-ray and a PNG of the current rendered canvas (without sidebar or controls). Canvas shortcuts: F fit, H hide, I isolate, U undo visibility, A show all. Projects retain isolation, property filters and X-ray; camera, cuts and undo history are temporary.
Scope and limits
This is a viewer and inspector. It does not rewrite IFC files, edit authored properties, calculate quantities, measure geometry or perform clash detection. Imported quantity values use source units and are not converted. Scalar, list and enumeration properties, nested property sets (up to eight levels), and simple quantities are read; complex quantities, reference/table/bounded properties, material properties and relationship graphs are not fully covered. Unreadable property records are reported. IFCZIP, IFCXML and IFC5/IFCX are unsupported.
The viewer supports IFC2X3, IFC4 and IFC4X3 geometry, subject to the limitations below. Spaces and opening helper volumes are omitted by the default geometry stream. Federated geometry retains relative placements and shares one rendering origin; map conversions, CRS reconciliation and alignment between independently georeferenced files are not implemented. Check source alignment before relying on a combined view. Transparent-object sorting and tessellation may differ from authoring software. Click a surface and use its scissor popup to clip through the picked point along the rendered face normal. The camera-facing side is removed first; Flip cut reverses it and Remove cut restores the model. Oblique faces are supported; curved surfaces use the picked triangle plane. A render tolerance of one millionth of the visible bounds diagonal avoids speckling on coplanar faces. After cutting, drag the persistent handle to slide the plane without rotating it, or use the keyboard-accessible Cut position slider. Its range is one visible-model bounds diagonal in either direction. A head-on view uses vertical dragging to change depth. Cut position is temporary and is not saved in projects. One active plane clips all visible files. Cuts leave open faces without filled caps. They do not author a new section or change the IFC.
The Tags tab adds local production annotations: choice or text fields, a Progress preset, Ctrl-click multi-selection, explicit saving in Details and one-step undo. Tags creates definitions. Details shows all custom tags above imported IFC groups. Matching values are shown directly; differing or missing values show Multiple. Editing a field turns the gray Save button green. Save applies only changed fields to the selection, preserving untouched mixed values. Find can select all matching elements; Hide and Isolate act on the whole selection. Pending edits and selection are temporary and are not saved in projects. Your tag colors are separate from imported properties. Untagged elements are gray. Matching uses Find filters, isolation and model visibility; camera bounds and section cuts do not affect this set. Save a .bivar project or opt into Remember to preserve tags with unchanged source IFC files. Limits are 16 fields, 32 choices per field, 1,000 characters per text value and 50,000 assigned values within 4 MiB. Tags bind to each original attachment and its Express ID/GlobalId; automatic revised-file transfer, shared tracking and floating labels are not supported. Invalid tags are rejected before replacing open work.
WebGL 2 is required; WebGPU is not required. If graphics initialization fails, try an up-to-date browser with hardware acceleration. A lost graphics connection requires reopening files. Tests use a synthetic pavilion and public IFC fixtures; broad exporter, mobile-GPU and georeferencing compatibility remain validation limits.
CAD Editor — experimental DWG and DXF editing
The drawing editor uses CADCraft 0.12.0 with a Bivar browser host and an acadrust 0.6.6 WebAssembly converter. All files, parsing, conversion, editing and exports stay in your browser. There is no account, upload or conversion service. The editor and codec load only when you open or create a drawing. Originals are preserved byte for byte in saved Bivar projects alongside editable DXF working drawings.
Open up to four drawings, at most 16 MiB per file and 100,000 entities per imported drawing. Source files total at most 32 MiB; working DXFs total at most 48 MiB. Conversion runs in a disposable browser worker with a 30-second timeout and a bounded WebAssembly memory. Over-budget or invalid imports are rejected before replacing project work. DWG R13–2018 headers are accepted, subject to parser compatibility. Binary DXF compatibility varies; ASCII DXF is preferred. Drawings do not fetch external references, images or fonts.
DWG conversion is experimental. It is not lossless or an AutoCAD validation service. Proxy/AEC objects, dynamic block behaviour, external references, SHX fonts, plot styles, complex 3D data and unmodelled records may differ or be omitted. Keep your original, export working copies and check those copies in the authoring application before relying on them. Paper-space layout names and geometry are retained where supported. PDF export fits model space to A3 landscape with 10 mm margins and a monochrome plot style for readable paper output; it is not a certified-to-scale plot.
The native drawing toolbar owns New, Open, view commands and Export drawing. Use Export drawing for PDF; the native advanced Plot dialog currently requests a filesystem path that the web build cannot save. Export drawing (also Ctrl+S) opens a local DXF, experimental DWG or PDF chooser for the active drawing; cancelling leaves its unsaved state unchanged. The Bivar bar’s Save project, Open project and opt-in Remember use the same local Bivar archive as the other tools. A project includes every open drawing, the active tab and available originals; undo history, camera position and editor preferences are not restored. Expand viewer focuses the live desk within the browser tab, with saving and drawing actions kept available; exiting restores the page without reloading work. Reopened drawings fit the view. Finish or discard block editing before project saving/export. No editor preference or project database is written before Remember is enabled. Browser eviction can remove remembered drafts; download a project for a portable backup.
The bundled synthetic office plan and connection detail are illustrative drawings, not construction documents. CADCraft's editor is MIT/Apache-2.0; acadrust is MPL-2.0. The embedded Noto Sans fallback is SIL OFL-1.1; source fonts and text metrics can differ from the authoring application. CADCraft notice, MIT licence, Apache licence, MPL dependency covered source, font licence, Rust dependency notices. The modified browser-host sources are available as main.rs and host.rs.
Visual Work Planner methodology
A local, single-editor workshop tool supporting make-ready, weekly commitments and learning from outcomes. The software supports planning conversations; readiness and commitments remain human decisions.
Guided weekly planning
The optional five-step guide reuses the same work packages, constraints and weekly snapshots. It records scope, blocker owners/deadlines, dated huddle notes and one improvement action per week. Steps can be visited directly or hidden. Export meeting PDF creates an A4 text record; the separate visual PDF preserves the drawing. Guidance supports team conversations, not certification of Last Planner adoption. Takt and automatic capacity planning are not implemented.
Source and user-planned work
Import an XER and choose one project. Each activity can be split into several independently identified work packages, linked to the original project and activity key. Manual packages are also supported. The original file is preserved. Imported dates appear as reference values in the editor; planned dates are entered separately. Board positions are drawing coordinates, not dates. Changing the source starts a new board after confirmation.
The drawing board
The board is a self-hosted drawing canvas: pan, zoom, select, move, resize, group, draw, label and undo/redo are native editor interactions and stay on this page. Each work package appears as a managed card group whose labels and status are rendered from the structured fields; moving or resizing a card updates only its geometry. Deleting a card on the board removes the drawing card but keeps the work package in the list, where Restore to board puts it back at its last position. Duplicating a card produces a plain annotation copy, never a second work record. Dependency arrows are locked and follow the inspector’s predecessor list. Change manual finish-to-start links there; ordinary drawn arrows are annotations. Links that would create a cycle are rejected. Freehand drawing, zones, text and images are ordinary annotations; embedded web content, element links to remote addresses and remote images are not supported.
Ready work and commitments
Readiness is a human decision. A weekly commitment requires a responsible person, both planned dates inside the Monday–Sunday week, the ready checkbox, and no open constraints. Committing freezes the eligible packages’ names, owners and dates for that week. Later edits and deletions do not remove the original promise. Outcomes are pending, completed as promised, or missed; review notes capture reasons and learning. Percent Plan Complete is the number completed as promised divided by all tasks in that weekly snapshot, including pending and missed tasks. It is a count, not weighted progress. Each week has one commitment snapshot; extra promises require a new week/project in this first release.
Example drawing
The example pairs a fictional schedule with Boereck’s public-domain residential floor plan, bundled locally. They are unrelated demonstration sources, not construction documents. The drawing can be moved, cropped or replaced in Drawing. Drawing source and public-domain notice.
Backgrounds and exports
One PDF page, PNG or JPEG starts as a locked background. Use Drawing to unlock, move, resize, rotate, crop or fade it, then finish editing to lock it again. Numeric position, size and percentage crop controls supplement dragging. Size keeps proportions; canvas zoom changes only the view. Crop and placement are saved with the scene and exported PDF. Replacing the source image or selecting a different PDF page resets its crop and starts fresh drawing undo history; changing a PDF page re-renders it locally with active annotations disabled, and the original file is kept. The visual PDF export flattens the actual board scene — cards, annotations, arrows and background — onto one A3 landscape sheet at a uniform scale; incoming PDF scripts, forms and links are not copied. Background files are limited to 12 MiB, PDF pages 1–200 and a bounded 3600 × 2400 pixel render. Raster headers must prove dimensions within the first 128 KiB before decoding; each image is limited to 32 megapixels, with 128 megapixels across the board. Rendered backgrounds shrink until the embedded PNG fits 8 MiB; the original file is preserved. Use Add PDF or image for rasters; native file paste/drop and clipboard scenes containing images are blocked. Shape and text paste remain available. The board supports 200 work packages and 260 weekly snapshots; drawing scenes are bounded to 2000 live elements and 64 images, at most 8 MiB each and 64 MiB combined.
Save project includes the source XER, the original background, the validated drawing scene with its embedded raster images, the structured plan and the weekly history in the shared portable format. Projects saved by older Visual Work Planner releases are rejected rather than approximated. The schedule export is a Bivar project for Schedule Review’s Open project action, not an Oracle XER. It displays user-planned work packages and manual finish-to-start links. No working calendars, CPM, resource levelling, duration, float or critical path are calculated. Original imported float and Longest Path are never assigned to new work packages. Task CSV protects spreadsheet formulas.
Storage
Remember on this device is optional and off by default. The embedded board keeps no storage of its own: nothing is written to this browser before you opt in, and the editor’s share, library, save and export actions are disabled. Saving and reopening use the same shared project format as the other tools. Browser storage is a convenience, not a backup: keep a downloaded project for important work. No project data is uploaded, and there is no simultaneous editing, collaboration or cloud synchronization.
Unit conversion methodology
Each value is converted to a base SI unit and then to the target unit. International foot = 0.3048 metres, inch = 0.0254 metres, pound mass = 0.45359237 kilograms, and standard gravity = 9.80665 m/s². Pressure in psi uses pound-force, not pound mass. Area and volume factors are the appropriate powers of the linear factors. US survey units are not included.
Calculations use JavaScript double-precision arithmetic; displayed results use up to 10 significant digits. No intermediate display rounding is applied. Use project-specified precision for engineering deliverables.
What comes next?
Real-export validation, accessibility review, broader browser testing, deeper comparison coverage and richer exports are documented in the development backlog. Future tools will follow the same local-first approach where practical.