Skip to content

scottvr/IDECEx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 

Repository files navigation

IDECEx

Interactive Drake Equation Calculator/Explorer

The most current dev branch can be played with in action at killsignal.net/IDECEx


… inspired by a conversation I was having with someone about recognizing an “alien” intelligence in which he brought up the Drake Equation and gave some value for N based on some common “WAG” (wild-ass guess) values for the other variables and showed me an online Drake Equation Calculator, then commenting: “what I’d like to do is be able to give it [the calculator] the number of civilizations (N), and see what probabilities you’d need to …”

The immediate implementation that came to mind would be to just allow the user of the calculator to edit any value in the currently displayed Drake Equation (its html form field), and then adjust the other values with algebraic rearranging of terms so that the equation is, well, equal on both sides.

But, since the initial values are hopefully sane, but admittedly “WAG” numbers, what new values would be appropriate for the variables not in focus? Random WAGs? Increments/decrements based on some rules? Update all of the variable values when calculating? How would the person who expressed the desire for a more flexible Drake Equation Calculator want to explore this?

I started putting some ideas into a text document and threw a small initial barebones calculator up on a webserver. I'm putting it here just to try to be more disciplined and less sloppy with personal projects.


Pasting my informal "requirements doc" and other ramblings pertaining to The IDECEx below. I'm not a software engineering manager nor product or project manager, and I don't have a team of frontend devs who will read this and deliver the goods. It's for me to try to focus on deliverables, avoiding scope-creep and resisting the ADHD-propensity to shinier things. For more esoteric stuff like what libraries might be well-suited for the visualizations, I may add ChatGPT or Claude (or whatever LLM) to the team, but in any case this is a work in progress, not a released product.


The Equation (Calculation)

The Drake Equation is typically written as:

$$ N = R_* \times f_p \times n_e \times f_l \times f_i \times f_c \times L $$

where:

$N =$ number of civilizations with which humans could communicate

$R_* =$ average rate of star formation in our galaxy

$f_p =$ fraction of those stars that have planetary systems

$n_e =$ average number of planets that could potentially support life per star with planets

$f_l =$ fraction of planets that could support life where life actually appears

$f_i =$ fraction of planets with life where intelligent life evolves

$f_c =$ fraction of civilizations that develop a technology that releases detectable signs of their existence into space

$L =$ length of time such civilizations release detectable signals into spaceship

Focusing on other variables

Mathematically, it is trivial to rewrite the equation to solve for any individual variable. For example:

$$ R_* = \frac{N}{f_p \times n_e \times f_l \times f_i \times f_c \times L} $$

Similarly, any other variable can be isolated by rearranging the equation accordingly.

UI/UX (Exploration)

User Interactivity

  • Interactive Inputs: Each variable should have an input field that allows users to enter or adjust values. To solve for a specific variable, users can leave that field blank or mark it as the one to be calculated.

  • Locking Values: A checkbox next to each input field can be used to "lock" a value. When a value is locked, it remains constant, and other variables are adjusted around it.

  • Real-time Calculation: As users adjust values or lock/unlock variables, real-time calculations update the remaining variables. JavaScript can handle this dynamically.

Constraints and Controls

  • Min/Max Values: Define reasonable ranges for each variable based on scientific knowledge or user preferences.
  • Increment/Decrement Arrows: Allow users to fine-tune values easily.
  • Integer-only Constraint: Depending on the context, some variables might make sense as integers (e.g., the number of planets).

Implementation Strategy

Initial Form/Equation Setup:

  • Start with default WAG values for each variable and compute

User Interaction:

  • Based on which fields are locked and the target variable, the system rearranges the equation and computes the necessary value. recalculation should happen immediately and dymanically without requiring a "re-calculate" button.

Dynamic Feedback:

  • Use real-time updates to show the impact of changes immediately. This helps users understand the relationships between variables better. Later addition of data visualization techniques (charts plots, graphs, 3D animated somulations, who knows?), this will be more evident.

Example Workflow

  1. Default State:

All variables have initial WAG values, and $N$ is calculated.

  1. User selects to solve for $L$:

The user selects via a dropdown, then tweaks, locks, and/or randomizes any other variable values a specific value for $N$.

  1. Recalculate:

The system identifies $L$ as the dependent variable, locks it, and recalculates the appropriate variable based on which fields are editable and which are locked.

  1. Interactive Adjustment:

The user can lock/unlock other variables and see real-time updates as they make adjustments.

Example UI Flow

a single page with a landing section at top, main equation interface section below, and the vast space below that for visualizations.

  1. Landing:
  • Briefly introduce the Drake Equation, its purpose, and the interface.
  1. Main Interface:
  • Input Fields/Sliders:
    • For each variable, with tooltips and initial values.
  • Solve For:
    • Dropdown(??) to select the variable to solve for.
  • Lock/Unlock Checkboxes:
    • Next to each variable input.
  • (opt'l/later) Scenario Presets:
    • Buttons to load preset scenarios.
  • Advanced Options:
    • Tab or section for custom ranges and probability distributions.
  1. Results Section:
  • Show calculated values, graphs, and possibly a summary of the implications.
  • Graphs/Charts:
    • Displaying the results dynamically.
    • Perhaps a visual representation of planets, their sizes and distances, with labels to help drive the point home.

Additional thoughts/guidance wrt UI/UX

Intuitive Layout:

  • Arrange the variables in a logical and visually appealing way.
  • Consider grouping related variables together and using clear labels to indicate their meanings.

Dynamic Visualization:

  • Graphs and Charts:
    • Display the relationships and impacts of variable changes using graphs. For instance, show how changing $f_p$ or $L$ affects $N$.
  • Interactive Sliders:
    • Use sliders for variables, allowing users to see real-time changes.
    • Sliders can be paired with input fields for precise control.
  • Tooltips and Explanations:
    • Include tooltips that explain each variable and its significance when hovered over.
    • Provide a brief summary of the Drake Equation and its purpose for new users.
  • Preset Scenarios:
    • Initially might be useful to serve as documentation
    • Offer preset scenarios with predefined values for the variables. This helps users get started quickly and understand typical ranges.
    • (optionally/later) Allow users to save their own scenarios for later analysis.
  • Advanced Options:
    • Custom Ranges: Let users set custom min/max ranges for each variable.
    • Probability Distributions: For more advanced users, include options to use probability distributions instead of single values to reflect uncertainty.
  • Responsive Design:
    • Ensure the interface works well on various devices, including desktops, tablets, and smartphones.

Important Functionality Clarification

Reverse Calculation Feature:

The app should allow users to solve for any variable, not just $N$.

Should we implement a dropdown or toggle to select the target variable, rather than just using the field that caused the event that triggers recalculation? No preference here; looking for feedback on what is easiest to implement and is thought will be most obvious to a user. When a variable is selected as the target, lock it and adjust the other variables accordingly.

Desireable Features, but not required for MVP. If easily implemented, we should try for the MVP though.

Simulation Mode:

  • Enable users to run simulations that vary one or more variables within a specified range and visualize the results.
  • Show a range of possible outcomes to highlight the impact of uncertainty.

Collaborative Features:

  • Implement a feature for users to share their scenarios and results with others.
  • Include a discussion or comment section where users can discuss their findings and hypotheses.

Post-MVP Enhancements

Educational Content:

  • Provide links to articles, videos, or other resources explaining the Drake Equation and its components in more detail.
  • Include case studies or historical data related to the search for extraterrestrial life.

Graphs, Plots, and Charts (Oh,my!)

Some initial ideas

  • Scale Solar System Map (using D3.js):

Create a zoomable, interactive map showing hypothetical star systems. Represent stars of different sizes based on the calculated probability of hosting life. Show orbiting planets, with habitable planets highlighted. Allow users to click on stars or planets for more detailed information.

  • Galaxy Density Heatmap:

Use a heatmap to represent the density of civilizations across a hypothetical galaxy. Colors could range from cool (low density) to hot (high density). This could help visualize how changes in variables affect the distribution of civilizations.

  • Variable Relationship Graphs:

Create interactive scatter plots showing relationships between different variables. For example, plot N (number of civilizations) against L (longevity of civilizations). Allow users to select which variables to plot against each other.

  • Probability Distribution Curves:

For each variable, show a bell curve or other appropriate probability distribution. As users adjust values, the curves could update in real-time.

  • Timeline Visualization:

Create a timeline showing the potential evolution of civilizations over time. This could be particularly interesting for visualizing the effects of changing the L variable.

  • Comparative Bar Charts:

Show how the current calculation compares to famous estimates or user-saved scenarios. This could help users understand how their inputs relate to other well-known Drake Equation estimates.

  • 3D Galaxy Model:

Create a 3D model of a galaxy with stars representing civilizations. Allow users to rotate and zoom into the model. This could be achieved using Three.js, which works well with D3.js.

  • Sensitivity Analysis Tornado Chart:

Show how sensitive the final result (N) is to changes in each variable. This should demonstrate which variables have the most significant impact on the outcome.

Rare Earth Hypothesis

The Rare Earth Equation can be expressed as:

$$ N=R_∗ ​×f p ×n e ×f l ×f i ×f c ×L×f g ×f pm ×f jm ×f me ×f ac ​$$

Where the new, highly restrictive factors could include:

$f_g =$ The fraction of stars in the galactic habitable zone.

$f_{pm} =$ The fraction of planets with the right planetary mass.

$f_{jm} =$ The fraction of solar systems with Jupiter-like gas giants to shield inner planets.

$f_{me} =$ The fraction of planets with a sufficiently low number of mass extinction events.

$f_{ac} =$ The fraction of planets with an atmosphere-cycling carbon cycle.

About

Interactive Drake Equation Calculator-Explorer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published