⚠️ This API is not stable or real yet!: This document is a speculative API that details the deep integration of environmental crisis data into our digital and virtual devices. Please note that until we can get further support and development, this API is not considered stable or real yet, and any of these proposals may change with time. We’re incredibly interested in your feedback. If you spot an instance where this EcoMediations API can be improved, please do email for discussion. For any other questions, including support on how to use the API and as a place for open discussions on the design and principles, email us too.
An ecomediated API for the current Anthropocene and deep integrations with the Hyper Green Initiative.
Most API integrations help developers and designers build applications. Few approaches to APIs have investigated the potentials for incorporating and aggregating environmental crisis as a resource for programmatic incorporation into our digital and virtual experiences. The commoditization of programs, software, computing provide a new potential for delivering instantaneous climate feedback to the consumer, if we so choose to.
We at the Virtually Real Consortium propose that developers, makers, and more should begin moving towards an ecological hybridity of our degrading environment to our lived, digital, and virtual realities. There is no promise of a better environment tomorrow, but we can at least do our part in raising a new relationship and awareness with it.
This API is for use in our crisis driven future and follows RESTful standards and uses JSON.
The consortium's EcoMediations API is organized around public, private, and open source data sources. The Virtually Real Consortium (VRC) will have a crisis database in which stores all of the data sources from satellite to UAV surveying. From there the data is stored and is distributed into crisis scenarios. Each crisis scenario is categorized into two types of record containers, either species-specific or environmental-specific. From there each of these containers hold many variants of crisis records from atmosphere to seismic data.
Example UML:
Future data will be vetted through the VRC Data Ethics governing body where the source data is parsed for accuracy and filtered of redundancies. This governing body will help maintain consistency through an internal ETL/data cleaning process, especially as data is contributed from all fronts from the most micro DIY sensors to more complex uploads from institutions.
With the data and measurements of our environments, there is the idea of distinction between what is human influenced versus naturally occurring. With the v1 of this EcoMediations API, there will be no difference between nature and man-made environmental factors. The difference is not necessarily required to sense crisis, as humans can play both part in creating as well as tending to these moments of trouble. With that, a crisis is a crisis no matter how it's divided.
Through a few speculative near-future partnerships with environmental agencies such as the EPA, NASA, WWF, USDA, US Forest Service, and more... the VRC will be able to facilitate local and global agreements on thresholds in which environmental data cross and automates a new climactic event. Additionally, organizations using the EcoMediations API may follow the threshold examples below for their own implementation purposes.
The outputs of this crisis focused database is an embedding of crisis moments as an integrated moment in between our digital and virtual experiences. The goal is to partner with technology to showcase environmental crisis not as a static visualization, report, or mapping dashboard, but rather a truly dynamic imaginary implicitly part of products and software we consume on a day to day. A consumer grade level integration across all of our media.
All of the following events and objects will follow a format of containing attributes type & id. This will be followed by the attributes you may call.
This is an object that represents the type of Crisis Event in which you can call. You can retrieve it to see the highest level of the crisis itself.
GET /v1/crisis-events
- Type - Type of crisis event for the object.
- id - Unique identifier for the event.
- name - Specific name of the crisis event for the object.
- start_at - The beginning in which the crisis started based on the beginning of time.
- end_at - The end in which the crisis has ended. Potentially
null
if it is ongoing.
Example Code:
{
"data": [
{
"type": "crisis-event",
"id": "1",
"attributes": {
"name": "Global Brush Fire",
"start_at": "2020-03-01 00:00:00 -007",
"end_at": "2020-03-01 00:00:00 -007",
}
}
]
}
Scenarios mainly hold two types of records that can be retrieved from any crisis event, population (e.g. biodiversity, species identification, etc...) and/or environmental (seismologic data, atmospheric data, etc...). Within these two categories of records, there are many records in which can be pulled.
GET /v1/crisis-event/1/scenarios
- id - Unique identifier for the scenario.
- name - Specific name of the crisis event for the object.
- start_at - The beginning in which the crisis started based on the beginning of time.
- end_at - The end in which the crisis has ended. Potentially
null
if it is ongoing.
Example Code:
{
"data": [
{
"type": "crisis-scenario",
"id": "1",
"attributes": {
"scenario_type": "environmental",
"crisis_event_id": "1"
}
}
]
}
Records contain all data that contribute to a specific crisis scenario within both the environment and population groups. Each of these records return an assortment of attributes that range from temporal to amount measurements based on the type of crisis.
Note: Not all records contain the same data.
GET /v1/scenarios/:scenario_id/records?record_type=atmosphere
- id - Unique identifier for the record
- measured_at - Time in which record was measured
- temperature - Log of temperature
- measured_lat - Latitude of measurement devices
- measured_long - Longitude of measurement devices
- co2_level - Carbon levels in the air
- co2_unit_descriptor - Carbon level descriptor (PPM)
- ch4_level - Methane levels in the air
- ch4_unit_descriptor - Methane level descriptor
- no_level - Nitrogen Monoxide levels in the air
- no_unit_descriptor - Nitrogen Monoxide level descriptor
- no2_level - Nitrogen Dioxide levels in the air
- no2_unit_descriptor - Nitrogen Dioxide level descriptor
- pm2.5_level - Fine Particulate Matter levels
- pm2.5_unit_descriptor - Fine Particulate Matter descriptor (μg/m3)
- pm10_level - Fine Particulate Matter levels
- pm10_unit_descriptor - Large Particulate Matter descriptor (μg/m3)
An example of how CCTV has implemented with pm2.5
and pm10
are new markers on all of their footage across their natural surveying cameras. You can their incorporations of the location of area as well.
GET /v1/scenarios/:scenario_id/records?record_type=seismologic
- id - Unique identifier for the record
- started_at - Time in which record was measured
- duration - How long the seismic event lasted (minutes:seconds)
- epicenter_lat - Latitude of epicenter in which the earthquake started
- epicenter_long - Longitude of epicenter in which the earthquake started
- magnitude - Logged magnitude of earthquake from epicenter
- aftershock - Whether or not there was an aftershock
- ground_shift_mm - How much the ground shifted after the seismic event
Example Code:
{
"data": [
{
"type": "crisis-scenario",
"id": "1",
"attributes": {
"scenario_type": "Environmental"
[
{
"id": "SeismologicRecord",
"scenario_id": "1",
"report_id": "1",
"report_type": "SeismologicRecord",
}
]
}
}
]
}
GET /v1/scenarios/:scenario_id/records?record_type=canopyCover
- id - Unique identifier for the record
- measured_at - Time in which record was measured first
- total_area - the whole area in which the measurement is taking place
- tree_gain - how much canopy gain has happened in the area relative to a base measurement
- tree_loss - how much canopy loss has happened in the area relative to a base measurement
- total_loss_by_human - how much canopy loss to deforestation or other human activity
- total_loss_by_natural - how much canopy loss to natural occurrences
- density - volume density of the canopy growth within the Forest
- change_over_time an attribute based on two time parameters and change in either loss or gain from it
A few examples of Spotify's revamp on their music filter. Where songs are now modified based on total_loss_by_natural
to adjust pitch and tone. Just as well, additional elements of modification are drawn from the Species Record as an inclusion of Bark Beetle data in the Northern California forestry areas.
Sample Spotify EcoAudio Files:
Simon & Garfunkel - The Sound of Silence
The Temptations - Ain't too Proud
An example of how Unity developers are now including levels of growth and decay in in their VR development. Objects in Unity can link to our SDK for tree_gain
in which include an assortment of crisis centric realism that can be added to your plant life based on growth over time as well as cross-referencing moisture levels in the Atmospheric record.
GET /v1/scenarios/:scenario_id/records?record_type=arcticIceMass
- id - Unique identifier for the record
- measured_at - Time in which record was measured first
- total_area - the whole area in which the measurement is taking place
- ice_gain - how much arctic ice gain has happened in the area relative to a base measurement
- ice_loss - how much arctic ice loss has happened in the area relative to a base measurement
- methane_release - amount of methane released into the air based on ice_loss
An example of a remix and redux of Super Mario by Nintendo. With their re-release of the game, they hooked their web emulator to include ice_loss
in their most classic and beloved Super Mario Bros. Now Mario faces more than just Koopa Troopas but also a variety of ice and arctic based level obstacles integrated into gameplay.
GET /v1/scenarios/:scenario_id/records?record_type=seaLevel
- id - Unique identifier for the record
- measured_at - Time in which record was measured first
- temperature - temperature of the sea
- total_height - based on measurements from the designated sea gauge
- sea_height_variation - how much sea levels have risen compared and relative to a base measurement
- sea_level_change - change over time of sea level from base measurement
Example Code:
{
"data": [
{
"type": "crisis-scenario",
"id": "1",
"attributes": {
"scenario_type": "Environmental"
[
{
"id": "seaLevelRecord",
"scenario_id": "1",
"report_id": "1",
"report_type": "seaLevelRecord",
}
]
}
}
]
}
Below is a demo of another Unity project wherein developers have transformed a home VR scene with all of the relevant crisis focused data within the seaLevelRecord
, specifically based on sea_height_variation
.