Skip to content
Scott Veirs edited this page Dec 23, 2024 · 12 revisions

Welcome to the orcasite wiki!

History

~2002-2017: mp3 streams + Wordpress

  • Hydrophone nodes used Winamp/Shoutcast plugin to generate an mp3 stream (30 seats max/node)
  • Val built WhoListener (Visual Basic, then QT) to monitor noise levels and automate orca detection
  • orcasound.net used Wordpress for CMS & blog

2017: Kickstarter

  • Raised ~$20k
  • Goal: an open source live-streaming solution and community science project that would scale to conserve orcas

2018: development of an Elixir/Phoenix web app (v1)

  • Design for mobile only (contributed by Erin in a hackathon)
  • Development led by Skander Mzali and Paul Cretu
  • Initiation of companion orcanode repo and strategic decision to optimize playback via ffmpeg-generated HLS segments for lossy streaming and FLAC for a lossless archive (reserving right to later/also explore DASH, and eventually FLAC in DASH)
Screenshot 2024-02-13 at 2 35 58 PM

2019: improved design for desktop web app (v2)

  • Improved desktop UI
  • Development led by Mike Castor
  • Added "I hear something interesting button" for increased community scientist interaction
  • Added admin UI for review of human detections

2020: design for mobile + desktop web app (v3)

  • Team effort from all-volunteer UX/design group, led by Brendan Thatcher
  • Discussion of how to blend live.orcasound.net and content/blog at orcasound.net

2021: development of v3

A concerted effort in 2021 included a new architecture for the Orcasound web app along with a suite of new features and APIs. Start of a new Orcasound.net, including start of orcahome Github repo and a Next.js framework, transfer of content from Wordpress site to a static generator.

2022: beta launch of v3

  • 4/22/22 update (lead dev Paul on Slack):

The current live site is in the v2-ui branch. The v3 redesign is in the master branch. The reason you see all the Elixir stuff is because it's still an Elixir app; I'm not removing Elixir for v3, just replacing the frontend (Next.js instead of vanilla react). The folder layout for an elixir app is that all the frontend code goes in the /assets folder. So you'll find the v2 frontend code here.

For v3, I'm planning on completely separating the frontend and backend, so I won't be using the assets folder anymore. Instead I made a folder called /ui where the new Next.js project is (link here). Eventually I want to move everything around and just have two top level folders when you open the repo: /ui and /api. I think that will help people hop in a lot more easily, without being scared away by the backend code.

2023: public launch of Orcasound v3 (Nov, 2023)

Version 3 soft-launched via live.orcasound.net on November 1st, 2023, followed by a public launch in mid-November, 2023. Key new features include: dynamic map (using leaflet); new reporting/annotation interface (with whale vs vessel vs other categories); public view of report list, including 30+ second clips for playback; administrative UI leveraging the Ash framework; and a GraphiQL playground (pronounced "Graphical" per the GraphiQL home page).

2024: evolution of a moderator UI

Building incrementally on v3, during 2024 Skander and Paul led development of backend infrastructure to set the stage for building community within the Orcasound web app. Adding user accounts was a first step to enabling listeners to "level up" to become annotators, moderators, or administrators. Adrian led a series of workshops that helped explore current and future Orcasound user personas, including community roles we are just beginning to define. Simultaneously, we designed and mocked up a suite of interfaces to support those personas including a bouts page and a moderator UI with audio visualization (starting with a spectrogram) to enable demarcation of the start and end time of bouts.

Google Summer of Code student contributions

Architectural and framework strategy (Paul Cretu, lead)

See this discussion topic for Paul's view into Orcasound architecture -- past and future -- and please share your thoughts!