API Reference

ecbyts Documentation

Environmental Digital Twin Platform — complete user guide for creating 3D models of environmental monitoring sites with linked temporal data, scientific analytics, ML-powered recognition, and blockchain-backed integrity.

Current release

Overview

ecbyts (Environmental & Occupational Core Byte Tools) is a platform for Environmental Digital Twins. It creates 3D models of environmental monitoring sites — contaminated areas, water bodies, remediation projects — with linked temporal observation data, scientific analytics, ML-powered recognition, and blockchain-backed data integrity.

ecbyts main interface with 3D environmental site, contamination plumes, monitoring wells, and satellite imagery
●

3D Digital Twins

Build and visualize 3D models of environmental sites with interactive camera controls.

▲

Scientific Analytics

Mann-Kendall trends, predictions, cost analysis, and prescriptive optimization.

◆

Blockchain Integrity

SHA-256, ECDSA signatures, Merkle trees, and hash chains for tamper-proof data.

★

AI-Powered

Multi-provider LLM assistant, ML image recognition, and neural network modules.

■

Compliance

CONAMA/CETESB validation, domain validators, ESH matrices, and regulatory support.

◎

IoT Integration

Connect real-time sensors for continuous environmental monitoring.

What's New

Features delivered between 24 September and 1 October 2026. Each item says what changed, where to open it and which section of this guide covers the rest. The ECBYTS Seal and the compliance presets have their own sections: ECBYTS Seal and Compliance Presets.

ECBYTS (included) AI, paid per use

Signed-in users get the ECBYTS (included) provider as the default AI, with no API key. There are two model categories, both debited from the $ECBT balance on every plan: Basic costs 2 $ECBT per 1,000 output tokens plus 8 $ECBT per 100,000 input tokens; Advanced costs 3 $ECBT per 1,000 output tokens plus 71 $ECBT per 100,000 input tokens. The balance is reserved before the call and settled by the real usage; a repeated or abandoned request is not charged. An optional free model (up to 50 requests per day per account) is available only to whoever accepts that its provider may train on the conversation. Other providers (OpenAI, Claude, Gemini, local models) stay available under AI Assistant > Configure API keys / provider.

Before the first message (chat, command bar or voice) an I agree card shows the approved privacy text with an unchecked box; Not now sends nothing. The acceptance is stored with version, date and language. The Preview before sending button in the chat header (and the tab of the same name in the privacy panel) shows what you typed next to what leaves the browser, with CPF, e-mail and phone replaced by markers such as [CPF_1]. Stored conversation text is erased after 12 months. The credits badge in the header shows the real balance, the included AI usage of the day and the latest movements. Related: AI Assistant, Wallet and Credits.

Payments: Stripe and Mercado Pago

Balance top-ups, the Pro plan and courses can be paid by card through Stripe or Mercado Pago, with the same catalog package in both. Choosing Mercado Pago switches the amount to BRL, converted from USD at the PTAX selling rate plus 3%. Pro is R$ 49 per month (a subscription in both providers) or R$ 490 per year paid once. Mercado Pago asks for the e-mail of your Mercado Pago account. The "Insufficient balance" dialog shows the same value in both providers. The pricing page lists the items paid with balance and the Seal line. Related: Wallet and Credits, Pricing.

Professional registration and model ownership

Verifying your professional council registration (CREA, CRQ, CRBio and others) and registering the ownership of a model cost R$ 25 each, by card, with up to 3 attempts, 12-month validity (then the status shows "Expired") and a 7-day refund. The uploaded proof goes through an automatic technical screening before the AI review; a suspicious file goes to human review, and an AI failure does not consume an attempt. Open it from Cloud > Professional profile, or from the Pro subscription dialog > Verify professional registration. Related: Ownership and Access, Authentication.

Terms and consents

Terms of Use version 1.2 asks every user to accept again; Terms and Privacy Policy are available in the 16 languages of the app, and the privacy policy lists hCaptcha, social logins and AI providers. The consent banner waits for the terms, and advertising measurement has its own consent. AI use has the "I agree" card above, and the free model has a separate acceptance. Related: Data Sovereignty.

Actions tab, HUD corners and phone layout

The Actions tab has a redesigned five-phase stepper, empty cards that explain what is missing, a sunburst in the family colors with path highlight and a grid diagram; it no longer scrolls sideways. The 3D cards (Seal, Equipment, Intangibles) snap to one of eight fixed corners: drag the header or use the grip button ⠿ and its "Move to..." menu; the position is saved in the browser. Below 600 px the cards go to a bottom panel with a button strip, one open at a time, Esc closes. The "Elements by family" panel became an outliner: search, family > element tree, eye toggle, severity and a detail with campaigns and the latest readings. The phone menu gained a tool search. Related: Interface Guide, Customize.

Selection bar and long press

Selecting an element in the 3D model shows an action bar next to the selection: move, rotate and scale modes (W, E, R, G), snap, X/Y/Z, focus, duplicate, hide, properties, more actions, delete and done. On desktop it sits at the top of the scene; below 600 px it moves to the footer with 44 px targets. Right-click an element (or long-press it on a phone) for its context menu; the gizmo is 40% larger on touch; Esc with a menu open only closes the menu. Related: 3D Scene, Keyboard Shortcuts.

Charts with Data, Edit and PNG

Charts show a Data / Edit / PNG bar. Data opens the underlying table with search and CSV export; Edit changes the color and visibility of each series or slice (saved per chart in the browser); PNG downloads the image. It is available in the Actions tab relation charts, the five Cost Analysis charts (the time axis now shows years), the EIS ring, the Analytics histogram and scatter (Data and PNG only) and the EVA PV/EV/AC and S-curves. Related: Analytics, Cost Analysis.

Ecby suggests the next step

Next to the Ecby mascot a box suggests one next step at a time (import, violations, trends with Mann-Kendall, interpolation, results per campaign, project location, data quality, cross-section, geology, report, sheet, presentation and steps per family) with a play button that opens the module. It hides after 8 seconds and pauses while the pointer or focus is on it. Turn it off with "Don't suggest again" or the proactive AI button. Related: AI Assistant.

Tours Trail, proof of completion and selling courses

The free ECBYTS Tours Trail course runs 10 guided tours and a final assessment (pass mark 80%). The proof of completion, a two-page PDF with QR and a performance report, costs USD 1 = 100 $ECBT; the name is confirmed before acceptance and the proof of completion shows on any device of the same account. Open it from the command palette ("Tours Trail"), the Home quick access, the tour picker or Learn. The tour ?tour=monetizacao ("How to earn with ECBYTS") shows how to price (minimum R$ 4.99), publish and receive 80% of each sale in $ECBT; "Enable payouts" next to the price in the lesson editor leads to Stripe Connect. Related: Guided Tours, Libraries Marketplace.

3D visuals and plume vertical reference

The scene uses ACES tone mapping, hemisphere light and a gradient background. Labels come in three layers with a budget of 14 on phones, show a dot in the family color and rotate between families. Each contamination layer of the interpolation can be bounded vertically: below or above the water table, the ground surface, a geological contact, a fixed elevation or a lake or river bottom, with an optional confining base and LNAPL top or DNAPL base anchoring; the plan area can follow the outline of an element. Z-X and Z-Y vertical sections of the plume are available. Open Analyze > Interpolation > layer card > Vertical reference. Related: Interpolation, 3D Labels.

Linked responsibles and auditor

In the Project tab, the technical responsible and auditor fields can be linked to an ECBYTS account: invitation, acceptance and withdrawal. Campaigns inherit the linked responsibles, and the ECBYTS Seal uses them for the proof bands. Related: Campaigns, ECBYTS Seal.

Faster start and ticker

The Home screen appears before the 3D model loads, and the loading overlay is limited to the Model tab. With a saved session the header shows your initials and "Connecting..." instead of "Sign in" while the session is restored. On small screens, slow networks or Save-Data, heavy 3D files are replaced by procedural meshes. The ticker settings explain that values are recalculated when the data changes (there is no clock), that sensors with auto-refresh bring readings every 5, 15 or 30 minutes, and that the bar is hidden on the Home screen and in Data Studio. Related: IoT Sensors, Authentication.

News on the public site

The public site has a News section with a list, article pages, RSS and sitemap, linked from the landing page, plans and courses. The first article presents the ECBYTS Seal.

Layouts: Default, Focus, Analysis and My arrangement

Open View > Layouts&, the command palette or Ctrl+Shift+L to rearrange the screen in one step. Default opens the side and bottom panels at their default size and returns the 3D HUDs to their default corners; Focus closes the side and bottom panels and leaves only the scene; Analysis opens everything with a taller bottom panel for tables and charts. Save current arrangement keeps your own layout as My arrangement. After applying a layout, Undo stays available for 10 seconds.

Data and PNG on the 3D HUD cards

The 3D HUD cards for EIS, costs, ECBT and violations now carry the same Data / PNG bar as the charts. It floats in the corner of the card and appears on hover, on keyboard focus or with Shift+F10. Data opens the table with search and CSV export, and the costs card lists every item, not only the three that fit on the card; PNG downloads the image of the card.

Terms 1.2, Purchase Contract and proof of acceptance

Terms of Use 1.2 and Privacy Policy 1.2 ask every account to accept again, and a new Purchase Contract page, in the 16 languages of the app, covers balance top-ups, the Pro plan and courses. Under the right of withdrawal, within 7 days of a purchase the full amount is refunded to the same card. Each acceptance is now recorded by the server with date, terms version, IP address and browser, as proof of the click; an account can read only its own records. The pricing page shows the AI rates, the AI data notice and the link to the contract.

Quick Start

  1. Open the application at https://ecbyts.com or localhost:4000 for local development.
  2. On first visit, the Welcome Screen lets you choose an init mode: Random Model, Map Picker, Last Location, or Blank.
  3. Use the toolbar at the top to access grouped actions: File, History, Insert, Libraries, View, Analyze, and More.
  4. Click Insert > Add Element to create your first environmental element (well, plume, lake, etc.).
  5. Add Campaigns to define sampling events, then add Observations (parameter + value + timestamp) to your elements.
  6. Use the 3D viewport to visualize your site. Rotate (left-click drag), pan (right-click drag), zoom (scroll).
  7. Go to Optimize tab for analytics, neural networks, and guided environmental workflows.
  8. Export your model using File > Export to save as an ECBT key.

Demo Mode

Click File > Random to instantly create a sample site with elements, campaigns, observations, ticker data, and analytics. Great for exploring features.

Interface Guide

Layout

The application uses a CSS Grid layout with five main areas:

ecbyts interface guide with top toolbar, side panels, central viewport, and bottom Constellation HUD

Panel Reference

These screenshots summarize the main panels and navigation surfaces used by most modules and submodules:

Top toolbar with grouped actions for file, insert, libraries, view, analysis, and utilities Left panel with family browser and element tree Right panel with inspector tabs for project, elements, campaigns, scenes, analytics, and governance Bottom Constellation HUD with graph, report, storyboard, and operational tabs

Dockable Panels

All panels support three states: docked (fixed to edge), minimized (collapsed to edge tab), and floating (draggable, resizable). Right-click a panel title bar for options.

Toolbar Groups

The toolbar uses a flat layout with permanent groups and dropdown menus for progressive disclosure:

GroupPurposeKey Actions
FileProject lifecycle and exchangeNew, Random, Clear Model, Open/Import, Export, Download Key, Share URL, Drawing Plate, Diff & Merge
HistoryEdit history and duplicationUndo, Redo, Copy, Paste
InsertAdd model content and source dataElement, Campaign, Scene, Data Entry Matrix, EDD Import, DXF/CAD, Georeference, Field Variables, Sensors Center, Families
LibrariesReusable content and packaged knowledgeInstalled Libraries Gallery, Marketplace, Library Manager, Import Library, Product Wizard
ViewCamera, layout, and display controls3D, Top, Front, Fit All, 2D/3D Toggle, Reset, Panels, Theme, Labels, Inspector, Symbology, Performance, Customize
AnalyzeAnalytics, modeling, automation, and AITemporal, Interpolation, Analytics/Governance/Cost/Issues panels, Hypothesis Test, MAC Curve, Geology, Voxels, EIS, SAO, Regulatory Standards, Aerial Recognition, ML, Workflows, Pipelines, AI Assistant
MoreAuxiliary workspace utilitiesFocus Mode, Snapshot, Account Usage, About, Documentation

Two additional toolbar surfaces appear contextually: Voxel Controls are shown only when voxel mode is active, and the Edit Ribbon replaces the main toolbar while shape editing is in progress.

View Modes

The application has a View Router that manages four distinct modes, switchable via the toolbar or keyboard:

ecbyts 2D view mode with terrain interpolation overlay
ModeDescription
HomeDashboard grid with project cards, recent activity, and quick actions. No 3D scene loaded.
ActionsFocused on data entry and tabular workflows — elements list, campaigns, observations.
2DTop-down orthographic view. Ideal for site plans, interpolation surfaces, and spatial analysis.
3DFull perspective 3D scene with orbit controls, labels, terrain, and voxel layers.

Lazy 3D Initialization

The Three.js scene only initializes when you first switch to 2D or 3D mode. This keeps the Home and Actions views fast and lightweight.

Element Families (PDPL-U / PDPLU)

Elements are the building blocks of your environmental model. Each element belongs to a family that determines its 3D representation, available properties, and behavior. The classification follows the PDPL-U / PDPLU model.

In ecbyts, PDPL-U and PDPLU refer to the same organizing model: Ponto, Data, Parametro, Leitura, Unidade. This structure underpins the platform's element families, tabular observation views, CSV exports, and the broader organization of environmental records and site entities.

When you see PDPLU in the bottom Constellation HUD, it is the same concept rendered as a flat observation table and export format.

Elements panel listing PDPL-U families and model items in the side inspector
FamilyIDDescription
Environmental Monitoring
Contamination Plumeplume3D volume representing contaminated groundwater or soil. Can be visualized with interpolation surfaces.
Monitoring WellwellVertical borehole used for sampling groundwater. Supports constructive and lithologic SVG profiles.
LakelakeSurface water body. Can hold water quality observations over time.
RiverriverFlowing water body modeled as a linear feature with cross-sections.
SpringspringNatural groundwater discharge point. Important for hydrogeological models.
Sample PointsampleSoil, surface water, or other sampling location.
Geological LayerstratumSubsurface stratum representing different soil/rock types.
MarkermarkerGeneric reference point for any location of interest.
SensorsensorRemote IoT monitoring device. Collects real-time environmental data via external protocols.
Infrastructure
BuildingbuildingInfrastructure element. Used as spatial reference for site layout.
Storage TanktankChemical or fuel storage container. Potential contamination source.
BoundaryboundaryProperty or study area limits. Defines the extent of the model.
Spatial BlueprintblueprintImported CAD/GIS footprint from DXF files. Provides base mapping.
ESG & H&S
Organizational AreaareaPlant sector or zone. Used for H&S metrics and resource allocation.
IndividualindividualPerson, animal, or tree. For H&S (workers) and biodiversity (fauna/flora).
IncidentincidentH&S occurrence: accidents, near-misses, first aid.
Emission Sourceemission_sourceChimney, vent, or fugitive emission point. For atmospheric emission inventories.
Waste Streamwaste_streamSolid waste flow. For waste management and recycling tracking.
Effluent Pointeffluent_pointLiquid effluent discharge point. For effluent quality monitoring.
HabitathabitatBiodiversity area: ecosystems, protected areas, restoration zones.
Special
Intangible AssetintangibleContracts, carbon credits, green energy certificates, environmental licenses.
Generic ElementgenericWildcard type for elements that do not fit any other family.
Geological FaultfaultGeological fault trace or zone. Used in structural geology and seismic hazard models.
Mining & Civil
DamdamWater or tailings containment structure. Used in mining, hydro, and sanitation projects.
Open-pit MinepitSurface benched excavation. Used in mining, quarries, and post-closure remediation.
Fleet & Operations
VehiclevehicleMobile fleet element (trucks, machinery, drones). Used for logistics and emission tracking.
EquipmentequipmentOperational equipment (pumps, generators, instruments). Used for CAPEX/OPEX and maintenance.
Linear Infrastructureinfra_linearLinear built elements: pipes, cables, fences, conveyor belts.
Treatment Systemtreatment_systemRemediation and treatment systems: pump & treat, SVE, bioreactors, oil-water separators, septic systems.
AtmosphereatmosphereAtmospheric zone or air mass. Used for air quality and GHG dispersion modeling.
Transport & Flow
Route & Flowroute_flowLinear directional elements: sampling routes, vehicle routes, pipes, connectors. Supports Manning hydraulics and graph connectivity.
Containers (Hierarchy)
Projectsite_projectTop-level project container grouping all areas and zones of a site.
Areasite_areaDefined area within a project (e.g., contamination source zone, investigation perimeter).
Zonesite_zoneSub-division of an area for granular spatial organization.

Adding Elements

Go to Insert > Add Element, select a family, and the element will appear in the 3D viewport. Drag to position it. Use the Property Inspector (right panel) to edit coordinates, name, and properties.

Campaigns

A Campaign represents a field sampling event — a specific date when a team collected data from multiple elements. Campaigns organize observations chronologically.

Campaigns tab showing campaign records and related environmental sampling data

Observations

An Observation is a single measurement at a specific point in time: a parameter (what was measured), a value (the result), and a timestamp (when). Observations are the core data of the environmental model.

Observation-focused view with temporal measurements linked to elements and campaigns

Scenes

Scenes are saved camera viewpoints and display configurations. They let you quickly switch between different views of your model.

Scenes tab with saved viewpoints and display presets for the environmental model

Stamps & Edges

Stamps are compliance or status tags attached to elements. Edges are directed relationships between elements, forming a knowledge graph of your environmental site.

Stamps and edges interface showing compliance tags and directed relationships between elements

Stamps

20+ predefined tags for element annotation:

Edges

15+ directed relationship types between elements:

Adding Stamps & Edges

Select an element, then use the Stamps tab in the right panel to toggle tags. For edges, use the Edge Editor to create directed relationships between two selected elements.

Unit Conversion Engine

90+ units across 12 dimensions with automatic conversion between compatible units. When observations use different units for the same parameter, the engine converts values transparently for analytics and compliance checks.

Unit conversion controls with engineering units applied to environmental parameters
DimensionUnits
Concentrationmg/L, μg/L, ppm, ppb, mg/kg, μg/kg, meq/L, mol/L
Lengthm, cm, mm, km, ft, in, yd, mi
TemperatureCelsius, Fahrenheit, Kelvin
Flowm³/s, L/s, m³/h, L/min, gal/min
Masskg, g, mg, μg, ton, lb
Aream², ha, km², acre
Volumem³, L, mL, gal
EmissionstCO2e, kgCO2e (GWP: CH4=28, N2O=265, SF6=23500)
Safety ratesper 200k hh (OSHA), per 1M hh (OIT)
Biodiversityspecies count
NoisedB(A)
DimensionlesspH, ratio, percentage

Auto-Conversion

When autoConvert is enabled on an observation, the system converts values to the parameter's default unit automatically. Custom parameters can define their own unit dimensions.

3D Scene

The 3D viewport is powered by Three.js and renders your environmental model in real-time.

3D viewport with terrain surface, environmental elements, and monitoring wells

Camera Controls

ActionMouseTouch
Rotate / OrbitLeft-click + dragOne finger drag
PanRight-click + dragTwo finger drag
ZoomScroll wheelPinch
Select elementLeft-click on elementTap on element
Reset cameraDouble-click backgroundDouble-tap background

Visualization Options

3D Labels

In-scene element labeling using CSS2DRenderer billboards that always face the camera.

3D scene with dynamic labels for elements and environmental measurements

Symbology Profiles

Standardized visual mapping profiles that control how elements are rendered in the 3D viewport. Symbology profiles ensure consistent visual communication across environmental site investigations.

Activating Symbology

Go to View > Symbology in the toolbar to select or manage profiles. The active profile is persisted in the model and included in ECBT exports.

Analytics

The analytics module provides scientific analysis tools for environmental monitoring data, organized as a multi-viewport workspace.

Analytics workspace with Constellation HUD interpolation tab and 3D scene

Available Analyses

EventBus Integration

All analytics viewports communicate via a central pub/sub EventBus. Selecting a data point in one viewport highlights it across all others.

Parameter Filter & Radar (FEAT-FILTER-RADAR-001)

Aggregation engine that groups environmental parameters into 7 canonical classes and computes per-element radar charts for rapid multi-contaminant assessment.

Academic Reference

P95 interpolation method per EPA-240/B-06-003 §A.1.3. Group classification follows EPA QAPP §3.4.2 analyte category schema.

Scenario Simulation

Probabilistic environmental scenario modeling using Monte Carlo and Latin Hypercube Sampling (LHS). Evaluate remediation strategies under uncertainty before committing resources.

Monte Carlo Scenario Simulation modal with BTEX plume scenario and execution controls

Running a Simulation

Go to Analyze > Scenarios MC in the toolbar. Select a scenario, configure distributions, and click Execute. Results target <2 s for 300 runs.

Calculator

The Calculator is a reusable filter pipeline for computing environmental metrics, compound rules, and parameter ratios from live model data.

Calculator panel with environmental metrics, BTEX compliance, and parameter ratios

Calculator items are defined via the Data Entry Matrix in the Constellation HUD and persist in the model.

Import / Export (ECBT)

Guardar e recuperar dados / Save and recover / Guardar y recuperar

Os cards dos tours oferecem exemplos sintéticos para download: CSV de leituras, CSV com erros intencionais, GeoJSON, EDD R2 tabular CSV, modelo JSON e contorno DXF. No CAD, selecione LOCAL para o exemplo training-boundary-v1.dxf: retângulo de 10 × 5 m, área de 50 m². O EDD tabular CSV não substitui uma planilha XLSX de um perfil completo.

Escolha o destino permitido para o lote. Confirme a gravação e reabra a cópia antes de encerrar o trabalho. Choose the authorized destination, confirm saving and reopen the copy. Elija el destino autorizado, confirme y vuelva a abrir la copia.

Destino / DestinationUso / PurposeConferência / Check
Nuvem / Cloud / NubeModelo na conta e organização autorizadasReabrir na conta correta; conferir versão e conteúdo
Local e autosaveRecuperação no navegador/dispositivoConferir snapshot; não confundir com cópia online
Chave / Key / ClaveCópia portável dos dados suportadosImportar em sessão de teste; preservar anexos necessários
EDDDados estruturados por perfil e versãoReimportar e conferir campos, unidades e perdas
CSV, XLSX, JSON e SIGSeleção ou formato interoperável disponível no móduloConferir filtros, CRS e relações; não presumir backup completo
Relatório / Report / InformeApresentação dos resultadosVincular à versão dos dados; não substitui dados editáveis

Compartilhar concede acesso conforme permissão; não cria necessariamente uma cópia independente. Sharing follows permissions and is not necessarily a backup. Compartir no equivale necesariamente a una copia de respaldo.

Retomada local / Local resume / Retomar localmente

Em Modelo ’ Projeto ’ Inicialização, marque Retomar sessão local quando disponível nas opções do modo aleatório. Aguarde a gravação antes de fechar. A cópia fica neste navegador/dispositivo; limpar seus dados pode removê-la. Exporte também uma cópia portável. Último projeto é uma opção distinta, vinculada ao carregamento na nuvem.

Under Model ’ Project ’ Initialization, enable local session resume in random-mode options. Wait for saving before closing. Browser data removal can erase this copy; also export a portable backup. Last project is a separate cloud-loading option.

En Modelo ’ Proyecto ’ Inicialización, active la recuperación local en las opciones del modo aleatorio. Espere a que termine el guardado. Borrar los datos del navegador puede eliminar esta copia; exporte también un respaldo portátil.

Origem do XLSX / XLSX data source / Origen del XLSX

Original preservado recupera a planilha EDD R2 de origem, quando disponível; não incorpora edições posteriores. Dados atuais exporta os campos previstos no template a partir do modelo atual. Nenhuma dessas opções comprova cobertura de todos os módulos: confira unidades, coordenadas, CRS e relações ao reimportar.

Preserved original recovers the source EDD R2 workbook when available, without later edits. Current data exports the template's supported fields from the current model. Check units, coordinates, CRS and relationships on reimport; neither option guarantees all-module coverage.

Original conservado recupera el EDD R2 de origen, sin cambios posteriores. Datos actuales exporta los campos admitidos por la plantilla. Verifique unidades, coordenadas, CRS y relaciones al reimportar.

The ECBT format is the unified serialization format for ecbyts models. It supports both simple and blockchain-backed models.

Export modal with ECBT key format selection and generated key

Export

Import

ECBT Format Variants

Simple models use 6 segments. Blockchain-backed models use 10 segments (adding key ID, hash chain, Merkle root, and ECDSA signature). Both use the ECBT prefix — the format is differentiated by internal structure.

Simple (A):     ECBT.A0000001-{families}-{salt}-{checksum}-{payload}-10000000A.TBCE
Blockchain (B): ECBT.B0000001-{families}-{keyId}-{prevHash}-{merkle}-{signature}-{salt}-{checksum}-{payload}-10000000B.TBCE
Compressed (C): ECBT.C0000001-{families}-{salt}-{crc32}-{payload}-10000000C.TBCE

Family codes encode which element types are present (e.g., “PWM” = Plume, Well, Marker). The checksum is a 4-character hex for integrity verification. Legacy ECO1 keys (without the ECBT envelope) are still accepted on import.

Files Module

Cloud-based file management integrated with Supabase Storage. Attach documents, images, and reports to your environmental model with full versioning and access control.

Accessing Files

Open the Files panel from the right sidebar or use More > Files in the toolbar. Files are synced to Supabase Storage and available across devices when authenticated.

IFC / BIM Export

Export your environmental model to IFC4 format (ISO 16739-1:2018), the international BIM standard for integration with Autodesk Revit, ArchiCAD, and BIM 360.

Exporting to IFC

Go to File > Export > IFC (.ifc). The file can be opened in any IFC-compliant viewer (BIM Vision, IFC.js, xBIM).

Power BI Integration (BI v1)

Tabular BI API designed for analytics tools like Power BI. Endpoints expose a star-model friendly structure.

Interpolation

Spatial interpolation creates continuous surfaces from point observations, essential for mapping contamination plumes and terrain.

Interpolation panel with topographic surface configuration and layer controls

Performance

Heavy interpolation computations run in a Web Worker off the main thread. Results are persisted to IndexedDB to avoid recomputation on reload.

Potentiometric Maps & Plume Generation

Automated spatial analysis from monitoring campaign data, generating potentiometric surfaces and contamination plumes.

Potentiometric mapping workflow with generated groundwater surface and plume analysis

Generating a Potentiometric Map

Ensure your wells have water_level observations in at least one campaign. Go to the Interpolation panel in the Constellation HUD, select the campaign and Water Table layer type, then click Generate.

Voxel Modeling

3D subsurface modeling using volumetric voxels for contamination plume visualization and geochemical analysis.

Voxel-based subsurface visualization for contamination and geological analysis

Neural Networks

Custom neural network module for predictive modeling of environmental data.

ML Studio side panel with trained networks and training data preview

Fine-Tuning Pipeline

Domain-specific fine-tuning pipeline for training language models on environmental data. Uses Qwen2.5 as the base model with LoRA adapters for efficient specialization.

Pipeline Stages

StageDescription
Data CurationExtract training pairs from environmental reports, observations, and compliance data. Auto-generates instruction/response pairs from PDPLU records.
Format ConversionConvert curated data to ChatML/Alpaca format compatible with fine-tuning frameworks (Unsloth, Axolotl).
TrainingLoRA fine-tuning with rank 16, alpha 32. Targets: q_proj, v_proj, k_proj, o_proj. Runs on consumer GPUs (RTX 3090+).
EvaluationAutomated benchmarks: environmental term accuracy, regulatory citation, unit conversion, and CONAMA/CETESB compliance checks.
DeploymentExport GGUF quantized model for local inference via Ollama or LM Studio integration.

Training Data Sources

The pipeline ingests ecbyts model data (elements, observations, campaigns), environmental regulations (CONAMA, CETESB), and domain glossaries to produce a model specialized in Brazilian environmental consulting terminology and workflows.

ML Recognition

Machine learning modules for automated image analysis and environmental feature detection.

Aerial Recognition modal with image source selection for automated feature detection

Aerial Georeferencing

Workflow for georeferencing user-owned aerial or satellite images onto the 3D model.

Aerial georeferencing workflow with control points and map alignment

Current Limits

GeoTIFF embedded coordinates are not auto-read yet (manual GCP works). Images >5 MB increase ECBT payload size and trigger a warning.

Blockchain Integrity

Data integrity is enforced through cryptographic primitives, ensuring environmental data cannot be tampered with after collection.

Export workflow centered on ECBT key generation and cryptographic model portability

Audit Trail

The crypto module works transparently. When blockchain mode is enabled, every observation and campaign update is automatically hashed and chained. The ECBT export includes the full integrity proof.

EIS — EnviroTech Integrity Score

The EIS (EnviroTech Integrity Score) evaluates the quality and trustworthiness of an environmental model using the 3CTA+ framework — a non-compensatory geometric weighted mean across 6 axes.

EIS Dashboard with 3CTA+ donut chart, score axes, and integrity verdict

Score Axes

AxisWeightWhat It Measures
T — Transparency3Evidence of data origin and provenance. Enhanced by academic credentials (1.0x–2.0x).
A — Accuracy3Sensor health, data accuracy, and measurement precision.
Cp — Completeness2Coverage uptime — planned vs. executed readings across the monitoring network.
Ty — Timeliness2Delivery latency — how quickly data reaches the platform after collection.
Cs — Consistency1SI unit consistency and internal coherence across datasets.
Cm — Comparability1Taxonomy alignment — consistent naming and classification enabling cross-site comparison.

Score Interpretation

Veto Mode

In veto mode, if Technicality (T) or Accuracy (A) scores ≤ 2, the EIS is automatically set to 0.0 — a "kill switch" that flags fundamentally unreliable data regardless of other scores.

ECBYTS Seal and Declaration

The ECBYTS Seal is a QR card that publishes, for the loaded model, the net ECBT balance, the EIS data-integrity score, the SDG ring and three proof bands (Technical Responsible with ART, independent audit, environmental agency via the Legal Representative). Anyone who scans the QR opens the public verification page with the registered numbers.

Self-declaration, never a certificate

Level 1 is the ECBYTS Declaration, a self-declared claim in the sense of ISO 14021, printed with "Not a seal nor a certification". The ECBYTS Seal is never a certificate. It serves internal use and B2B transparency; it does not serve to rank companies, to replace an accounting provision (CPC 25 / IAS 37) or as a third-party verified label.

Levels, who issues and what it costs

There are three levels. 1. Declaration: numbers only. 2. RT: the Technical Responsible attaches the ART over the issued numbers. 3. Agency: the Legal Representative attaches an acceptance document from the environmental agency that cites that ART (a filing receipt is not acceptance). The independent auditor is optional from level 2 and never changes the level; the auditor cannot be the RT or the Legal Representative of the same dataset. Every attachment points to the seal id and to the fingerprint of the numbers: if the data changes, the attachment becomes outdated and the seal falls back to Declaration until a new ART.

A seal of a random model is a free simulation for any signed-in account, with fictitious responsibles, and never counts as a seal. A seal of real data is issued only by the data owner with an active Pro account, at no cost to the owner, and only after an RT has accepted. Each responsible (RT, auditor, Legal Representative) pays USD 1 (100 $ECBT) from their own balance or by card when accepting; a partitioned dataset needs one paid attestation per partition and role.

Life cycle: after the last acceptance the seal is provisional for 7 days, the withdrawal window in which a responsible may get the USD 1 back and leave the seal. Then it is valid for 12 months. The owner may revoke it (the public record stays, marked revoked) or issue a new version that supersedes the old one. When the model changes after issuance, the card shows the seal as outdated and asks for a new issuance.

Where to find it

The card appears on the Home screen, in the Actions tab and over the 3D model. Its buttons: Rule (choose the evaluation rule), i (how the seal is calculated), the gear (appearance: show or hide the EIS ring, SDG ring, proof bands and drop; numbers and QR do not change), My seals (issued seals, state, who sees what, invitations), attachments and Issue. Hovering or clicking a ring sector explains it and leads to the data. The guided tour opens with ?tour=selo-ecbyts.

How the numbers are calculated, step by step

The seal uses the same engines as the EIS and ECBT panels, with stricter rules. The evaluation rule (AURUM, GAIA and the others) does not change the ECBT or the EIS: it sets the mandatory SDGs, the sub-preset of each front and the label printed on the seal. All formulas below are in the code; the worked examples at the end of this section are computed by that same code.

Step 1. Active compliance preset

The active compliance preset provides the EIS weights. With no preset active, the default weights apply (T 3, A 3, Cp 2, Ty 2, Cs 1, Cm 1). If the binding is invalid, the preset is revoked or its contentHash differs from the one recorded at activation, the context is blocked and the seal shows no numbers. A preset without EIS weights (for example the CETESB risk preset) leaves the seal without EIS.

Step 2. EIS (data integrity, 1 to 5)

Six core axes get a score from 1 to 5 from the observations of all elements. When an axis has no evidence it falls back to a heuristic score, which is shown as such in the examples. The four progressive axes (V, U, Un, Ex) are drawn on the ring but do not enter the number.

T  (traceability)  m = mean credential multiplier of the readings
                   (common 1.0 · professional 1.2 · pos_graduado 1.4 · mestre 1.6 · doutor 2.0)
                   m >= 1.8 ’ 5 · >= 1.4 ’ 4 · >= 1.2 ’ 3 · >= 1.0 ’ 2 · else 1
                   +0.5 if >= 90% of readings have an author (cap 5)
                   no readings ’ 4 if any element has name and description, else 3
A  (accuracy)      sensors: operational / total; else readings within limits
                   (high relative uncertainty > 50% counts half);
                   ratio >= 0.95 ’ 5 · >= 0.80 ’ 4 · >= 0.60 ’ 3 · >= 0.40 ’ 2 · else 1
                   calibration: calibrated +0.5 · expired 0.5 · uncertain 0.7 · unknown 1.0
                   no evidence ’ 5 if any element has coordinates, else 2
Cp (completeness)  executed / planned readings of the campaigns
                   >= 0.95 ’ 5 · >= 0.80 ’ 4 · >= 0.60 ’ 3 · >= 0.30 ’ 2 · else 1
                   no numeric plan ’ 4 if there is a boundary element, else 3
Ty (timeliness)    median age of the readings at the reference date (days)
                   <= 30 ’ 5 · <= 90 ’ 4 · <= 180 ’ 3 · <= 365 ’ 2 · else 1
Cs (consistency)   readings whose unit is in the unit catalog / readings with a unit
                   >= 0.95 ’ 5 · >= 0.80 ’ 4 · >= 0.60 ’ 3 · >= 0.40 ’ 2 · else 1
                   no readings ’ 2
Cm (comparability) (mapped parameters + readings in the default unit) / (2 × readings)
                   same bands as Cs; without a parameter catalog ’ 4 if >= 2 campaigns, else 2

EIS =   axis_i ^ (w_i / £w)      rounded to 2 decimals (geometric mode)
verdict: >= 4.50 Audit Ready · >= 3.50 Management Ready · else Critical Data
º (confidence) = EIS / 5         clamped to [0, 1]

The weighted geometric mean does not let a strong axis hide a weak one as much as an arithmetic mean would. "Critical Data" (EIS below 3.50) is printed next to the EIS. The veto mode (EIS = 0 when T or A is 2 or less) exists in the engine but is not applied on the seal path: the Rule screen lists it as planned.

Step 3. ECBT of the seal (net balance)

The main number is the net balance of realized assets minus environmental liabilities. Liabilities are the CAPEX and OPEX recorded on the elements (or the ERP chain when enabled), with a fixed 25% uncertainty. Natural capital never enters the main number: it goes to a separate informative line (step 4). The band is the root-sum-square uncertainty (GUM) widened by data confidence º.

V_net     = £ realized assets  £ liabilities           (currency of the model)
u_i       = |value_i| × u_frac_i                         (liabilities: u_frac = 0.25)
U         = ( £ u_assets² + £ u_liabilities² )           (GUM, root-sum-square)
widener   = 1 + 2 × (1  º)                               (º = 1 ’ ×1 · º = 0.5 ’ ×2 · º = 0 ’ ×3)
band      = [ V_net  U × widener ; V_net + U × widener ]
ECBT %    = V_net / denominator × 100                    (only with a persisted denominator)

The ECBT percentage divides the net value by the denominator STORED in the model (model.financial.denominator: revenue, EBITDA or market value, with currency, fiscal year and source). The random model stores the net revenue of the generated income statement (source "ERP-derived"). With no stored denominator, or with a currency different from the net value, the seal prints ECBT % n/d and the absolute net value (for example "net R$ 1.0 mi"). Revenue, EBITDA, market value and similar figures typed only in the session are ignored on purpose: whoever verifies the seal could not reproduce the percentage. Fines and the fine impact score stay in the ECBT panel and do not enter the seal.

Step 4. Natural capital line (separate)

Natural capital is valued per element: family × area × R$/m² from the seed catalog (tier "expected", unless a library or the user overrides it). Area comes from the element, or from its polygon (shoelace formula), or for rivers from path length × width (5 m by default); a tree or animal is valued per unit. Each entry carries 30% uncertainty. Only catalog values or values with attached evidence are eligible; a value typed without evidence is declared, stays out and is reported only as a warning.

value_e   = area_e (m²) × price_family (R$/m²)             (individual: price per unit)
NC        = £ eligible value_e                            (provenance catalog or evidenced)
U_NC      = ( £ (value_e × 0.30)² ) × (1 + 2 × (1  º))
printed   = "natural capital +R$ & (separate)"           (never added to V_net)
Step 5. Intervention ratio and severity

For each point and parameter only the most recent reading counts, because the seal declares the current condition. The reading is converted to the unit of the intervention value (VI) of the regulatory matrix; the VI is the smallest intervention threshold (VI, CMA or severity "intervention"), never a minimum bound such as pH. The name is honest: it is a compliance ratio, not a toxicological hazard quotient.

ratio_i   = reading_i / VI_i
R         = min( max ratio_i ; 1 )                        (0 when no reading has a VI)
alert     = any ratio_i >= 1                              ("ALERT: n readings in Intervention")
S         = max( 1  º ; R )
label     = S >= 0.7 high · S >= 0.4 medium · else low
Step 6. SDG ring

Each of the 17 SDGs gets only its impact score (0 to 1) from the SDG overlay. Below the threshold (0.5 by default) the sector points inward in red (harm); above it points outward in the SDG color (contribution). Data coverage and confidence never add to the impact: they become the data quality and the evidence tier. The mandatory SDGs come from the rule (AURUM requires all 17); a mandatory SDG without data is drawn dashed as "no data" and never disappears.

s = impact / 5            t = threshold (0.5)
harm:          s < t   magnitude = (t  s) / t
contribution:  s >= t  magnitude = (s  t) / (1  t)
quality       = ( coverage/5 × confidence/5 )            (one of them zero ’ quality zero)
tier          = quality >= 0.6 measured · >= 0.3 estimated · else claimed
SDGs covered  = SDGs with an impact score                 (goes into the AURUM line)
Step 7. Proof bands

Each dataset (campaign) weighs as many observations as it has (an empty campaign weighs 1). A dataset counts for the RT band when it has an RT and a valid ART number (8 to 24 letters or digits after removing punctuation); for the audit band when, on top of that, an auditor who is neither the RT nor the Legal Representative attached a report with a SHA-256 hash; for the agency band when, on top of the ART, the Legal Representative recorded the agency document. Pending acceptances do not count.

band %   = £ observations of the datasets that qualify / £ observations × 100   (rounded to 0.1)
painted  = clockwise from the top left, in proportion to band %
Step 8. Rule, fronts and the AURUM line

Each rule is composed of one sub-preset per front (health risk, soil and groundwater guidance values, water, air, GHG method, occupational exposure). The default of each front is the most restrictive available sub-preset (limit fronts) or the newest version of the same family (method fronts). The RT may only tighten a limit or move a method to a newer version, always with a justification; AURUM locks everything. The composition gets an FNV-1a 32-bit hash that the server recomputes at issuance and refuses when it differs. Every seal also prints its result on the AURUM 1.0 scale, so a GAIA seal shows how it would look under the strictest rule.

fronts line   = "front=sub-preset;& · hash8"              (fronts sorted by id)
hash8         = FNV-1a 32 bits of {"rule":"NAME VERSION","fronts":[[front, id, version], &]}
AURUM line    = "AURUM 1.0 · ODS a/17 · frentes b/6"     (a = SDGs with impact, b = composed fronts, "n/a" excluded)
comparable    = same rule and same MAJOR version          (trend and supersede skip other majors)
variant label = "REGRA GAIA 1.0 · PERSONALIZADA · a1b2"  (owner) or "· RT · a1b2" (RT); a1b2 = first 4 hex of SHA-256
Step 9. Formatting printed on the seal

ECBT %: whole number from 10, one decimal from 1 to 10, two decimals below 1, "<0,01%" below 0.01, with a sign. Money: thousand, million and billion abbreviations with one decimal under 100. EIS: one decimal. The QR of a preview carries the numbers in the link and the verification page states "preview not registered"; a registered seal carries only its id.

Step 10. Issuance, fingerprint and server recalculation

At issuance the browser sends a snapshot of up to 8 KB with the printed fields (ECBT, net value, EIS, verdict, intervention line, AURUM line, rule label, fronts line, site coordinates). The server stores its SHA-256 as the fingerprint; the public page recomputes it and says whether the record is intact. Any change in the numbers produces another fingerprint and asks the responsibles to accept again.

The reproducible recalculation (shadow mode) rebuilds the numbers from the model data instead of trusting the browser: personal keys are removed, the same engines run, and each recalculated field (ECBT, net value, EIS, verdict, AURUM line) is compared with what the browser sent. A divergence is recorded, not blocked. After each issuance the browser sends this data snapshot, compressed, to the server function seal-recompute, which runs the same engine bundle and records the status (match, mismatch, unsupported, too large, error), the data hash and the engine hash. The server keeps only the hashes, never the model data, and compares against the numbers stored at issuance, not against what arrives with the data. Issuance and the public page do not depend on it yet. Its reproducible fingerprint is:

dataSha256       = SHA-256( canonical JSON of the data snapshot )   (keys sorted, no personal data, no images)
catalogSha256    = SHA-256( canonical JSON of the effective natural capital catalog )
reproFingerprint = SHA-256( canonical JSON of { schema: "ecbyts.seal.repro/1", dataSha256, engine,
                                                rule: { name, version, frontsLine }, catalogSha256, fields } )

Known limits

Read the seal with these limits in mind: the ECBT percentage exists only when the model stores a denominator; several EIS axes fall back to heuristics when the model lacks plans, parameter catalogs or QA/QC evidence; the discount rate, maximum data age, veto, server-side credential check and ±1 weight robustness test are shown on the Rule screen as planned and do not change the numbers yet; liabilities are a management estimate, not an accounting provision; natural capital uses unit value transfer from global studies.

The tables below are generated from the code by scripts/docs/gen-seal-presets-doc.mjs: every rule, field, front and sub-preset with its version and definition hash, the version history, and the worked examples. A CI check fails when the code changes and this page was not regenerated.

Evaluation rules and versions (generated) / Regras e versões (gerado do código)

Rule / RegraVersionCase / CasoRequired SDGs / ODS obrigatóriosRequired fronts / FrentesDefault fronts line / Linha das frentesDefinition hash
AURUM (gold / ouro)1.1Regra Ouro (padrão): a mais exigente, sem ajuste1 Pobreza, 2 Fome, 3 Saúde, 4 Educação, 5 Gênero, 6 Água, 7 Energia, 8 Trabalho, 9 Indústria, 10 Desigualdade, 11 Cidades, 12 Consumo, 13 Clima, 14 Vida na água, 15 Vida terrestre, 16 Instituições, 17 Parceriashealth-risk, soil-gw-guidance, water-quality, air-quality, ghg-method, occupationalghg-method=global-ghg-protocol-corporate;health-risk=br-sp-cetesb-risk-v401;occupational=global-acgih-tlv-bei-2024;soil-gw-guidance=br-conama-420-ar4 · a6d4c0c77d72c7865e96
GAIA1.1Terreno com contaminação no solo ou na água subterrânea3 Saúde, 6 Água, 12 Consumo, 14 Vida na água, 15 Vida terrestrehealth-risk, soil-gw-guidance, water-qualityhealth-risk=br-sp-cetesb-risk-v401;soil-gw-guidance=br-conama-420-ar4 · f639a984339e67d71ffc
VULCAN1.1Fábrica ou operação industrial em funcionamento3 Saúde, 6 Água, 9 Indústria, 12 Consumo, 13 Climahealth-risk, air-quality, ghg-method, occupationalghg-method=global-ghg-protocol-corporate;health-risk=br-sp-cetesb-risk-v401;occupational=global-acgih-tlv-bei-2024 · 5f7c9b1dc0814c58406e
CERES1.1Fazenda, lavoura ou criação de animais2 Fome, 6 Água, 12 Consumo, 13 Clima, 15 Vida terrestresoil-gw-guidance, water-quality, ghg-methodghg-method=global-ghg-protocol-corporate;soil-gw-guidance=br-conama-420-ar4 · bcbe58046f471bf45335
PLUTO1.1Mina, lavra ou barragem de rejeito6 Água, 8 Trabalho, 12 Consumo, 13 Clima, 15 Vida terrestrehealth-risk, soil-gw-guidance, water-quality, occupationalhealth-risk=br-sp-cetesb-risk-v401;occupational=global-acgih-tlv-bei-2024;soil-gw-guidance=br-conama-420-ar4 · 3b869f57632bcdbc8d3a
ATHENA1.1Obra, loteamento ou expansão urbana3 Saúde, 6 Água, 11 Cidades, 13 Clima, 15 Vida terrestrehealth-risk, soil-gw-guidance, air-qualityhealth-risk=br-sp-cetesb-risk-v401;soil-gw-guidance=br-conama-420-ar4 · a7bd159f49602c6b586e
ARTEMIS1.1Área natural, reserva ou recuperação de vegetação6 Água, 13 Clima, 14 Vida na água, 15 Vida terrestresoil-gw-guidance, water-quality, ghg-methodghg-method=global-ghg-protocol-corporate;soil-gw-guidance=br-conama-420-ar4 · 9d060dff45ca28aac20d
Adjustable fields / Campos ajustáveis
KeyField / CampoAccessDefaultOwner range / Faixa do donoRT range / Faixa do RTStepIn the calculation?Rail / Onde entraWhy / Para quê
wTPeso da transparência dos dados (EIS)adjustable21 a 31 a 41applied / aplicadoEIS axis weight / peso de eixo do EISPeso do eixo de transparência e evidência de origem dos dados. Fora do padrão 2, este ajuste troca o peso do eixo T do método EIS ativo (não troca o método nem os outros eixos).
wAPeso da acurácia dos dados (EIS)adjustable31 a 3—1applied / aplicadoEIS axis weight / peso de eixo do EISPeso do eixo de acurácia dos dados. Não mede exposição de pessoas nem risco à saúde. Fora do padrão 3, este ajuste troca o peso do eixo A do método EIS ativo.
ageIdade máxima do dadoadjustable24 meses12 a 366 a 486planned / previstoRecompute age filter (P08a) / corte de idade no recálculo (P08a)PREVISTO (P08a, rail recompute): o corte que exclui dado mais velho do recorte, com razão visível, ainda não está implementado. Medido em 04/10/2026: nenhum motor lê este campo e ele não tem eixo EIS — corte de idade não é peso de eixo. O valor vai na faixa e no registro da emissão, e ainda não muda a conta.
discTaxa de descontoadjustable3% a.a.0 a 60 a 101planned / previstoValuation — discount rate (P08b) / valuation — taxa de desconto (P08b)PREVISTO (P08b, rail valuation): a taxa que traz custos futuros de remediação ao valor de hoje ainda não está implementada. Medido em 04/10/2026: nenhum motor lê este campo e ele não tem eixo EIS — o EIS mede qualidade de dado, não valor econômico; e o 0 da faixa viraria peso 0, que o motor recusa. O valor vai na faixa e no registro da emissão, e ainda não muda a conta.
recalcMudança que marca o selo como desatualizadoadjustable5%3 a 10—1planned / previstoSeal lifecycle (P08c) / ciclo de vida do selo (P08c)PREVISTO (P08c, rail lifecycle): o limiar que marca o selo como desatualizado ainda não está implementado. Medido em 04/10/2026: é política de reemissão, não peso — não tem eixo EIS e não move o número do selo. O valor vai na faixa e no registro da emissão, e ainda não muda a conta.
voValor orientador específico do sítiort_only0—0 a 11planned / previstoValidation / manifest (P08d) / validação / manifesto (P08d)PREVISTO (P08d, rail validation): trocar o valor da norma pelo de uma análise de risco do sítio (0 = norma, 1 = análise de risco) ainda não está implementado. Medido em 04/10/2026: é um interruptor de qual referência vale, não um peso, e não tem eixo EIS; declarar um eixo daria números diferentes conforme o eixo escolhido. O valor vai na faixa e no registro da emissão, e ainda não muda a conta.
Locked for everyone / Travado para todos
Fronts and sub-presets / Frentes e sub-presets
Front / FrenteLabelKind
health-riskRisco à saúde humanalimit
soil-gw-guidanceValores orientadores solo e água subterrânealimit
water-qualityÁgua (potabilidade e corpos d'água)limit
air-qualityArlimit
ghg-methodGases de efeito estufa (método)method
occupationalExposição ocupacionallimit
Sub-presetFront / FrenteKindVersionFamilyStrictnessAvailableIn compliance catalogServer mirrorLabelHash
br-sp-cetesb-risk-v401health-risklimit4.01—5yes / simyes / simin sync / igualCETESB planilha v4.01 (alvo 1e-5)49cb0c6d91df
us-epa-rags-rslhealth-risklimit2024.0—6no / nãono / nãoin sync / igualEPA RAGS/RSL (alvo 1e-6)0fb82be7162e
br-conama-420-ar4soil-gw-guidancelimit2009.0—5yes / simyes / simin sync / igualCONAMA 420/2009fc21e03ed7b6
br-sp-cetesb-dd125-2021soil-gw-guidancelimit2021.0—6no / nãono / nãoin sync / igualCETESB DD 125/2021 (VRQ/VP/VI)d59f1b9ffe8a
br-ms-portaria-888-2021water-qualitylimit2021.0—5no / nãono / nãoin sync / igualPortaria GM/MS 888/20213c4a55361826
br-conama-357-2005water-qualitylimit2005.0—5no / nãono / nãoin sync / igualCONAMA 357/20055acf5316a7a0
br-conama-430-2011water-qualitylimit2011.0—5no / nãono / nãoin sync / igualCONAMA 430/20117a7c9c9fcc53
br-conama-506-2024air-qualitylimit2024.0—5no / nãono / nãoin sync / igualCONAMA 506/2024961adcc28387
global-ghg-protocol-corporateghg-methodmethod2015.1GHG Protocol0yes / simyes / simin sync / igualGHG Protocol Corporate (AR4/AR5)27581746b318
global-ghg-protocol-corporate-ar6ghg-methodmethod2024.0GHG Protocol0no / nãono / nãoin sync / igualGHG Protocol com IPCC AR6e059292ff4d8
br-nr7-pcmso-nr15-ltoccupationallimit2022.1—5yes / simyes / simin sync / igualNR-7 / NR-15 (LT)23928d509d1b
global-acgih-tlv-bei-2024occupationallimit2024.0—6yes / simyes / simin sync / igualACGIH TLV/BEI 20243a5285170d53
Version history / Histórico de versões
IdVersionDefinition hashFirst seen / DesdeKind
ARTEMIS1.05ff854afcbb52026-10-04seal-rule
ARTEMIS1.145ca28aac20d2026-10-04seal-rule
ATHENA1.0ee7cf8167ca12026-10-04seal-rule
ATHENA1.149602c6b586e2026-10-04seal-rule
AURUM1.02e763bade9422026-10-04seal-rule
AURUM1.17d72c7865e962026-10-04seal-rule
CERES1.05aee2e500e142026-10-04seal-rule
CERES1.16f471bf453352026-10-04seal-rule
GAIA1.0f99929b0ba012026-10-04seal-rule
GAIA1.1339e67d71ffc2026-10-04seal-rule
PLUTO1.024c6d1643b0f2026-10-04seal-rule
PLUTO1.1632bcdbc8d3a2026-10-04seal-rule
VULCAN1.015743e97b7912026-10-04seal-rule
VULCAN1.1c0814c58406e2026-10-04seal-rule
br-conama-357-20052005.05acf5316a7a02026-10-05seal-sub-preset
br-conama-420-ar42009.025faee7045e0 ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
br-conama-420-ar42009.0fc21e03ed7b6 ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
br-conama-430-20112011.07a7c9c9fcc532026-10-05seal-sub-preset
br-conama-506-20242024.0ad3a9f866bf3 ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
br-conama-506-20242024.0961adcc28387 ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
br-ms-portaria-888-20212021.075320be9313c ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
br-ms-portaria-888-20212021.03c4a55361826 ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
br-nr7-pcmso-nr15-lt2022.141a3b9aabd6a ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
br-nr7-pcmso-nr15-lt2022.123928d509d1b ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
br-sp-cetesb-dd125-20212021.0c357b5dd950c ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
br-sp-cetesb-dd125-20212021.0d59f1b9ffe8a ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
br-sp-cetesb-risk-v4014.01601bf2373afe ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
br-sp-cetesb-risk-v4014.0149cb0c6d91df ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
global-acgih-tlv-bei-20242024.03ddcad6f7431 ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
global-acgih-tlv-bei-20242024.03a5285170d53 ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
global-ghg-protocol-corporate2015.117fa554c63ee ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
global-ghg-protocol-corporate2015.127581746b318 ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
global-ghg-protocol-corporate-ar62024.0ca700cc24a18 ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
global-ghg-protocol-corporate-ar62024.0e059292ff4d8 ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset
us-epa-rags-rsl2024.08dd4bab6174b ⚠ changed without a version bump / mudou sem subir versão2026-10-02seal-sub-preset
us-epa-rags-rsl2024.00fb82be7162e ⚠ changed without a version bump / mudou sem subir versão2026-10-05seal-sub-preset

Worked examples (computed by the code) / Exemplos calculados pelo código

Example model / modelo de exemplo: 2 wells, 1 ha boundary, 1 habitat with a typed value, 2 campaigns, CAPEX + OPEX, reference date 2026-10-01
1. EIS
Axis / EixoScore 1–5Source / OrigemWeight / PesoFactor = scorew/Σw
T2.50measured / medido32.503/12 = 1.2574
A5.00heuristic fallback / heurística35.003/12 = 1.4953
Cp4.00heuristic fallback / heurística24.002/12 = 1.2599
Ty4.00measured / medido24.002/12 = 1.2599
Cs5.00measured / medido15.001/12 = 1.1435
Cm4.00heuristic fallback / heurística14.001/12 = 1.1225
2. ECBT of the seal / ECBT do selo
ElementFamilyValue / ValorProvenance / OrigemuHow / Como
AREAboundaryR$ 150,000catalog0.30boundary × 10000.0 m² × R$ 15/m²
APPhabitatR$ 50,000declared0.30Override direto (habitat)
3. Intervention ratio and severity / Razão de intervenção e severidade
Reading / LeituraValueVI (example)Ratio = value / VI
benzene (PM-01)350.60
toluene (PM-01)1207000.17
benzene (PM-02)851.60
4. Proof bands / Faixas de prova
Dataset (campaign)Observations / PesoARTIndependent auditOrgan via RL
Mar/2026120yes / simyes / simyes / sim
Ago/202660yes / simno / nãono / não
Set/202620no / nãono / nãono / não
5. SDG ring / Anel ODS
6. Formatting and trend / Formatação e tendência
7. Server recalculation (shadow mode) / Recálculo do servidor (modo sombra)
ItemValue / Valor
Engine / Motorseal-recompute/2
Data schemaecbyts.seal.data/1
Max data snapshot for the recalculation / limite do snapshot de dados do recálculo5242880 bytes (the issued card snapshot is separate: up to 8 KB / o snapshot do cartão emitido é outro: até 8 KB)
Fields compared / campos comparadosecbt, ecbtNet, eis, verdict, aurum
Personal keys removed / chaves pessoais retiradas3
Server fields / campos do servidor{"ecbt":null,"ecbtNet":"líquido −R$ 1,0 mi","eis":"3,8","verdict":null,"aurum":"AURUM 1.1 · ODS 2/17 · frentes 0/6"}
Numbers / números{"eis":3.83,"kappa":0.766,"severity":0.234,"severityLabel":"baixa","ecbtNet":-1000000,"naturalCapital":150000,"currency":"BRL","odsCovered":2}
dataSha25697e70fe365ac8f1b641470fae8ce4a2f0e719cdc6f0ab0dbc74c4d67088f1103
catalogSha2563e26b4b2055590dcf0e7b8a06b793a2e115c42fdbc2ed6fd0da2f255c4465b6f
reproFingerprintd7dc10480a0d1ca507cc701bfdae1ae7f733c5aeb929995e556daabd721b4f34
Snapshot bytes1356
Comparison / comparaçãomatch
8. Parameters / Parâmetros
Parameter / ParâmetroValue from code / Valor no código
EIS default weights / pesos padrão{"T":3,"A":3,"Cp":2,"Ty":2,"Cs":1,"Cm":1}
T credential multipliers{"common":1,"professional":1.2,"pos_graduado":1.4,"mestre":1.6,"doutor":2}
EIS verdicts / vereditosAudit Ready 4.5–5 · Management Ready 3.5–4.49 · Critical Data 0–3.49
Session-only denominators ignored by the sealrevenueBrl, ebitdaBrl, marketCapBrl, totalAssetsBrl, totalDebtBrl, cashBrl
Withdrawal window / desistência7 days
Seal validity / validade12 months
Organ acceptance documentsparecer_tecnico, termo_de_reabilitacao, licenca_ambiental, oficio_de_aceite, certificado_de_conformidade
Attestation price textEsta atestação custa USD 1 (100 $ECBT) do meu saldo.
Natural capital familyLow R$/m²Expected R$/m² (seal)High R$/m²Source / Fonte
boundary51550SNUC Lei 9.985/2000 + INCRA terra rural 2024
habitat82580WWF Living Planet + ESVD 2020 biodiversity
site_area1310INCRA terra rural média BR 2024
area3825BNDES Fundo Clima 2026-05 Mata Atlântica
river1030100TEEB 2010 Wetlands + ANA Res. 1.245/2024
lake82080TEEB 2010 Wetlands + ESVD 2020
spring2060200TEEB high-value + Lei 12.651/2012 APP
individual50150500TEEB carbon stock + biodiversidade unitária

SAO Matrices

Environment, Safety & Health (ESH) risk assessment using Systematic Assessment of Operations matrices.

SAO risk matrix module for environment, safety, and health assessment

Compliance Validation

Multi-level compliance validation against environmental regulatory standards.

Regulatory Standards panel with CONAMA/CETESB threshold values for soil and groundwater

Built-in Regulations

Domain Validator Engine

A generic, extensible validation engine that loads domain-specific rules from JSON templates:

Compliance Presets

A compliance preset bundles, under one id and version, the regulatory basis of a model: authority and jurisdiction, legal basis, effective dates, validation profile, GHG factors (GWP version and horizon), emission factor registry, EIS weights, risk targets, coordinate system, units, currency, language and audit retention.

Activating a preset records its id, version and contentHash. The EIS and the seal only use it while the stored preset still has that hash and is not revoked; otherwise the calculation is blocked instead of silently changing. The CETESB risk preset carries the risk targets (ILCR 1e-5, HQ 1, engine CETESB v4.01); the worldwide Pareto envelope uses the strictest target (1e-6).

Presets are also the sub-presets of the ECBYTS Seal fronts. The catalog below, with versions, hashes and the version history, is generated from the code; a version or content change shows up here on the next generation.

Canonical catalog (generated) / Catálogo canônico (gerado do código)

PresetVersionCategoryAuthorityEffective / VigênciaLegal basisGWPEIS weightsRisk targetSeal frontcontentHashcomponentsHashDefinition hash
br-conama-420-ar4
Resolução CONAMA nº 420/2009 — Solos Contaminados (Brasil)
2009.0A_regulatorsCONAMA · federal · BR2009-12-30Resolução CONAMA 420/2009; Decisão UNFCCC 24/CP.19AR4 / 100 y{"T":4,"A":3,"Cp":2,"Ty":2,"Cs":1,"Cm":1}—soil-gw-guidance21a621d5759cef7e13f3b0bb16338f55233d
global-ghg-protocol-corporate
Padrão corporativo de contabilização e relato de inventário de GEE (revisado em 2015)
2015.2B_corporate_frameworksGHG Protocol · international · GLOBAL2015-01-01GHG Protocol Corporate Accounting and Reporting Standard (Revised Edition, 2004); GHG Protocol Scope 2 Guidance (2015)AR5 / 100 y{"T":3,"A":4,"Cp":2,"Ty":2,"Cs":1,"Cm":1}—ghg-method9ce256cef21339e27f083525ceec8d473f65
global-pareto-most-restrictive-worldwide
ecbyts Pareto — Envelope Mais Restritivo Mundial (2026)
2026.1C_pareto_envelopeecbyts · international · GLOBAL2026-01-01min(CONAMA 420, CETESB DD256, EPA RCRA, EU CSRD/ESRS, ISSB S2); Pareto envelope conservador derivadoAR6 / 100 y{"T":3,"A":4,"Cp":3,"Ty":2,"Cs":1,"Cm":1}ILCR 0.000001 · HQ 1 · RES_URB · CETESB v4.01—acc993a7c411c9ea434e9a6b2596554c9ccf
global-aspirational-net-zero-2050
UNFCCC Paris Agreement Art. 4.1 — Net Zero 2050 / SBTi 1.5°C
2021.1D_aspirational_net_zeroUNFCCC · international · GLOBAL2021-11-01Paris Agreement Art. 4.1; SBTi 1.5°C pathwayAR6 / 100 y{"T":2,"A":3,"Cp":4,"Ty":2,"Cs":1,"Cm":1}——e1ff9132f287b06d0aa2168e6a5261984b99
global-sector-mining-icmm
ICMM Performance Expectations 2024 + IBRAM Diretrizes Mineração BR
2024.0E_sectoralICMM · sectoral · GLOBAL2024-01-01ICMM Performance Expectations 2024; IBRAM Diretrizes Mineração BRAR6 / 100 y{"T":3,"A":3,"Cp":2,"Ty":3,"Cs":1,"Cm":1}——a8350f3ea2b4287bf8f8bba99e136ed3cad4
global-legacy-kyoto-sar-1997
Protocolo de Kyoto Art. 3 (1997) — IPCC SAR Working Group I
1997.0F_historicalUNFCCC · international · GLOBAL1997-12-11 → 2012-12-31Kyoto Protocol Art. 3 (1997); IPCC SAR Working Group ISAR / 100 y{"T":3,"A":3,"Cp":2,"Ty":2,"Cs":1,"Cm":1}——5468cb966619db9171bf2b3370d0c62eff20
global-acgih-tlv-bei-2024
ACGIH TLV-TWA + BEI 2024 — Limites de Exposição Ocupacional (Global)
2024.0Saúde Ocupacional GlobalACGIH · international · GLOBAL2024-01-01ACGIH TLVs and BEIs 2024 — Threshold Limit Values and Biological Exposure Indices; NIOSH REL (Recommended Exposure Limits); OSHA PEL (Permissible Exposure Limits) — fallback USAR6 / 100 y{"T":5,"A":2,"Cp":2,"Ty":1,"Cs":1,"Cm":1}—occupational7f4f88754f6802112ec5cc141a55b6f4e61e
br-nr7-pcmso-nr15-lt
NR-7 PCMSO + NR-15 Limites de Tolerância + NR-9 PGR + PPP/INSS (Brasil)
2022.2Saúde Ocupacional BrasilMTE/SEPRT · federal · BR2022-01-03NR-7 PCMSO — Programa de Controle Médico de Saúde Ocupacional (Portaria 6.734/2020); NR-15 — Atividades e Operações Insalubres (Limites de Tolerância LT); NR-1 — Gerenciamento de Riscos Ocupacionais (GRO) e Programa de Gerenciamento de Riscos (PGR); NR-9 — Avaliação e Controle das Exposições Ocupacionais a Agentes Físicos, Químicos e Biológicos; INSS PPP — Perfil Profissiográfico PrevidenciárioAR6 / 100 y{"T":5,"A":2,"Cp":2,"Ty":1,"Cs":1,"Cm":1}—occupational9389ee478e59582f0cd31a0d8d97445439cf
br-sp-cetesb-risk-v401
CETESB 4.01
4.01stateCETESB · state · BR-SP2026-06-01DD 103/2007/C/E; DD 038/2017/C; Planilhas de Avaliação de Risco v4.01 (jun/2026)—absent: the seal shows no EIS with this preset active / ausente: o selo sai sem EISILCR 0.00001 · HQ 1 · RES_URB · CETESB v4.01health-riskdac2a4cf8355d296934660aca42f55bdbbe0
EIS weight presets / Presets de pesos do EIS
PresetTACpTyCsCmSum
default33221112
mining44221114
remediation22441114
water34213114
Model presets / Presets de modelo
PresetNameCategoryFamiliesReferenceParameters
gac_gas_stationGAC Gas Stationgacwell, plume, boundary, tank, remediation, buildingCONAMA 420/2009 + CETESB DD-256/2016 (groundwater)13
gac_industrialGAC Industrial Plantgacwell, plume, boundary, building, remediation, wasteCONAMA 420/2009 + CETESB DD-256/2016 (groundwater)16
ghg_inventoryGHG Inventoryinventoryboundary, building, tankPadrão corporativo de inventário de GEE + PBGHGP (atmospheric)11
car_ruralRural Environmental Registryinventoryboundary, river, lake, springLei 12.651/2012 (Codigo Florestal) + SICAR (land)5
remediationRemediation Projectremediationwell, plume, boundary, remediation, tank, buildingCONAMA 420/2009 + CMA especificas do site (groundwater)14
water_permitWater Use Permitpermitwell, river, lake, spring, boundaryLei 9.433/1997 + ANA/DAEE (surface_water)9
Version history / Histórico de versões
IdVersionDefinition hashFirst seen / DesdeKind
br-conama-420-ar42009.016338f55233d2026-10-02compliance-preset
br-nr7-pcmso-nr15-lt2022.10c2b13fe943c2026-10-04compliance-preset
br-nr7-pcmso-nr15-lt2022.28d97445439cf2026-10-04compliance-preset
br-sp-cetesb-risk-v4014.01a42f55bdbbe02026-10-02compliance-preset
global-acgih-tlv-bei-20242024.01a55b6f4e61e2026-10-02compliance-preset
global-aspirational-net-zero-20502021.16a5261984b992026-10-02compliance-preset
global-ghg-protocol-corporate2015.1a763e9a0348c2026-10-04compliance-preset
global-ghg-protocol-corporate2015.2ceec8d473f652026-10-04compliance-preset
global-legacy-kyoto-sar-19971997.070d0c62eff202026-10-02compliance-preset
global-pareto-most-restrictive-worldwide2026.12596554c9ccf2026-10-02compliance-preset
global-sector-mining-icmm2024.09e136ed3cad42026-10-02compliance-preset

Validation Profiles

Pluggable compliance rule engine for domain-specific validation beyond the built-in CONAMA/CETESB rules.

Validation profile manager with rule sets for environmental compliance

Custom Profiles

Create a JSON file following the domain validator schema, add your thresholds keyed by CAS Number, and import via Analyze > Domain Validator. Profiles are persisted in the model.

ENV-05 — EDD submission portal

Receive EDD packages from external senders with a deterministic protocol, a visible state, an error report for the sender and a resume path that never duplicates a package.

EDD submission portal during the guided tour, step 3 of 8: the receipt card reads protocol EDD-20260906-133254-a8006a1e4e34, state received (awaiting validation), attempt 1, package edd-sintetico-tour.csv with 75 bytes and its SHA-256, and the line validation not run yet; the tour tooltip Receipt: protocol and state sits over the form Same portal at step 6 of 8 after the corrected package was sent with the previous protocol filled in: the receipt shows a new protocol EDD-20260906-133301-95cdffb58ed6 and the line attempt 2 (resumes EDD-20260906-133254-a8006a1e4e34), with package edd-sintetico-tour-v2.csv of 78 bytes and a different SHA-256

ENV-06 — Immutable versions and ECDSA signature

Freeze a version of a result with a SHA-256 content hash, chain it to the previous version and sign it with an ECDSA P-256 key, so that any later change of a single byte is detected as tampering. This is layer 1 of the signature decision: it does not replace ICP-Brasil or gov.br.

Versions and signatures section of the audit trail panel after signing and verifying: chain of versions intact, the status line reads verification completed, 1 version, all valid, chain intact, and the single row shows v1, its timestamp, content hash ae82c1cd8084, signer ecbyts with key 0e96b9d1, scope trilha-auditoria and verification Valid; the tour tooltip Verify: valid overlaps the layers note The same section after the one-byte simulation, tour step 5 of 6: the v1 row is unchanged (same timestamp, same content hash, same key) but its verification column now reads TAMPERED, and the status line states that the presented content differs from what was signed; the layer-1 note about ICP-Brasil stays visible below the buttons

ENV-04 — EDD designer and spreadsheet formats

Design a versioned schema for electronic data deliverables: entities, fields, mandatory fields, allowed values, numeric limits and field-to-field comparison; hand the sender a CSV template bound to the schema version and check that version on the received records.

Domain Validators editor with a Custom rule comparing screen_top with the field screen_bottom through the compare field input, next to the Template CSV button Test Against Data panel with two synthetic records declaring _template_version and the result line confirming the template version for all records

ENV-12 — Model extension by logical entities

Extend the data model through governed logical entities declared by domain validators and browse them in the Data Studio Schema panel next to the physical tables. A logical entity is a versioned contract, not a SQL table.

Data Studio Schema panel showing the physical Tables list and, below it, the Logical entities (domain validators) section Logical entity WELL expanded in the Schema panel listing its logical fields, labelled as a contract without SQL columns

ENV-13 — Pre-validation before promotion

Apply the exact schema rules to a received batch before it is promoted, and read a record balance that always closes: total = clean + flagged, with unevaluated rows explained.

Validation Profiles modal listing versioned rule sets with Run buttons, before the pre-validation run Last run panel with record balance line (total, clean, flagged, blocking, pending decisions) above the findings table

ENV-14 — Error report for the sender

Return errors to the sender by file, sheet, row and field, with rule, message and suggested fix, and prove on resubmission which earlier errors were resolved.

Findings table with Source column showing file, sheet and row, plus field, rule, message and suggested fix per finding Balance line after resubmission reporting resolved, persisting and new findings, with the Export CSV button in the modal footer

ENV-15 — Post-import QA/QC

Configure quality flags for censored values, duplicates, units and outliers, and record a human decision with a reason for every finding. No data is discarded silently.

Findings table with censored value flag and Decide buttons waiting for a human decision on each finding Findings table row showing a recorded human decision with reason, and the balance line counting recorded and pending decisions

Constants Manager

User-defined constants for scientific calculations: emission factors, uncertainty values, unit conversion factors, and site-specific parameters.

Constants manager for custom scientific and engineering values

Guided Workflows

Step-by-step guided workflows help users through standard environmental engineering processes.

Guided workflow picker with structured environmental engineering processes

Spatial Blueprint (DXF)

Import CAD site plans as Spatial Blueprint elements using the DXF ingestion pipeline.

DXF spatial blueprint import workflow for CAD-based site plans

Data Ingestion

Bulk import environmental data from spreadsheets and documents.

Data import wizard with format selection and supported file types

Spreadsheet Import (EDD)

Rich Document Ingestion (v0.2)

Data Entry Matrix

Bulk data entry interface for observations, designed for rapid field data input without navigating between modals.

Spreadsheet-like data entry matrix for bulk observation input

Storyboard & Sequencer

Create animated sequences and video presentations from your environmental model.

Storyboard and sequencer interface for animated environmental presentations

Pipelines (BPMN)

Automate multi-step workflows using a BPMN-inspired pipeline system.

Pipeline editor for multi-step automation and BPMN-inspired workflows

Treatment Systems

Model and track remediation and treatment infrastructure linked to operational pipelines. The treatment_system family connects physical treatment equipment to automated workflows and cost accounting.

Adding a Treatment System

Use Insert > Add Element and select the Treatment System family. Configure the system type, link to wells and plumes via edges, and optionally attach a BPMN pipeline for operational automation.

Well Geology

Advanced geological analysis modules for monitoring wells, based on Brazilian and international stratigraphic standards.

Accessing Well Geology

Select monitoring wells, then go to Insert > Well Profile. Tabs: constructive profile, lithologic log, cross-section, and NBR 15495-1 compliance report.

Wells: lithology and construction intervals (env-08)

Goal: record the lithologic layers and the construction elements (casing, screen, filter pack, grout) of a monitoring well so that the graphic profile and the interval table always reconcile, and so that invalid intervals are detected before anything is saved. Audience: field professionals who register boreholes and internal technical reviewers. Prerequisites: a model with at least one well element; the guided tour Well lithology and construction intervals creates a synthetic well when the model has none.

Well profile module with the interval editor open: the first lithologic row has its top deeper than its base, the row is outlined in red and the error list above the table reads one interval error, fix before saving

Steps. Select the well in the element list and open its Well Profile module (family modules menu). The left side draws the constructive profile and the lithologic log; the Edit button opens the interval editor with one row per layer (top, base, soil type, description, SUCS, consistency) and one row per construction element (top, base, type). Change a depth and press Save: the module validates every interval before persisting. Errors block the save and are listed above the table (role="alert"), each pointing to its row, which is outlined and marked aria-invalid. Warnings (a gap between two layers) are listed but do not block.

Detected errors. INVERTED (top at or below the base), NEGATIVE, NON_FINITE, EXCEEDS_DEPTH (layer beyond the well depth, or construction element beyond the drilling depth), OVERLAP between consecutive lithologic layers and TOTAL_EXCEEDS_DRILLING. The rule set is the same one the renderer uses, so every row that the drawing would silently drop is now reported instead of disappearing.

Well profile module after the interval was corrected and saved: the error list is gone, the table rows are clean and the SVG profile draws one lithologic rectangle per table row

Result. After the correction the error list disappears, the profile is saved on the element (data.profile) and the SVG draws exactly one lithologic rectangle per table row — the reconciliation the acceptance criterion asks for. Limits: depths are metres below the wellhead; the topographic elevation toggle requires the element to carry an elevation. Related: Well Geology, Water-level series, Guided Tours. Video demonstration: pending (not yet recorded).

Water-level series with explicit datum (env-09)

Goal: store water-level measurements with an explicit datum, unit and date, compare campaigns and export the series without losing the raw value or its origin. Audience: hydrogeologists and technical reviewers. Prerequisites: a well with at least two water_level observations that declare a datum (msl, or depth_below_reference together with a reference elevation on the observation or on the well). Observations without a datum are excluded from every curve and listed as datum_missing issues — they are never silently assumed to be elevations.

Report figure selector listing the Hydrograph provider with one candidate per well and an all-wells candidate; only the all-wells hydrograph checkbox is checked, ready for Insert selected

Steps. Open the Report editor and click ecbyts figures. The selector lists a Hydrograph (water level per well) entry for every well with two or more valid readings, plus an all wells candidate. Tick the candidates you want and press Insert selected: each becomes a corporate-layout figure in the report. The curve is drawn in metres above mean sea level; the footer states the datum declared by the observations and how many readings were converted, and how many were excluded.

Report editor showing the inserted hydrograph figure: one line per well in metres above mean sea level, with the datum note in the figure footer and the corporate caption below

Export. Open the command palette (Ctrl+K) and run Export water-level series (TSV). The file keeps, per reading, the well, date, campaign, raw value and raw unit, datum, reference elevation, the conversion note, the head in metres and the quality flags — values and origin are preserved, nothing is rounded away. The same series feeds the water-table layer of the Interpolation panel, so the map and the table agree.

Errors and limits. A reading without a parseable date, a depth reading without a reference elevation, or a unit that cannot be converted to metres is reported as an issue and never enters the curve. Comparison between campaigns is well-by-well (head difference in metres). Related: Potentiometric Maps, Reports, Wells. Video demonstration: pending (not yet recorded).

Human-health risk assessment record (env-10)

Goal: store a risk scenario (substance, exposure scenario, receptor, pathways, concentrations, method) as a record with provenance, and keep the record distinct from the calculation: a number is attached only when the method is implemented and validated, and regulatory approval is never presumed. Audience: consultants and internal reviewers. Prerequisites: none — the panel works on a synthetic scenario.

Risk assessment panel with the scenario form (substance, exposure scenario, soil, groundwater and air concentrations) and the results block below: ILCR, HQ, acceptable concentration, limiting pathway and the provenance table with receptor, pathways, method and input digest

Steps. Open Risk Assessment (Analyse menu, command palette or Alt+R). Choose the substance and the exposure scenario, type at least one concentration and press Calculate CMA. The panel first stores the scenario as a record; the engine result (incremental cancer risk, hazard quotient, acceptable concentration, limiting pathway) is attached to that record together with its provenance: receptor and age group, pathways, media, method identifier, whether the method is implemented and which validation suite covers it, a digest of the input, and the timestamp. The line Regulatory approval: not asserted is part of the record.

Risk assessment panel reopened after being closed: a note above the results reads record restored from the saved model, computed at the original timestamp, not recomputed, followed by the same result and provenance values

Result. Records persist inside the model (model.riskAssessment) and travel with the .ecbt key. Closing and reopening the panel — or reloading the model — shows the last record with the note restored from the saved model, not recomputed; the digest proves which input produced the number. Limits: when the method is not implemented for the chosen scenario the record is stored without a result and says so; nothing in the panel claims regulatory acceptance. Related: SAO Matrices, Compliance Validation, Guided Workflows. Video demonstration: pending (not yet recorded).

ENV-02 — Internal and external profiles: roles per organization

Roles are resolved per organization and fail closed: membership in one organization grants nothing in another, the UI only mirrors the canonical policy, and the backend (row-level security) is what refuses an action outside your scope — with the error shown, never swallowed.

Guided tour step 2 of 5 on the Governance and Pilot panel: the tooltip Your role decides what is editable points at the Save governance button, rendered muted and disabled; below it the pilot approval section shows the Register my acceptance button also muted and the note no receipt recorded Governance and Pilot panel after a member tried to register an approval: the alert box reads operation denied by the backend, the role in this organization does not authorize this change (RLS)

ENV-03 — Corporate authentication: OIDC, mapping, provisioning and revocation

Sign in with your organization's corporate account over OIDC: the identity provider authenticates, the e-mail domain selects the organization, the IdP group selects the role and provisioning is fail-closed — without proof of mapping there is no corporate session; a revoked identity loses its memberships and sessions.

Sign-in modal with the button Sign in with a corporate account below the social providers, the mapping hint (e-mail domain selects the organization, IdP group selects the role) and the collapsed list of refusal reasons Sign-in modal after a refused corporate sign-in: the status box reads that the e-mail domain is not accepted for this issuer, above the expanded list of refusal reasons rendered from the provisioning contract

ENV-11 — Database audit: actor, operation, object, previous and new version

Every versioned change is recorded with actor, operation, object and the previous and new version when applicable; the history of one object is correlated change by change, and the trail cannot be edited or deleted by anyone — in the client by contract and in the database by migration.

Audit trail panel listing four entries with actor, operation, object, previous version, new version and hash, and a header stating the hash chain is valid Correlated history of well W-01 in the audit trail panel: three rows with previous and new version, continuity genesis, linked and broken, and a red status line naming the break at the third change Access matrix of the audit trail by organization role: read_own, read_all and append granted by role, update and delete refused for guest, member, admin and owner with reason audit_immutable

ENV-01 — Areas and geometries with explicit CRS

Import shapefile or KML geometries as areas, wells and drainage lines with the coordinate reference system stated up front: the wizard shows the CRS status, blocks import without a .prj and accepts an explicit declaration; KML enters as CRS84 by standard.

Guided environmental data presentation

Open the guided presentation to follow the demonstration course in the application. To open a specific block, keep training=demo-cetesb-gac and modo=apresentacao and add its lesson identifier. For example, open the QA/QC block. Use the block link to return directly to that part of the presentation after an interruption.

Shapefile import wizard showing the CRS block in red (no .prj found), the explicit WGS84 declaration checkbox and the disabled Import button
Configuration: missing CRS blocks the synthetic shapefile import until an explicit valid declaration is made.
Progress overlay of a KML import listing the CRS (CRS84, standard) and the import report with records received, added, duplicates and errors
Result: the synthetic KML report records CRS84, five received, five added, zero duplicates and zero errors.

ENV-22 — Lines, polygons and historical batches

Persist lines and polygons and migrate historical batches with reconciliation by stable id and provenance: the report closes counts (received, added, duplicates, errors), reimporting never duplicates, and a failed batch is rolled back proportionally.

Import report for a synthetic historical KML batch: 5 records received, 5 added, 0 duplicates, 0 errors
First import: the synthetic historical batch adds five geometries, with no duplicates or errors.
Import report after reimporting the same KML: 5 received, 0 added, 5 duplicates, the model still has the same 5 elements
Reimport: five received, zero added and five duplicates. No second copy of the batch is created.

ENV-07 — Environmental data entities from an EDD

Import a laboratory EDD package (Location, Sample, TestResults) and see where each entity lives in the model: points become elements, sampling dates become campaigns, and samples with their results become observations on the point.

Import wizard after dropping lab-edd-package.xlsx, recognising the EDD format with its three sheets and row counts Elements tab with the six imported points and the Element Details panel of the selected point, where samples and results appear as observations

ENV-16 — Same selection in map and SQL

Filter observations by parameter and matrix in the interpolation panel and reproduce the exact same selection in Data Studio: the observations table carries parameter, matrix and campaign_id from the same records, so counts must agree.

Interpolation panel with the sample matrix filter set to groundwater and a contamination parameter selected before generating the plume Data Studio Processing module with the reconciliation query in the editor and the result grid grouped by campaign_id and matrix

ENV-17 — Alerts and notifications

Receive submission, error, review and deadline events in the panel and by email. The email channel is real and leaves in a labelled sandbox mode (provider test key); preferences hold on the client and on the server; the same event arrives once; a failure gets a limited retry and a recorded give-up.

Notifications panel open over the workspace, listing a synthetic rejected-batch alert with priority badge, time and the preferences button in the header Notification preferences modal with the Email channel mode block labelled SANDBOX (test key) above the per-type table of enabled toggles and In-app and Email channel checkboxes

ENV-18 — Integration REST API

The v1 contract is documented and readable; the authenticated write API is deliberately postponed until a real integrator exists. This chapter says what you can call today and what you cannot — the gap is the deliverable, not an omission.

Help menu of the ribbon expanded with the API reference item highlighted by the guided tour, step 1 of 6, tooltip explaining that the version lives in the /api/v1/ path
Entry point: Help > API reference, revealed by the guided tour, opens the public REST reference.
Integration Contract (v1) section of the API reference with the Versioning table (path prefix /api/v1/, versioned) and the Authentication table starting with the 401 and 503 failures
Result: the Integration Contract (v1) section of the reference, ending in the declared gap — what v1 does not do.
Home quick access with the API reference card highlighted by the guided tour, step 5 of 6, tooltip listing the limits (413, 415, 404, 409, no pagination) and the declared gap: no package creation, no idempotency keys, no 401/403 on the loopback bridge ecbyts API reference page with the Getting Started section, the Quick Start curl examples and the Security list constraining the endpoint to localhost

ENV-19 — SaaS and self-hosted installation

Know in which architecture this app runs and how to install it yourself. The SaaS (static front plus managed Supabase, operated by Ecbyts) and the self-hosted installation (a reproducible script over the Supabase CLI and the build) are assessed separately; the Installation and backend panel shows the architecture declared by the build, the backend host, an on-demand health probe and the installer commands.

ENV-21 — Language and AI assistant

Switch the interface between Portuguese, English and Spanish and ask the assistant about the loaded model. The system prompt carries the model context; a provider failure preserves your text.

Language dropdown open in the title bar listing the sixteen interface languages with Portuguese, English and Spanish among them AI Assistant panel with a question about the model and the mocked answer stating the element count, engine badge visible

ENV-20 — Pricing, seals and declarations

Read the billing units, the plans with their limits, the optional services and the seals and declarations in one panel — every price carries the owner's approval state (example or approved). No price, certification or homologation is invented: what has no evidence is stated as absent.

Plans, prices and certifications panel with the guided tour on the plans step: each price row shows the amount, the cadence and the badge example, not approved by the owner
Plans and amounts: each number carries the badge "example — not approved by the owner" until a decision is recorded.
Certifications section of the panel: the product holds no third-party certification, two declarations with repository evidence, and the explicit list of certifications not held
Certifications: no third-party certification; declarations with evidence and the list of what is not held.

Issues 3D (BCF-like)

3D-anchored non-conformity markers for collaborative issue tracking, inspired by BIM Collaboration Format (BCF).

Issues 3D panel with spatially anchored review markers and issue tracking

Data Audit

Detect anomalies and potential fraud in environmental datasets.

Data audit module highlighting anomaly detection and integrity review workflows

Internationalization (i18n)

16 fully-translated locales with lazy loading, interpolation, pluralization, and RTL support.

Localized ecbyts interface demonstrating internationalization support
CodeLanguageCodeLanguage
pt-BRPortuguêsen-USEnglish
es-LAEspañolzh-CNChinese
fr-FRFrançaisde-DEDeutsch
ja-JPJapaneseit-ITItaliano
ko-KRKoreanru-RURussian
id-IDBahasa Indonesiahi-INHindi
tr-TRTürkçepl-PLPolski
sv-SESvenskaar-SAArabic (RTL)

Random Model Generator

One-click demo model generation with realistic environmental data for exploration, training, and presentations.

Random demo model loaded in the main ecbyts workspace

Generating a Random Model

Click File > Random in the toolbar. The model includes fully populated campaigns with observations, making it ideal for testing analytics, interpolation, and export features.

Regulatory Applicability

The Regulatory Applicability Assistant performs a first-pass screening of potentially applicable requirements using organization profile, jurisdiction, declared activities, source validity, and territorial competence.

Screening support, not legal advice

The assistant does not establish legal conformity. A qualified reviewer must confirm the organization profile, source currency, jurisdiction, exceptions, permits, and final obligations.

Results by Campaign / Resultados por Campanha

This panel compares monitoring results across campaigns and points, answering how concentrations evolved over time and how they relate to the selected guideline value.

How to open

Home Grid → Compliance → Results by Campaign. When compatible project observations are unavailable, the panel offers a clearly labelled demonstration dataset without modifying the project.

Sustainability Reporting

The Sustainability Reporting Studio builds an evidence-backed reporting workspace, maps reusable facts to selected frameworks, identifies gaps, and prepares a structured content index before export.

Partial framework baseline

Catalog coverage is a workflow aid, not a conformity or readiness percentage. Confirm current framework requirements, licensing terms, materiality decisions, assurance expectations, and filing rules with qualified reviewers.

System Catalog / Catálogo do Sistema

The System Catalog is the live operational inventory of capabilities available in the current ecbyts session. It combines structured Home Grid modules, browser handlers, curated core actions, and the API action registry in one searchable table. It is different from ECBT Catalogs, which manages scientific and data-governance catalogs.

M

Home Grid modules

User-facing modules retain their stable ID, translated label, description, and runtime entry point.

H

Handlers

Runtime handle* and toggle* functions registered by the loaded interface.

A

Core actions

Curated workflows for import, export, analysis, visualization, configuration, and collaboration.

API

API registry

478 actions across 46 categories, including parameter metadata and execution constraints.

Discovery, search, and export

Access and execution safety

ControlBehavior
OpenTop ribbon More → Tools → System Catalog.
Destructive actionsRequire a separate confirmation before execution.
Guest modeBackend API execution is blocked; local interface handlers remain subject to their own guards.
Parameterized actionsThe catalog shows required parameter names. Use the dedicated interface or API Reference when an action needs values that are not available from the current UI context.
Quality scoresOverall and per-module quality scores are visible only to the configured MASTER account and fail closed when identity or the score service is unavailable.

Inventory, not proof of availability

An item in the catalog proves that it was discovered in the current runtime. Successful execution still depends on permissions, required parameters, loaded project data, provider configuration, and backend availability.

Home Grid Module Index

This index is generated from the canonical Home Grid registry. Every executable Home Grid module must resolve to a public documentation section; missing mappings fail the documentation gate.

Maturity is declared per module in the same registry: Experimental modules are usable but may change, lose data compatibility or be withdrawn without notice; Stable modules are covered by the supported scope. The Home screen shows the same "Experimental" badge on those modules.

54 executable Home Grid modules (2 experimental)
ModuleCategoryMaturityRuntime entry pointDocumentation
Aerial Georef
aerial-georef
AiStablehandleAerialGeoreferenceOpen section
AI Assistant
ai-assistant
AiStablehandleOpenAiAssistantOpen section
ML Recognition
ml-recognition
AiStablehandleOpenAerialModalOpen section
Neural Networks
neural-networks
AiStablehandleOpenNNManagerOpen section
Calculator
calculator
AnalyticsStablehandleOpenCalculatorOpen section
Cross-Section
cross-section
AnalyticsStablehandleOpenCrossSectionPanelOpen section
Energy Sankey
energy-sankey
AnalyticsStablehandleOpenEnergySankeyModalOpen section
Interpolation
interpolation
AnalyticsStablehandleOpenInterpolationPanelOpen section
3D Labels
labels-3d
AnalyticsStablehandleToggleLabelsOpen section
Mann-Kendall
mann-kendall
AnalyticsStablehandleOpenTemporalAnalysisOpen section
Monte Carlo
monte-carlo
AnalyticsStablehandleOpenScenarioSimulationModalOpen section
Potentiometric
potentiometric
AnalyticsStablehandleOpenInterpolationPanelOpen section
Time Series
temporal-charts
AnalyticsStablehandleOpenTemporalAnalysisOpen section
Results by Campaign
campaign-results
ComplianceStablehandleOpenCampaignResultsOpen section
Compliance
compliance-check
ComplianceStablehandleOpenValidationProfilesOpen section
EIS Score
eis-dashboard
ComplianceStablehandleOpenEisDashboardOpen section
Regulatory Applicability
regulatory-applicability
ComplianceStablehandleOpenRegulatoryApplicabilityOpen section
SAO Matrices
sao-matrices
ComplianceStablehandleOpenSAOMatrixPanelOpen section
Sustainability Reporting
sustainability-reporting-studio
ComplianceStablehandleOpenSustainabilityReportingStudioOpen section
Validation Profiles
validation-profiles
ComplianceStablehandleOpenValidationProfilesOpen section
Map Picker
map-picker
GettingStartedStablehandleOpenMapPickerOpen section
New Project
new-project
GettingStartedStablenewProjectOpen section
GAC Gas Station
preset-gac
GettingStartedStablehandlePresetGacGasStationOpen section
GHG Inventory
preset-ghg
GettingStartedStablehandlePresetGhgInventoryOpen section
Random Model
random-model
GettingStartedStablehandleGenerateRandomModelOpen section
View Modes
view-modes
GettingStartedStabletoggleViewModeOpen section
Welcome Tour
welcome-tour
GettingStartedStablehandleOpenTourOpen section
EVA Analysis
eva
GovernanceStablehandleCalculateEVAOpen section
Governance Panel
governance-panel
GovernanceStablehandleOpenGovernancePanelOpen section
WBS
wbs
GovernanceStablehandleOpenWbsDataModalOpen section
Drawing Plate
drawing-plate
ImportExportStablehandleExportPlatePDFOpen section
Export Key
export-key
ImportExportStableopenExportModalOpen section
Import EDD
import-edd
ImportExportStablehandleOpenIngestionModalOpen section
Import Key
import-key
ImportExportStableopenImportModalOpen section
Reports
reports
ImportExportStablehandleOpenReportOverlayOpen section
Constants
constants
LibrariesStablehandleOpenConstantsModalOpen section
Marketplace
marketplace
LibrariesExperimentalhandleOpenMarketplaceOpen section
My Libraries
my-libraries
LibrariesStablehandleOpenLibraryManagerOpen section
Product Wizard
product-wizard
LibrariesExperimentalhandleOpenProductWizardOpen section
Add Campaign
add-campaign
ModelingStablehandleAddCampaignOpen section
Add Element
add-element
ModelingStablehandleAddElementOpen section
Add Scene
add-scene
ModelingStablehandleAddSceneOpen section
Data Entry Matrix
data-entry
ModelingStablehandleOpenDataEntryMatrixOpen section
Import DXF
import-dxf
ModelingStablehandleOpenSpatialModalOpen section
IoT Sensors
sensors
ModelingStablehandleOpenSensorsCenterOpen section
Authentication
authentication
PlatformStablehandleOpenAuthModalOpen section
Account
account
SettingsStablehandleOpenAuthModalOpen section
Customize
customize
SettingsStablehandleOpenCustomizeOpen section
Documentation
docs
SettingsStablehandleOpenDocsOpen section
Guided Tours
guided-tours
WorkflowsStablehandleOpenGuidedToursOpen section
Guided Workflows
guided-workflows
WorkflowsStablehandleOpenWorkflowPickerOpen section
Issues 3D
issues-3d
WorkflowsStablehandleOpenIssuesPanelOpen section
Pipelines
pipelines
WorkflowsStablehandleOpenPipelineManagerOpen section
Storyboard
storyboard
WorkflowsStablehandleInitSequencerOpen section

AI Assistant

The built-in AI assistant provides natural language interaction with the platform through a multi-provider LLM engine.

AI assistant chat panel with multi-provider LLM engine and environmental commands

Capabilities

Opening the AI Assistant

Click the AI Assistant floating widget button in the bottom-right corner of the screen.

LLM Dynamic Dispatch

The AI Assistant uses a registry-based dynamic dispatch system with 454 registered actions organized in 45 semantic categories. Instead of hardcoded function calls, actions are discovered and executed dynamically based on user intent.

3-Tier Prompt Architecture

TierRoleContents
System PromptIdentity & rulesPlatform identity, capabilities summary, response format rules, safety guardrails.
Registry InjectionDynamic contextCurrent model state, available actions grouped by category, active element context.
User MessageIntentNatural language request with optional element/parameter references.

Semantic Categories

●

Model

Element CRUD, bulk operations, property edits

▲

Analytics

Trends, predictions, statistical tests

◆

Visualization

Camera, layers, labels, symbology

★

Import/Export

ECBT, JSON, XLSX, DXF, IFC, reports

■

Compliance

CONAMA, CETESB, domain validators

◎

Infrastructure

Pipelines, workflows, remediation

Agentic Loop

For complex tasks, the AI decomposes the request into a multi-step plan, executes each action sequentially via tool_use calls, and reports results with a structured summary. The loop supports up to 10 chained actions per turn.

MCP Server

An ecbyts Model Context Protocol (MCP) server comes in two forms. The hosted server is read-only, runs over the cloud models of the API-key owner and works with any MCP client without installing anything. The local server runs on your own PC over stdio and talks to the api-server.js of the app open in your browser.

# Start the MCP server (from the repository root)
ECBYTS_API_KEY=ecb_live_... node scripts/ecbyts-mcp-server.mjs

# Configure in Claude Desktop (claude_desktop_config.json)
{
  "mcpServers": {
    "ecbyts": {
      "command": "node",
      "args": ["scripts/ecbyts-mcp-server.mjs"],
      "env": { "ECBYTS_API_KEY": "ecb_live_..." }
    }
  }
}

IDE Integration

Add the MCP server to your IDE's AI configuration to let AI assistants query and modify ecbyts models directly from your development environment.

Reports

Generate professional reports from your environmental model data.

Report editor with environmental investigation report and 3D site model

Governance

Project management tools for environmental remediation contracts.

Governance panel with contracts, WBS, and project control modules

Timekeeper

Cross-project time tracking panel embedded in the Constellation HUD. Log hours against projects, phases, and resources without leaving the modeling environment.

Timekeeper tab inside the bottom panel with timer and timesheet modules
SectionDescription
SummaryWeekly, monthly, and lifetime hour totals across all projects.
Live TimerClock-in / clock-out with project, phase, and resource selectors. Elapsed time shown in real time.
Quick EntryFast hour entry for retroactive time logging.
Cross-Project TableFull timesheet view with filters by project, resource, and date range.

Opening Timekeeper

Expand the Constellation HUD (bottom panel) and select the Timekeeper tab. Active timer state persists across page reloads.

IoT Sensors

Connect real-time environmental sensors to your digital twin for continuous monitoring.

Sensor center for linking IoT devices and live environmental feeds

Guided Tours

Interactive step-by-step tutorials that guide you through platform features.

Guided Tours picker with categorized tours for Element Management, Field Data, and more

Safe practice boundary

The Communicate practice is synthetic/read-only. It does not invite a real person, grant access, export a real key, sign, publish, or submit an administrative decision.

▶ Subcontractor Data Guide

This guide follows the route a subcontracted operator actually walks in the product, from receiving an assignment to handing a batch over. Each stage names the live screen, the guided tour that teaches it, and the limit you have to work around today. Where a screen does not exist, the guide says so instead of describing an intention.

What this guide does not claim

A guided tour teaches a screen; it never grants access, submits a decision or closes an engagement. A finished tour, a green panel or a saved file are not evidence that the work was accepted. Fields named in a tour exist only if the screen shows them, and this guide states the missing ones explicitly.

The route has ten stages. The last one has no screen in the product today, and that is stated in full rather than left out.

  1. Receive the assignment and the access
  2. Inventory the documents
  3. Digitize and check
  4. Import the EDD
  5. Bring in GIS and CAD data
  6. Enter readings by hand
  7. Validate and correct
  8. Change and remove records
  9. Hand over for review
  10. Close the engagement

Before you save or send anything, read the destination matrix under Import / Export: it lists every authorized destination, what each one is for, and what you must check after writing. This guide points back to that matrix instead of repeating it.

1. Receive the assignment and the access

2. Inventory the documents

3. Digitize and check

4. Import the EDD

Bulk acceptance: what Accept All Imported does, and what still deletes

On the comparison screen the button labelled Accept All Imported takes the file's side only where the file says something: values that differ, and records the file adds. A record that exists in your model and is simply absent from the imported file is not treated as a request to delete it; without a decision on that record the merge keeps it, so a file that carries a subset of the batch no longer erases the rest. Deletion is still possible, but only card by card, by choosing the imported side on the card of a record the file does not carry. That card asks for no confirmation, so read each one before you choose.

Keep All Current is the mirror image: it keeps every record your model already has and discards every record the file adds, so an import that only brings new records leaves your model as it was. Neither button is an undo. Whichever you choose, export a copy to an authorized destination before applying the merge, and reopen that copy afterwards to confirm what survived.

5. Bring in GIS and CAD data

6. Enter readings by hand

7. Validate and correct

8. Change and remove records

9. Hand over for review

10. Close the engagement

There is no closure screen

The product has no screen that closes a subcontracted engagement. Nothing marks a batch as finished, nothing issues a completion receipt, and no panel changes state when the work ends. A finished tour, an applied import or a generated report are none of them a closure.

Map Picker

Interactive georeferencing tool for setting your site's real-world location.

Map picker interface for selecting and georeferencing a site location

Multi-Model Tabs

Work with multiple environmental models simultaneously — each tab is an isolated namespace for elements, campaigns, scenes, and analytics.

Uncertainty (UNC-001 — GUM Tier 1)

First-order uncertainty propagation for environmental measurements following ISO GUM (Guide to the Expression of Uncertainty in Measurement).

Taxonomy / Data Dictionary

Regulatory taxonomy layer that adds auxiliary, standard-aligned fields to elements (EPA WQX, ABNT NBR, CETESB DD-256, CONAMA 420).

Historical Map Upload & Georeferencing

Upload raster maps (PNG/JPEG) and georeference them with 4+ control points using least-squares affine transform. Includes an OCR pipeline for elevation extraction from topographic maps.

PhotoLog

Field photo registry with EXIF GPS extraction, AI vision analysis, and 3D scene markers.

Technical Diagrams (ISA S5.1)

Canvas-based technical diagram editor with process-industry symbology (ISA S5.1 / P&ID / FSM / DFD).

Impact Estimator

Environmental impact estimator with financial formulas (passivo / ativo) traced to CONAMA, CNJ, and INSS benchmarks. Integrates with UNC-001 Monte Carlo for probabilistic risk quantification.

Environmental Valuation (ENV-VAL-001)

Project valuation engine for environmental investments using VPL (NPV), CRF (capital recovery factor), VPLA (equivalent annual value), and MAC curve.

Cost Analysis (CAPEX + OPEX)

Cost roll-up across the PDPL-U hierarchy (site → area → zone → element) with dashboard visualization.

What-If Scenario Comparator

Answers the question what changes if I alter part of my process? without rebuilding the model. The comparator copies your model into an alternative scenario, applies the change to the copy, and shows base | alternative | Δ side by side for CAPEX, OPEX, ECBT Score and the UN Sustainable Development Goals. Your original model is never modified.

A banner always states whether the figures come from your real model or from labelled example data, which you have to accept explicitly before any demonstration number appears. The same provenance travels on every row of the CSV and Excel exports, so a spreadsheet detached from its context can never pass example figures off as measurements. Four export shapes are available: CSV, JSON, Excel and Markdown.

Missing information reads as no data, never as zero, and the panel separates two reasons: your model lacks the figure, or the conversion factor is still waiting for a published source — in which case the panel names the source it needs and leaves the column deliberately empty. When a measured physical flow changes but no published factor can convert it into an impact, the flow change is reported on its own channel instead of disappearing behind a no-data label.

Purpose Module

Track the real-world EIS impact of every modeled action and collect micro-feedback from stakeholders.

Automation Bot Manager

Event-driven automation engine that reacts to file uploads, AI photo tags, map interpolation completion, and other triggers.

Model Radar (Broadcasting)

Broadcast your model's state to stakeholders via time-limited share_code URLs — no account required for viewers.

Sample Files (Public Catalog)

Read-only catalog of reference files hosted on Supabase Storage — aerial images, templates, demos — available to every user without authentication.

DataStudio (SQL over your model)

Run client-side SQL queries against your environmental model — elements, campaigns, observations, edges, layers — without round-tripping to a server.

Online access is not a portable copy

Revoking an online grant blocks future server reads, but it cannot recover an ECBT key already downloaded. Portable export therefore requires an explicit scope, a filtered snapshot, a verifiable manifest, and an unambiguous recipient key.

UI Customization

Personalize the interface: fonts, color palettes, density, home-screen card layout, and default panels.

Error Reporting & Bug Reports

Capture runtime errors and user-submitted bug reports with automatic screenshot, stack trace deduplication, and Supabase ingest.

Libraries Marketplace (v2)

Install and monetize curated libraries of environmental data, ML models, pipelines, and AI services — all under AGPL-3.0-compatible licenses.

License Compatibility

Every marketplace library is evaluated for AGPL-3.0 compatibility before listing. MIT / BSD / Apache / GPL-2.0 / MPL-2.0 are accepted; SSPL / PolyForm / proprietary are blocked.

Inspector

Review the selected element, its observations, relationships, campaigns, hierarchy, costs, and operational metadata in one side panel.

Simulation Lab

Run local environmental simulation routines with explicit parameters, consent, and browser-side execution boundaries.

AI Agents

Use specialized assistants for general questions, regulatory analysis, campaigns, and occupational/environmental workflows.

Document Assessment

Assess uploaded environmental documents for structure, evidence, decisions, coordinates, labels, and extractable observations.

Chemistry Registry

Search, normalize, and validate chemical parameter metadata such as names, aliases, and CAS references.

Field Metadata

Attach provenance, confidence, source, and validation notes to fields that affect model quality and auditability.

Model Merge and Diff

Compare two model states, inspect changes, and merge accepted differences with explicit review.

Notifications

Review operational alerts, system messages, marketplace updates, and priority events generated by the workspace.

Notification Rules

Configure thresholds and rule-driven alerts for data quality, compliance, sensors, marketplace events, and operational changes.

Wallet and Credits

Manage credits, payments, premium access, marketplace transactions, and blockchain-linked account actions.

History, Undo and Recovery

Inspect recent changes, undo safe operations, and recover workspace state after editing, import, or autosave events.

Imagery Layers

Add, inspect, and manage raster imagery used as aerial context, georeference support, or visual evidence in the model.

Organization Management

Manage organization-level workspace context, members, scopes, and model ownership boundaries.

Ownership and Access

Review who owns a model, who can edit it, and which actions require role checks or explicit transfer.

Presets

Apply saved configurations for model views, workflows, validation profiles, visuals, and operational defaults.

Health Export

Export occupational health, exposure, or monitoring data in a structured package suitable for review and integration.

Accessibility

Use accessibility helpers for labels, keyboard flow, modal behavior, and form readability across the interface.

Background Analysis

Compare observations against background conditions to support environmental interpretation and anomaly review.

Decision Rules

Define deterministic rules that classify data quality, compliance, recommendations, or next actions from model evidence.

DAMA Data Quality

Evaluate data quality dimensions using DAMA-inspired criteria and link issues back to source fields and records.

ECBT Validator

Validate model packages, exported data, and imported structures against ECBT expectations before use or sharing.

Ledger Summary

Summarize integrity records, hashes, signatures, and audit-relevant events linked to the active model.

Parameter Groups

Organize parameters into operational groups for filters, reports, analytics, and regulatory interpretation.

SAO Heatmap

Visualize source-activity-object relationships as heatmaps to identify concentration, exposure, or management priorities.

SDG Alignment

Map environmental and occupational evidence to Sustainable Development Goal indicators and confidence levels.

Spatial Clustering

Cluster spatial observations or document-extracted locations to identify groups, duplicates, and likely site patterns.

Optimization

Explore candidate decisions, resource allocation, or scenario improvements when a workflow exposes optimization controls.

How to Contribute

ecbyts is an open-source project distributed under AGPL-3.0-only. For the authoritative legal terms, refer to the repository LICENSE file. Contributions are welcome from diverse backgrounds — you do not need to be a software developer to help. Below are five contributor profiles with guidance tailored to each.

▶ Developer

Software Engineers & Programmers

Fork or clone the repository from GitHub and submit Pull Requests. The codebase uses vanilla JS (ES modules) with no build step and no frameworks.

▶ Dev Prompt Toolkit

23 Ready-to-Use Prompts for the Full Dev Lifecycle

A curated set of AI-assisted development prompts organized into 6 lifecycle phases. Copy any prompt, paste into your AI assistant, and adapt to your task.

PhasePromptsPurpose
Plan3Architecture review, spec creation, dependency audit
Build4Module scaffolding, UI implementation, API integration, migration
Validate3Test generation, E2E journeys, accessibility audit
Maintain3Bug triage, performance profiling, i18n coverage
Meta3Documentation generation, changelog drafting, release checklist
Security3CSP audit, API key rotation, LGPD compliance scan

All prompts follow the project conventions: vanilla JS (ES modules), no build step, bilingual comments (EN headers / PT explanations), and max ~30 lines per function. See docs/DEV_PROMPT_TOOLKIT.md for the full catalog.

▶ Vibe Coder

AI-Assisted Contributors

No traditional programming background? No problem. Use AI tools (GitHub Copilot, Claude, ChatGPT) to contribute effectively.

▶ Regulatory Body

CONAMA, CETESB, IBAMA & Other Agencies

Environmental regulatory agencies can contribute normative data that improves compliance validation for all users.

▶ End User

Environmental Engineers & Consultants

Your domain expertise is more valuable than code. Help us build the right tool for real-world environmental work.

▶ Financial Sponsor

Support Independent Development

ecbyts is distributed under AGPL-3.0-only and developed independently. Financial sponsorship accelerates development and helps sustain long-term maintenance. As with the rest of the documentation, the repository LICENSE file is the authoritative source for legal terms.

Admin Module

Comprehensive administration panel for platform operators covering 14 management areas. Access is restricted to users with the admin role in Supabase.

Management Areas

●

Users

User management, roles, quotas, and activity logs

▲

Subscriptions

Plan management, billing, Stripe & MercadoPago integration

◆

Projects

Global project registry, storage metrics, ownership transfers

★

Libraries

Marketplace content, reviews, publishing approvals

■

AI & LLM

Provider config, token usage, fine-tuning jobs, prompt templates

◎

Infrastructure

Edge Functions, storage buckets, database health, CDN cache

Admin Access

The Admin Module is only available to users with the service_role or admin flag in Supabase. Regular users see no admin UI elements. All admin routes are protected by Row Level Security (RLS) policies.

Data Sovereignty & Transparency

ecbyts is built on the principle that environmental data is a public asset. The platform provides a framework for radical transparency and friction-less data sharing between regulators, stakeholders, and AI systems.

ESG Economic Framework

ecbyts integrates a reporting-based incentive layer grounded in ESG conceptual models. This structure enables the tokenization of environmental performance and alignment with international H&S protocols.

Why ESG Matters Here

Environmental monitoring data has economic value. By structuring data for interoperability and cryptographic integrity from the start, ecbyts enables market-based incentives that reward transparency and compliance — not just measure it.

Security & Data Integrity

Multi-layered security architecture protecting environmental data integrity and user privacy. 4-phase hardening roadmap from CAPTCHA to fraud detection.

Authentication & SSO

Supabase-powered authentication with multiple sign-in methods.

Authentication modal with sign-in and SSO options

Corporate SSO (SAML / OIDC) — status: OIDC proven against the local test IdP; SAML not yet validated

Corporate sign-in over OIDC exists in the sign-in modal (Sign in with a corporate account, see ENV-03) and was exercised end-to-end against the local test identity provider chosen by the owner (Keycloak realm, synthetic identities): mapping, provisioning and revocation are measured by the runbook npm run env03:keycloak. The button is deliberately not labelled “SSO” until that receipt is accepted; SAML is not yet validated and stays deferred until a corporate customer requires it. Social OAuth providers are never presented as corporate SSO.

First Login

Click the auth button in the titlebar to open the sign-in modal. Choose a provider or register with email. Authentication is optional — the platform works fully offline without an account.

Keyboard Shortcuts

ShortcutAction
Ctrl + ZUndo
Ctrl + YRedo
Ctrl + SExport Key (save)
Ctrl + EExport JSON
Ctrl + IImport Key
DeleteRemove selected element
EscapeDeselect / Close modal
F11Toggle fullscreen
GToggle grid
1 – 8Switch toolbar group focus

Environmental Glossary

TermDefinition
CONAMAConselho Nacional do Meio Ambiente — Brazilian National Environment Council. Sets environmental standards and resolutions (e.g., CONAMA 420/2009 for soil quality).
CETESBCompanhia Ambiental do Estado de São Paulo — São Paulo state environmental agency. Publishes reference cleanup values for contaminated sites.
IBAMAInstituto Brasileiro do Meio Ambiente — Federal environmental enforcement agency.
VRValor de Referência — Natural background concentration (CETESB DD-256/2016).
VPValor de Prevenção — Prevention threshold; monitoring required (CONAMA 420 Anexo II).
VIValor de Intervenção — Intervention threshold; remediation required (CONAMA 420 Anexo II).
CMAConcentração Máxima Aceitável — Site-specific risk-based threshold from assessment campaigns.
PlumeA 3D volume of contaminated groundwater or soil, typically spreading from a source area following groundwater flow direction.
Monitoring WellA vertical borehole drilled to collect groundwater samples and measure water table levels.
ObservationA single measurement: parameter (what) + value (how much) + timestamp (when) at a specific location.
CampaignA field sampling event — a specific date when a team collected data from multiple monitoring points.
GACGerenciamento de Áreas Contaminadas — Contaminated Areas Management. Brazilian regulatory framework for contaminated site investigation and remediation (CONAMA, CETESB).
EDDElectronic Data Deliverable — Standard format for laboratory analytical results.
PDPL-U / PDPLUThe core ecbyts organizing model for elements, observations, and exports: Ponto, Data, Parametro, Leitura, Unidade.
ESHEnvironment, Safety & Health — Domain for the SAO (Systematic Assessment of Operations) matrices.
IDWInverse Distance Weighting — Spatial interpolation method where nearby points have more influence.
KrigingGeostatistical interpolation method providing best linear unbiased estimates with uncertainty quantification.
ECBTThe unified export/import format for ecbyts models. Encodes elements, campaigns, observations, and optionally blockchain integrity proofs. Replaces the legacy ECO1 prefix.
Merkle TreeA binary hash tree structure where any modification to a leaf node changes the root hash, enabling efficient data integrity verification.
EISEnviroTech Integrity Score — A composite metric (0–5) evaluating the technical quality and trustworthiness of an environmental model.
Digital TwinA virtual replica of a physical environmental site that evolves with real data over time.
BCFBIM Collaboration Format — Standard for 3D-anchored issue tracking, adapted for environmental site issues.
BPMNBusiness Process Model and Notation — Standard for workflow automation, adapted for environmental pipelines.
MCPModel Context Protocol — Open standard for AI agent–tool communication. ecbyts exposes an MCP server for external AI integration.
Dynamic DispatchRegistry-based action resolution where 454 platform actions are discovered and executed by the AI assistant based on semantic intent matching.
Fine-TuningProcess of specializing a pre-trained language model (Qwen2.5) on domain-specific environmental data for improved accuracy.
Symbology ProfileA visual mapping standard that controls element colors, icons, and 3D shapes for consistent site representation.
Veo 2Google’s AI video generation model used to create photorealistic environmental site fly-through videos from scene descriptions.
LGPDLei Geral de Proteção de Dados — Brazilian General Data Protection Law (equivalent to GDPR).
hCaptchaPrivacy-focused CAPTCHA service used for bot protection on authentication forms.
LoRALow-Rank Adaptation — Efficient fine-tuning technique that trains small adapter weights instead of modifying the full model.
TOTPTime-based One-Time Password — Standard for multi-factor authentication (RFC 6238).

Common Parameters

Environmental parameters available for observations. Custom parameters can also be added.

CategoryParameters
Organic CompoundsBenzene, Toluene, Ethylbenzene, Xylenes (BTEX), TPH, PAHs, VOCs, SVOCs
Inorganics / MetalsLead, Arsenic, Chromium, Mercury, Cadmium, Zinc, Copper, Nickel
Physical-ChemicalpH, Temperature, Dissolved Oxygen, Conductivity, ORP, Turbidity
NutrientsNitrate, Nitrite, Ammonia, Phosphate, Total Nitrogen, Total Phosphorus
HydrogeologicalWater Table Level, Hydraulic Conductivity, Porosity, Gradient
MicrobiologyTotal Coliforms, E. coli, Fecal Coliforms, Heterotrophic Plate Count
Safety & GHGIncident rates, near-miss frequency, GHG emissions (CO2e), noise levels

Custom Parameters

Need a parameter not in the default list? Add custom parameters via the configuration. Custom parameters support user-defined names, units, regulatory limits, and custom fields (sample depth, detection limit, fraction).

Technology Stack

LayerTechnologyPurpose
3D RenderingThree.js 0.160.0WebGL scene, meshes, orthographic camera
ChartsChart.js 4.4.1Scatter plots, histograms, time series
LanguageTypeScript-firstCanonical ES module sources in src/app/js; browser JavaScript is generated by the repository build
BuildRepository TypeScript buildnode scripts/ts-build-app.mjs generates deployable modules and source maps
Auth & DatabaseSupabaseSSO (Google, GitHub, Microsoft), PostgreSQL, 39 Edge Function entry points
AI / LLMMulti-provider454 registered actions, 45 categories, 3-tier prompt, MCP server
MLSimpleNN + Qwen2.56 solvers, fine-tuning pipeline, Transformers.js
PaymentsStripe + MercadoPago4-tier freemium, marketplace checkout
CryptographyWeb Crypto APISHA-256, ECDSA P-256, AES-GCM, hCaptcha
VideoGoogle Veo 2AI-generated environmental site videos
StorageIndexedDB + Supabase StorageModel persistence, cloud files, key management
TypographyGeist, JetBrains MonoGoogle Fonts (OFL-1.1, sem RFN)
Serverserve (npx)Zero-config static file server

Platform Metrics

3,300+ TypeScript source files • 3,700+ test files • 473 API actions across 46 categories • 39 Edge Function entry points • 6 ML solvers • 16 locales

Auditable TypeScript Build

ecbyts uses TypeScript as the canonical application source and generates browser ES modules through a repository-owned build script. The deployed JavaScript remains inspectable, while source maps preserve traceability to the TypeScript implementation.

Data Model (ECBT Schema)

Models are represented as validated JSON objects with the following top-level structure:

{
    "ecbyts": "0.2.0",
    "timestamp": "2026-02-07T12:00:00Z",
    "project": {
        "name": "Site Investigation",
        "author": "Environmental Engineer",
        "coordinateSystem": { "system": "UTM", "zone": 23, "hemisphere": "S" },
        "areas": [{ "area": "Area A", "subarea": "Subarea 1" }]
    },
    "elements": [{ "family": "well", "id": "el_1", "name": "PM-01", ... }],
    "campaigns": [{ "id": "camp_1", "name": "Q1 2026", "startDate": "2026-01-01" }],
    "scenes": [{ "id": "scene_1", "name": "Overview", "viewStart": {}, "viewEnd": {} }],
    "families": {},
    "edges": [{ "id": "edge_1", "sourceId": "el_1", "targetId": "el_2", "type": "monitors" }],
    "areasTree": []
}

ECBT Blockchain Extensions

Blockchain-verified models add chain (hash provenance), merkle (content integrity root), author (key ID), and verification (ECDSA signature) fields. The schema version jumps to 3.0.0 for blockchain models.

Discoverable Panels — Painéis Descobríveis

Panels that ship with ecbyts but have no fixed toolbar home — reach them from the top ribbon More menu (menu Mais). This list is generated from the panel discovery registry, so it never drifts from the code. Painéis que existem no ecbyts mas não têm lugar fixo na barra — abra-os pelo menu Mais do ribbon superior.

Admin — Administração

Panel / PainelHow to open / Como abrirIcon
Instalação e backendMenu Mais → Instalação e backendserver

Data — Dados

Panel / PainelHow to open / Como abrirIcon
Descobrir ModelosMenu Mais → Descobrir Modelossearch
Portal de recebimento de EDDMenu Mais → Portal de recebimento de EDDfile-up
Catálogos do ECBTMenu Mais → Catálogos do ECBTbook-open
Orçamento CotadoMenu Mais → Orçamento Cotadodollar-sign
Áreas — cadastro e consultaMenu Mais → Áreas — cadastro e consultamap
Dicionário de camposMenu Mais → Dicionário de camposbook-open
Demonstrações de valorMenu Mais → Demonstrações de valorsparkles

Monitoring — Monitoramento

Panel / PainelHow to open / Como abrirIcon
TreinamentoMenu Mais → Treinamentobook-open
Saúde OcupacionalMenu Mais → Saúde Ocupacionalheart
Avaliação de Risco CETESBMenu Mais → Avaliação de Risco CETESBshield-alert

Governance — Governança

Panel / PainelHow to open / Como abrirIcon
Apontamento de horasMenu Mais → Apontamento de horasclock
Trilha de auditoriaMenu Mais → Trilha de auditoriahistory
ECBT Score (Veredito da Área)Menu Mais → ECBT Score (Veredito da Área)dollar-sign