├── .github ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── leadership-task.yml │ ├── blog-post-draft.md │ └── event-preparation.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── docs ├── fellowship │ ├── fellowship_directory.md │ ├── onm_fellowship_proposal_template.md │ └── path_to_fellowship.md ├── initiatives │ ├── submit_initiative_instructions.md │ ├── README.md │ ├── new_initiative_template.md │ ├── todo │ │ ├── leadership_github_org.md │ │ ├── grand_challenge.md │ │ ├── systematic_task_completion.md │ │ └── interactive_llm.md │ ├── in-progress │ │ ├── funding_models.md │ │ ├── student_talks.md │ │ ├── strategy_rollout.md │ │ ├── internal_tools_improvement.md │ │ ├── social-media-engagement │ │ │ ├── README.md │ │ │ └── social_media_playbook.md │ │ ├── peer-review-program │ │ │ ├── README.md │ │ │ ├── submitter_guide.md │ │ │ └── reviewer_guide.md │ │ ├── events-coordinator │ │ │ ├── README.md │ │ │ └── events_coordinator_playbook.md │ │ ├── hardware-and-software-curator │ │ │ ├── README.md │ │ │ └── hardware_and_software_curator_playbook.md │ │ └── website_revitalization.md │ └── onm_fellowship_charter.md ├── README.md ├── policies │ ├── open-definition.md │ ├── event_participant_agreement.md │ ├── content_and_contribution.md │ └── sponsorship_policy.md └── ONM-Organisational-Charter.md ├── dashboard ├── main.py ├── pages │ ├── seo_performance.py │ ├── audience_insights.py │ ├── website_metrics.py │ ├── content_performance.py │ ├── community_engagement.py │ └── overall_health_growth.py └── streamlit_dashboard_setup.md ├── status-reports ├── README.md ├── 2025-09-13-justin-riddiough.md ├── 2025-09-24-justin-riddiough.md └── 2025-09-06-justin-riddiough.md ├── meeting_notes └── 6_18_25.md ├── LICENSE ├── CODE_OF_CONDUCT.md └── README.md /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: [] -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | **venv** 2 | **.env** 3 | test* 4 | **DS** 5 | .idea 6 | context.txt 7 | /os 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/leadership-task.yml: -------------------------------------------------------------------------------- 1 | name: Leadership Task 2 | description: Track organizational tasks for Open Neuromorphic leadership team 3 | title: "" 4 | labels: ["leadership", "task", "priority"] 5 | assignees: [] 6 | 7 | body: 8 | - type: markdown 9 | attributes: 10 | value: | 11 | ## 🧠 Open Neuromorphic Leadership Task 12 | 13 | - type: textarea 14 | id: context 15 | attributes: 16 | label: Context & Objectives 17 | description: Why is this task important? How does it align with ONM’s goals? 18 | placeholder: e.g., Increase community engagement by hosting high-profile speakers... 19 | -------------------------------------------------------------------------------- /docs/fellowship/fellowship_directory.md: -------------------------------------------------------------------------------- 1 | # 🧑‍🤝‍🧑 ONM Fellowship Directory 2 | 3 | This page lists all recognized ONM Fellows and the initiatives they are currently accountable for. 4 | 5 | --- 6 | 7 | ## 🧠 @Daniel Rosen 8 | 9 | **Accountable Initiatives:** 10 | - [Internal Tools Improvement](../initiatives/internal_tools_improvement.md) 11 | - [Systematic Task Completion Methods](../initiatives/systematic_task_completion.md) 12 | - [Strategy Rollout](../initiatives/strategy_rollout.md) 13 | 14 | --- 15 | 16 | ## 🧠 @Jens E. Pedersen 17 | 18 | **Accountable Initiatives:** 19 | - *(None listed yet)* 20 | 21 | --- 22 | 23 | ## 🧠 @Justin Riddiough 24 | 25 | **Accountable Initiatives:** 26 | - *(None listed yet)* 27 | 28 | --- 29 | 30 | > Want to become a Fellow? Learn more about the [Path to Fellowship](./path_to_fellowship.md) 31 | -------------------------------------------------------------------------------- /docs/initiatives/submit_initiative_instructions.md: -------------------------------------------------------------------------------- 1 | # 📝 How to Submit Your Initiative Proposal 2 | 3 | Welcome! If you're proposing a new initiative as part of your ONM Fellowship process, follow these simple steps: 4 | 5 | 1. **Fill out the initiative template** 6 | - Use the [initiative template](./new_initiative_template.md) to describe your idea, goals, and timeline. 7 | 8 | 2. **Submit a Pull Request (PR)** 9 | - Create a new `.md` file in the `/initiatives/` folder and open a pull request. 10 | 11 | 3. **Collaborate with the Fellowship Team** 12 | - The team will review your proposal, leave comments, and help refine the plan through the PR discussion. 13 | 14 | Once approved, your initiative will be added to the live directory and assigned a GitHub label. 15 | 16 | > Need help? Reach out on [Discord](https://discord.gg/openneuromorphic) 17 | -------------------------------------------------------------------------------- /dashboard/main.py: -------------------------------------------------------------------------------- 1 | import streamlit as st 2 | 3 | st.set_page_config(page_title="Open Neuromorphic Dashboard", layout="centered") 4 | st.title("🧠 Open Neuromorphic Engagement Dashboard") 5 | st.markdown("Welcome! Use the links below to explore different engagement metrics across ONM's platforms.") 6 | 7 | st.divider() 8 | 9 | st.subheader("🔍 Navigation") 10 | 11 | st.page_link("pages/overall_health_growth.py", label="📊 Overall Health & Growth") 12 | st.page_link("pages/website_metrics.py", label="🌐 Website Performance & Engagement") 13 | st.page_link("pages/seo_performance.py", label="🔎 SEO Performance") 14 | st.page_link("pages/content_performance.py", label="📝 Content Hub (Blog, Workshops, YouTube)") 15 | st.page_link("pages/audience_insights.py", label="🤝 Community Engagement (Discord, LinkedIn)") 16 | st.page_link("pages/community_engagement.py", label="👥 Community Engagement Focus (Discord 'getting-involved')") 17 | st.divider() 18 | 19 | st.caption("📈 This dashboard is a work-in-progress. Data is updated via APIs from Google Analytics, Search Console, YouTube, Discord, and LinkedIn.") -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # 📝 Pull Request Template 2 | 3 | ## 📌 Summary 4 | 5 | _Provide a brief summary of the changes or additions in this pull request._ 6 | 7 | - What is being added or changed? 8 | - Why is this needed? 9 | 10 | --- 11 | 12 | ## 📂 Related Issues 13 | 14 | _Reference any related issues or tasks._ 15 | 16 | - Closes # 17 | - Related to # 18 | 19 | --- 20 | 21 | ## 🧾 Type of Change 22 | 23 | _Check all that apply:_ 24 | 25 | - [ ] 📄 Content Update (e.g., blog post, social post draft, newsletter copy) 26 | - [ ] 🧠 Planning or Documentation (e.g., meeting notes, strategy doc) 27 | - [ ] 🧰 Tooling/Infra (e.g., script, automation) 28 | - [ ] 🐛 Bug Fix 29 | - [ ] ✨ Feature or Enhancement 30 | - [ ] ♻️ Refactor or Code Cleanup 31 | - [ ] Other: _describe below_ 32 | 33 | --- 34 | 35 | ## ✅ Checklist 36 | 37 | _Confirm the following before requesting a review:_ 38 | 39 | - [ ] I have reviewed my changes and ensured clarity 40 | - [ ] All relevant files are included and formatted properly 41 | - [ ] I have linked to any resources or references 42 | - [ ] I have assigned reviewers if needed 43 | - [ ] This PR is ready for review 44 | 45 | --- 46 | 47 | ## 📸 Screenshots / Attachments (if applicable) 48 | 49 | _Add any relevant visuals or file attachments here._ 50 | 51 | --- 52 | 53 | ## 💬 Additional Notes 54 | 55 | _Anything else the reviewers should be aware of?_ -------------------------------------------------------------------------------- /docs/initiatives/README.md: -------------------------------------------------------------------------------- 1 | # 📂 ONM Initiatives by Strategic Pillar 2 | 3 | ## Pillar 1: Inclusion & Onboarding 4 | #### Cultivate an environment where every individual feels welcomed, valued, enabled to contribute meaningfully, and empowered on their personal learning journey. 5 | --- 6 | 7 | _No active initiatives listed yet._ 8 | 9 | ## Pillar 2: Documentation & Transparency: 10 | #### Significantly grow ONM's audience, establish ONM as the go-to resource for neuromorphic computing, and attract a continuous flow of new learners and contributors 11 | --- 12 | 13 | _No active initiatives listed yet._ 14 | 15 | ## Pillar 3: Feedback & Interactivity 16 | #### Facilitate mutual communication between leadership and members 17 | --- 18 | - [Strategy Rollout](strategy_rollout.md) 19 | 20 | ## Pillar 4: Website as Learning & Contribution Hub 21 | #### Leverage the open neuromorphic website as a centralized locus of the latest information on Neuromorphic Computing research 22 | --- 23 | - [Website Revitalization](website_revitalization.md) 24 | 25 | ## Pillar 5: Self-Organizing Working Groups 26 | #### Stimulate engagement by creating small groups designed to handle specific facets of development of the ONM community 27 | --- 28 | _No active initiatives listed yet._ 29 | 30 | ## Pillar 6: Administrative Excellence 31 | #### Maximally utilize available technologies to foster efficiency, simplicity, and effectiveness in the ONM team's task completion 32 | ---- 33 | - [Internal Tools Improvement](internal_tools_improvement.md) 34 | - [Systematic Task Completion Methods](systematic_task_completion.md) 35 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # 👋 Welcome to the ONM Community Portal 2 | 3 | Open Neuromorphic (ONM) is a collaborative, community-driven effort to advance neuromorphic computing through open source projects, inclusive participation, and shared knowledge. 4 | 5 | This site documents our core initiatives, tracks contributions from active Fellows, and helps you discover where and how to get involved. 6 | 7 | --- 8 | 9 | ## 🧑‍🤝‍🧑 Fellowship Directory 10 | 11 | Meet the individuals recognized for their sustained contributions and leadership within the ONM ecosystem. 12 | 13 | Fellows are: 14 | - Active contributors to ONM projects and events 15 | - Leaders of key initiatives 16 | - Stewards of our open, inclusive community 17 | 18 | 👉 [Browse the Fellowship Directory](./fellowship/fellowship_directory.md) 19 | 20 | --- 21 | 22 | ## 🚀 Initiatives Directory 23 | 24 | ONM initiatives are the driving forces behind our growth and progress. Each initiative is tied to a strategic pillar and led by a Fellow or contributor. 25 | 26 | Each initiative page includes: 27 | - Goals and milestones 28 | - Assigned accountable Fellow(s) 29 | - Live updates and related GitHub issues 30 | 31 | 👉 [Explore Active Initiatives](./initiatives/README.md) 32 | 33 | --- 34 | 35 | ## 🧭 How to Get Involved 36 | 37 | Interested in contributing or becoming a Fellow? 38 | Start by joining our discussions, contributing to an initiative, or proposing your own. 39 | 40 | 👉 [Path to Fellowship](./fellowship/path_to_fellowship.md) 41 | 👉 [GitHub Repository](https://github.com/open-neuromorphic) 42 | 👉 [Join the Discord](https://discord.gg/openneuromorphic) 43 | -------------------------------------------------------------------------------- /docs/policies/open-definition.md: -------------------------------------------------------------------------------- 1 | ### **ONM's Principles for Open Resources** 2 | To be considered a fully open resource in our community, a work **MUST**: 3 | - **Allow anyone to study, modify, and share** the material for any purpose, including commercial use. 4 | - **Provide materials in a publicly accessible format that allows for modification and reuse.** For text or code, this means source files (e.g., Markdown, notebooks). For other media, the published format is often the source (e.g., a CC-licensed PDF or YouTube video). 5 | - **Not restrict derivatives.** 6 | - **Not be released under a "Non-Commercial" (NC) license.** 7 | 8 | A resource **MAY**: 9 | - **Require attribution** be given to the original creators (like CC-BY). 10 | - **Require derivatives to carry a reciprocal license** (like Share-Alike "SA" or GPL). 11 | 12 | We will prioritize resources with permissive licenses like **CC-BY**, **CC-BY-SA**, **MIT**, and **Apache 2.0**. While we still value resources with Non-Commercial (NC) or No-Derivatives (ND) clauses, we will mark them as having restrictions, as they do not grant the full freedom to the community to build upon them. 13 | 14 | ### Licensing Note: 15 | This policy and associated ONM website content are released under a Creative Commons Attribution-ShareAlike (CC BY-SA) license. The ShareAlike clause ensures that any derivatives or adaptations remain equally open and freely available, reinforcing our commitment to openness and community benefit. We recognize that ShareAlike may limit adoption by organizations that wish to apply additional restrictions, but we believe this approach best protects the open, collaborative spirit of our community. 16 | -------------------------------------------------------------------------------- /status-reports/README.md: -------------------------------------------------------------------------------- 1 | # ONM Executive Committee Status Reports 2 | 3 | This directory contains periodic status reports from members of the Open Neuromorphic Executive Committee. The goal of these reports is to maintain a transparent and asynchronous log of our activities, progress, and blockers. 4 | 5 | ## How to Add a Report 6 | 7 | 1. Create a new Markdown file in this directory. 8 | 2. Use the following naming convention: `YYYY-MM-DD-author-name.md`. (e.g., `2025-09-06-justin-riddiough.md`) 9 | 3. Use the template below to structure your report. 10 | 11 | ### Report Template 12 | 13 | ``` 14 | # Status Report: [Author Name] - [YYYY-MM-DD] 15 | 16 | ## 🎯 Highlights & Key Accomplishments 17 | - *A brief, 2-3 bullet point summary of the most important achievements this period.* 18 | - *Example: Launched the new Mission Board feature on the website.* 19 | 20 | ## ❗ Blocked / Awaiting Review 21 | * **[Item Name]:** Brief description of what is needed and from whom. [Link to PR/Issue] 22 | * **Example:** **Content & Sponsorship Policy:** Awaiting final review from the committee. [Awaiting Review in #88](https://github.com/open-neuromorphic/communications/pull/88) 23 | 24 | --- 25 | 26 | ## ✅ Completed Tasks 27 | 28 | ### 🏛️ Governance 29 | - [Description of task]. [CLOSED #Issue/PR] 30 | 31 | ### 📣 Communications 32 | - [Description of task]. [CLOSED #Issue/PR] 33 | 34 | ### 🌐 Website 35 | - [Description of task]. [CLOSED #Issue/PR] 36 | 37 | --- 38 | 39 | ## ⏳ In Progress 40 | 41 | ### 🏛️ Governance 42 | - [Description of task]. [UPDATED #Issue/PR] 43 | 44 | ### 📣 Communications 45 | - [Description of task]. [UPDATED #Issue/PR] 46 | 47 | ### 🛠️ Resources & Infrastructure 48 | - [Description of task]. 49 | 50 | --- 51 | 52 | ## 💡 Next Steps / Focus for Next Week 53 | - *A short list of the top 1-3 priorities for the upcoming period.* 54 | ``` -------------------------------------------------------------------------------- /docs/initiatives/new_initiative_template.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: [Initiative Title] 2 | 3 | **Accountable Fellow:** @\ 4 | 5 | **Approver:** @\ 6 | **Status:** \ 7 | 8 | **Due Date:** \ 9 | 10 | **Contributors:** @\, [others] 11 | **Informed:** Leadership Team, Stakeholders 12 | 13 | --- 14 | 15 | ## 🎯 Objective 16 | 17 | Briefly describe what this initiative aims to accomplish and why it matters. 18 | 19 | --- 20 | 21 | ## 🧠 Problem Statement 22 | 23 | What problem is this initiative trying to solve? 24 | Include a hypothesis: _“We believe X will result in Y, and we’ll know we’ve succeeded if Z.”_ 25 | 26 | --- 27 | 28 | ## 🧾 Key Outcomes 29 | 30 | - Outcome 1 31 | - Outcome 2 32 | - Outcome 3 33 | 34 | --- 35 | 36 | ## 🗺️ Scope 37 | 38 | | Category | Description | 39 | |------------------|---------------------------------------------| 40 | | Must Have | Core requirements of the initiative | 41 | | Nice to Have | Optional features or stretch goals | 42 | | Not in Scope | What this initiative will not address | 43 | 44 | --- 45 | 46 | ## 🗓️ Timeline 47 | 48 | | Milestone | Owner | Deadline | Status | 49 | |------------------------|------------------|--------------|---------| 50 | | Example milestone | @username | YYYY-MM-DD | ⏳ | 51 | | Final review | @username | YYYY-MM-DD | ⏳ | 52 | 53 | --- 54 | 55 | ## 🗒️ Updates Log 56 | 57 | | Date | Update Summary | Author | 58 | |------------|-------------------------------------|---------------| 59 | | 2025-05-25 | Example update | @username | 60 | 61 | --- 62 | 63 | ## 🔗 Reference Materials 64 | 65 | - [GitHub Issue](#) 66 | - [Discord Thread](#) 67 | - [Docs or Files](#) -------------------------------------------------------------------------------- /docs/fellowship/onm_fellowship_proposal_template.md: -------------------------------------------------------------------------------- 1 | # 🧑‍🔬 Fellowship Proposal: [Your Name] 2 | 3 | Thank you for your interest in becoming a Fellow of Open Neuromorphic! Please complete the following questionnaire and submit it as a pull request to the `/fellows/` directory. 4 | 5 | --- 6 | 7 | ## 🪴 Summary 8 | 9 | Provide a short summary of your background and motivation for applying for ONM Fellowship. 10 | 11 | --- 12 | 13 | ## 💬 Engagement & Contributions 14 | 15 | Describe how you have actively participated in the ONM community. Please include links or references when applicable. 16 | 17 | - Discord discussions or support you've provided 18 | - Blog posts, documentation, or educational materials 19 | - ONM events you’ve helped with (e.g., Student Talks, workshops) 20 | - Projects you’ve contributed to or proposed 21 | - Mentorship or onboarding efforts 22 | - Representing ONM at external venues 23 | 24 | --- 25 | 26 | ## 🎯 Alignment with ONM's Mission 27 | 28 | Explain how your contributions reflect ONM’s values of openness, collaboration, and advancing neuromorphic computing. 29 | 30 | --- 31 | 32 | ## 🧠 Initiative Proposal (Optional but Recommended) 33 | 34 | If you are proposing or wish to lead an initiative as part of your Fellowship, describe it below. 35 | 36 | **Title:** 37 | **Objective:** 38 | **Problem It Solves:** 39 | **Planned Outcomes:** 40 | **Initial Milestones:** 41 | 42 | (You may also submit a formal initiative Markdown page separately and link to it here.) 43 | 44 | 45 | --- 46 | 47 | ## 🧾 Confirmation 48 | 49 | - [ ] I affirm that I support ONM’s mission and values. 50 | - [ ] I agree to uphold the ONM Code of Conduct in all my interactions. 51 | - [ ] I am prepared to participate in ONM governance activities such as voting and reporting. 52 | 53 | --- 54 | 55 | ## 🔗 Relevant Links 56 | 57 | - Discord handle: `@yourhandle` 58 | - GitHub profile: [link] 59 | - Contributions / mentions: [link] 60 | -------------------------------------------------------------------------------- /docs/fellowship/path_to_fellowship.md: -------------------------------------------------------------------------------- 1 | # 🌱 Path to Fellowship 2 | 3 | Open Neuromorphic (ONM) Fellowship is a formal recognition of individuals who actively contribute to our mission of advancing neuromorphic computing through open collaboration. 4 | 5 | --- 6 | 7 | ## 🛠️ How to Qualify 8 | 9 | To be eligible for Fellowship, you must demonstrate: 10 | 11 | - **Constructive Engagement** 12 | Regular, positive participation in ONM channels (e.g., Discord, events, or documentation). 13 | 14 | - **Tangible Contributions** 15 | - Authoring blog posts or educational materials 16 | - Contributing to ONM projects 17 | - Organizing or supporting community events 18 | - Mentoring or helping other contributors 19 | - Representing ONM externally 20 | 21 | - **Leadership Intention** 22 | Candidates should propose or commit to leading a specific ONM initiative. 23 | 24 | - **Alignment with ONM Values** 25 | A demonstrated understanding of and support for ONM's mission and open source principles. 26 | 27 | --- 28 | 29 | ## 📝 How to Become a Fellow 30 | 31 | There are two nomination paths: 32 | 33 | - **Self-Nomination** 34 | Submit a short expression of interest to the ONM Secretary, including your past contributions and proposed initiative. The instructions for this can be found [here](../initiatives/submit_initiative_instructions.md) 35 | 36 | - **Peer Nomination** 37 | Any existing Fellow can nominate a candidate by contacting the Secretary. 38 | 39 | ONM leadership conducts a lightweight vote among active Fellows. A simple majority vote grants Fellowship. 40 | 41 | --- 42 | 43 | ## 🧭 Staying in Good Standing 44 | 45 | Fellows must remain active by: 46 | 47 | - Attending at least one General Meeting every two years **or** 48 | - Contributing to the Annual Report with updates, reflections, or proposals 49 | 50 | --- 51 | 52 | ## 🎁 Benefits of Fellowship 53 | 54 | - Right to vote in ONM elections and initiatives 55 | - Ability to nominate new Fellows 56 | - Eligibility for leadership roles 57 | - Recognition and visibility in the neuromorphic community 58 | 59 | --- 60 | 61 | Interested in applying? Start by proposing an [initiative](../initiatives/new_initiative_template.md) or reaching out on [Discord](https://discord.gg/wj3wGVjb). 62 | -------------------------------------------------------------------------------- /docs/initiatives/todo/leadership_github_org.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: Establish ONM GitHub Organization 2 | 3 | **Accountable Fellow:** @DRosen766 4 | 5 | **Approver:** @ 6 | **Status:** TODO 7 | 8 | **Due Date:** 9 | 10 | **Contributors:** @ 11 | **Informed:** Leadership Team, Stakeholders 12 | 13 | --- 14 | 15 | ## 🎯 Objective 16 | 17 | Create an official GitHub organization for Open Neuromorphic to centralize project repositories, streamline collaboration, and strengthen the group's online presence. 18 | 19 | --- 20 | 21 | ## 🧠 Problem Statement 22 | 23 | ONM’s project repositories and collaborative resources are fragmented or lack a unified identity. 24 | _Hypothesis:_ We believe centralizing resources in a dedicated GitHub organization will improve discoverability and governance, and we’ll know we’ve succeeded if contributors and users consistently use the organization as the hub for ONM activities. 25 | 26 | --- 27 | 28 | ## 🧾 Key Outcomes 29 | 30 | - Creation of the ONM GitHub organization 31 | - Migration and centralization of core project repositories 32 | - Establishment of clear governance and access policies 33 | 34 | --- 35 | 36 | ## 🗺️ Scope 37 | 38 | | Category | Description | 39 | |--------------|----------------------------------------------------------| 40 | | Must Have | Organization creation, core repo migration, access setup | 41 | | Nice to Have | Automated onboarding, org-wide documentation | 42 | | Not in Scope | Non-GitHub platforms, private/proprietary hosting | 43 | 44 | --- 45 | 46 | ## 🗓️ Timeline 47 | 48 | | Milestone | Owner | Deadline | Status | 49 | |--------------------------|-------------|--------------|--------| 50 | | Org created | @DRosen766 | YYYY-MM-DD | ⏳ | 51 | | Core repos migrated | @ | YYYY-MM-DD | ⏳ | 52 | | Policies documented | @ | YYYY-MM-DD | ⏳ | 53 | 54 | --- 55 | 56 | ## 🗒️ Updates Log 57 | 58 | | Date | Update Summary | Author | 59 | |------------|-----------------------------------------|-------------| 60 | | 2025-06-25 | Initiative plan drafted from Issue #62 | @DRosen766 | 61 | 62 | --- 63 | 64 | ## 🔗 Reference Materials 65 | 66 | - [GitHub Issue](https://github.com/open-neuromorphic/communications/issues/62) 67 | - [Docs or Files](https://github.com/open-neuromorphic/communications/tree/main/docs/initiatives) -------------------------------------------------------------------------------- /dashboard/pages/seo_performance.py: -------------------------------------------------------------------------------- 1 | 2 | # seo_performance.py 3 | 4 | import streamlit as st 5 | import os 6 | import pandas as pd 7 | from google.oauth2 import service_account 8 | from googleapiclient.discovery import build 9 | from datetime import date, timedelta 10 | 11 | st.set_page_config(page_title="SEO Performance", layout="wide") 12 | st.title("🔎 SEO Performance (Search Console)") 13 | 14 | # Config 15 | SCOPES = ["https://www.googleapis.com/auth/webmasters.readonly"] 16 | PROPERTY_URI = os.getenv("GSC_PROPERTY_URI") # e.g., 'https://yourdomain.com/' 17 | 18 | def load_gsc_data(credentials_json, site_url): 19 | credentials = service_account.Credentials.from_service_account_file( 20 | credentials_json, scopes=SCOPES 21 | ) 22 | service = build("searchconsole", "v1", credentials=credentials) 23 | 24 | end_date = date.today() 25 | start_date = end_date - timedelta(days=30) 26 | 27 | request = { 28 | "startDate": str(start_date), 29 | "endDate": str(end_date), 30 | "dimensions": ["query"], 31 | "rowLimit": 10 32 | } 33 | 34 | response = ( 35 | service.searchanalytics() 36 | .query(siteUrl=site_url, body=request) 37 | .execute() 38 | ) 39 | 40 | rows = response.get("rows", []) 41 | data = [ 42 | { 43 | "Query": row["keys"][0], 44 | "Clicks": row.get("clicks", 0), 45 | "Impressions": row.get("impressions", 0), 46 | "CTR (%)": round(row.get("ctr", 0) * 100, 2), 47 | "Position": round(row.get("position", 0), 2), 48 | } 49 | for row in rows 50 | ] 51 | return pd.DataFrame(data) 52 | 53 | try: 54 | # Load data from GSC 55 | credentials_path = os.getenv("GSC_SERVICE_ACCOUNT_PATH") # Path to service account key 56 | df = load_gsc_data(credentials_path, PROPERTY_URI) 57 | 58 | st.subheader("🔍 Top Queries (Last 30 Days)") 59 | st.dataframe(df) 60 | 61 | st.subheader("📊 Summary Stats") 62 | total_clicks = int(df["Clicks"].sum()) 63 | total_impressions = int(df["Impressions"].sum()) 64 | avg_ctr = round(df["CTR (%)"].mean(), 2) 65 | avg_position = round(df["Position"].mean(), 2) 66 | 67 | col1, col2, col3, col4 = st.columns(4) 68 | col1.metric("Total Clicks", f"{total_clicks:,}") 69 | col2.metric("Total Impressions", f"{total_impressions:,}") 70 | col3.metric("Avg. CTR", f"{avg_ctr}%") 71 | col4.metric("Avg. Position", f"{avg_position}") 72 | 73 | except Exception as e: 74 | st.error(f"Error loading Search Console data: {e}") 75 | -------------------------------------------------------------------------------- /dashboard/pages/audience_insights.py: -------------------------------------------------------------------------------- 1 | 2 | from pathlib import Path 3 | from google.analytics.data_v1beta import BetaAnalyticsDataClient 4 | from google.analytics.data_v1beta.types import RunReportRequest, Dimension, Metric 5 | import pandas as pd 6 | import os 7 | from google.oauth2 import service_account 8 | import streamlit as st 9 | 10 | # Helper function 11 | def run_ga4_report(client, property_id, dimensions, metrics): 12 | request = RunReportRequest( 13 | property=f"properties/{property_id}", 14 | dimensions=[Dimension(name=d) for d in dimensions], 15 | metrics=[Metric(name=m) for m in metrics], 16 | date_ranges=[{"start_date": "30daysAgo", "end_date": "today"}], 17 | ) 18 | response = client.run_report(request) 19 | rows = response.rows or [] 20 | return pd.DataFrame([{**{d.name: v for d, v in zip(response.dimension_headers, r.dimension_values)}, 21 | **{m.name: v for m, v in zip(response.metric_headers, r.metric_values)}} for r in rows]) 22 | 23 | # Authenticate 24 | SCOPES = ['https://www.googleapis.com/auth/analytics.readonly'] 25 | credentials = service_account.Credentials.from_service_account_file( 26 | os.getenv("GSC_SERVICE_ACCOUNT_PATH"), scopes=SCOPES 27 | ) 28 | client = BetaAnalyticsDataClient(credentials=credentials) 29 | property_id = os.getenv("GA4_PROPERTY_ID") 30 | 31 | # --- Top Countries --- 32 | print("\n📍 Top Countries (Users, Engagement Rate):") 33 | df_countries = run_ga4_report(client, property_id, ["country"], ["activeUsers", "engagementRate"]) 34 | print(df_countries) 35 | 36 | # --- Device Categories --- 37 | print("\n📱 Device Category Breakdown:") 38 | df_devices = run_ga4_report(client, property_id, ["deviceCategory"], ["activeUsers"]) 39 | print(df_devices) 40 | 41 | # --- Top Browsers & Operating Systems --- 42 | print("\n🌐 Top Browsers:") 43 | df_browsers = run_ga4_report(client, property_id, ["browser"], ["activeUsers"]) 44 | print(df_browsers) 45 | 46 | print("\n💻 Top Operating Systems:") 47 | df_os = run_ga4_report(client, property_id, ["operatingSystem"], ["activeUsers"]) 48 | print(df_os) 49 | # Streamlit page setup 50 | st.set_page_config(page_title="Audience Insights", layout="wide") 51 | 52 | st.title("📊 Audience Insights") 53 | 54 | # --- Top Countries --- 55 | st.subheader("📍 Top Countries (Users, Engagement Rate):") 56 | st.dataframe(df_countries) 57 | 58 | # --- Device Categories --- 59 | st.subheader("📱 Device Category Breakdown:") 60 | st.dataframe(df_devices) 61 | 62 | # --- Top Browsers & Operating Systems --- 63 | st.subheader("🌐 Top Browsers:") 64 | st.dataframe(df_browsers) 65 | 66 | st.subheader("💻 Top Operating Systems:") 67 | st.dataframe(df_os) -------------------------------------------------------------------------------- /docs/initiatives/in-progress/funding_models.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: Research Sustainable Funding Models for ONM 2 | 3 | **Accountable Fellow:** @DRosen766 4 | 5 | **Approver:** @ 6 | **Status:** TODO 7 | 8 | **Due Date:** 9 | 10 | **Contributors:** @ 11 | **Informed:** Leadership Team, Stakeholders 12 | 13 | --- 14 | 15 | ## 🎯 Objective 16 | 17 | Investigate and recommend sustainable, transparent funding mechanisms to support ONM’s growth, initiatives, and infrastructure. 18 | 19 | --- 20 | 21 | ## 🧠 Problem Statement 22 | 23 | ONM currently operates on a volunteer basis, but long-term sustainability requires some funding. 24 | _Hypothesis:_ We believe that identifying and implementing suitable funding models (e.g., fiscal sponsorship, donations, sponsorships) will provide stability and enable new initiatives, and we’ll know we’ve succeeded if ONM can reliably cover basic costs and support community-driven projects. 25 | 26 | --- 27 | 28 | ## 🧾 Key Outcomes 29 | 30 | - Research and summary of fiscal sponsorship and donation options 31 | - Drafted operational budget for ONM’s core needs 32 | - Sponsorship prospectus document for potential partners 33 | 34 | --- 35 | 36 | ## 🗺️ Scope 37 | 38 | | Category | Description | 39 | |--------------|-----------------------------------------------------------| 40 | | Must Have | Fiscal host options, budget draft, sponsorship prospectus | 41 | | Nice to Have | Grant application templates, multi-year projections | 42 | | Not in Scope | Creating a new legal entity, for-profit fundraising | 43 | 44 | --- 45 | 46 | ## 🗓️ Timeline 47 | 48 | | Milestone | Owner | Deadline | Status | 49 | |-----------------------------------|-------------|--------------|--------| 50 | | Research fiscal hosts | @DRosen766 | YYYY-MM-DD | ⏳ | 51 | | Draft operational budget | @ | YYYY-MM-DD | ⏳ | 52 | | Sponsorship prospectus completed | @ | YYYY-MM-DD | ⏳ | 53 | | Community report published | @ | YYYY-MM-DD | ⏳ | 54 | 55 | --- 56 | 57 | ## 🗒️ Updates Log 58 | 59 | | Date | Update Summary | Author | 60 | |------------|-----------------------------------------|-------------| 61 | | 2025-06-25 | Initiative plan drafted from Issue #64 | @DRosen766 | 62 | 63 | --- 64 | 65 | ## 🔗 Reference Materials 66 | 67 | - [GitHub Issue](https://github.com/open-neuromorphic/communications/issues/64) 68 | - [Docs or Files](https://github.com/open-neuromorphic/communications/tree/main/docs/initiatives) -------------------------------------------------------------------------------- /docs/initiatives/todo/grand_challenge.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: ONM Grand Challenge 2 | 3 | **Accountable Fellow:** @DRosen766 4 | 5 | **Approver:** @ 6 | **Status:** TODO 7 | 8 | **Due Date:** 9 | 10 | **Contributors:** @ 11 | **Informed:** Leadership Team, Stakeholders 12 | 13 | --- 14 | 15 | ## 🎯 Objective 16 | 17 | Propose and plan the first ONM Grand Challenge to foster innovation, collaboration, and visibility in the neuromorphic community, providing a unifying initiative for contributors and stakeholders. 18 | 19 | --- 20 | 21 | ## 🧠 Problem Statement 22 | 23 | The neuromorphic community would benefit from a high-profile, open challenge to catalyze engagement and push the field forward. 24 | _Hypothesis:_ We believe that launching a well-structured Grand Challenge will increase community participation and innovation, and we’ll know we’ve succeeded if we see broad involvement, quality submissions, and positive external attention. 25 | 26 | --- 27 | 28 | ## 🧾 Key Outcomes 29 | 30 | - Definition and public announcement of the ONM Grand Challenge theme and goals 31 | - Recruitment of organizing committee and challenge partners 32 | - Launch of the challenge with clear rules and evaluation criteria 33 | 34 | --- 35 | 36 | ## 🗺️ Scope 37 | 38 | | Category | Description | 39 | |--------------|---------------------------------------------------------------| 40 | | Must Have | Challenge theme, rules, judging criteria, organizing committee| 41 | | Nice to Have | Sponsorships, prizes, media coverage, multi-track events | 42 | | Not in Scope | Proprietary, non-open challenges, unrelated research domains | 43 | 44 | --- 45 | 46 | ## 🗓️ Timeline 47 | 48 | | Milestone | Owner | Deadline | Status | 49 | |-----------------------------|-------------|--------------|--------| 50 | | Challenge theme draft | @DRosen766 | YYYY-MM-DD | ⏳ | 51 | | Committee recruited | @ | YYYY-MM-DD | ⏳ | 52 | | Official announcement | @ | YYYY-MM-DD | ⏳ | 53 | | Challenge launch | @ | YYYY-MM-DD | ⏳ | 54 | 55 | --- 56 | 57 | ## 🗒️ Updates Log 58 | 59 | | Date | Update Summary | Author | 60 | |------------|-----------------------------------------|-------------| 61 | | 2025-06-25 | Initiative plan drafted from Issue #63 | @DRosen766 | 62 | 63 | --- 64 | 65 | ## 🔗 Reference Materials 66 | 67 | - [GitHub Issue](https://github.com/open-neuromorphic/communications/issues/63) 68 | - [Docs or Files](https://github.com/open-neuromorphic/communications/tree/main/docs/initiatives) -------------------------------------------------------------------------------- /docs/initiatives/todo/systematic_task_completion.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: Systematic Task Completion Methods 2 | 3 | **Accountable Fellow:** @Daniel Rosen 4 | **Approver:** @Jens E. Pedersen 5 | **Status:** NOT STARTED 6 | **Due Date:** 2025-08-01 7 | **Contributors:** Community Members 8 | **Informed:** Leadership Team, Task Owners 9 | 10 | --- 11 | 12 | ## 🎯 Objective 13 | 14 | Establish standardized, repeatable methods for executing tasks across ONM, improving consistency, visibility, and operational efficiency. 15 | 16 | --- 17 | 18 | ## 🧠 Problem Statement 19 | 20 | As ONM initiatives scale, inconsistent approaches to task management lead to duplication, dropped responsibilities, and lack of clarity. 21 | By creating reusable workflows and documentation standards, we can help contributors complete tasks more confidently and improve the organization’s overall reliability. 22 | 23 | --- 24 | 25 | ## 🧾 Key Outcomes 26 | 27 | - Curated list of common ONM task types (e.g., event setup, initiative launch) 28 | - Standard operating procedures (SOPs) and checklist templates 29 | - Public documentation of repeatable workflows 30 | - GitHub-based tracking and labeling standards 31 | 32 | --- 33 | 34 | ## 🗺️ Scope 35 | 36 | | Category | Description | 37 | |------------------|-------------------------------------------------------------------------------| 38 | | Must Have | Define and publish SOPs for key task categories; GitHub integration | 39 | | Nice to Have | Task automation examples; contributor guide integration | 40 | | Not in Scope | Full project management tooling replacement (e.g., replacing GitHub) | 41 | 42 | --- 43 | 44 | ## 🗓️ Timeline 45 | 46 | | Milestone | Owner | Deadline | Status | 47 | |------------------------------|------------------|-------------|--------| 48 | | Task Type Survey & Audit | @Daniel Rosen | 2025-06-10 | ⏳ | 49 | | Draft SOPs & Templates | @Daniel Rosen | 2025-06-24 | ⏳ | 50 | | Review with Leadership | @Jens E. Pedersen| 2025-07-15 | ⏳ | 51 | | Publish & Begin Integration | @Daniel Rosen | 2025-08-01 | ⏳ | 52 | 53 | --- 54 | 55 | ## 🗒️ Updates Log 56 | 57 | | Date | Update Summary | Author | 58 | |------------|-------------------------------------|---------------| 59 | | 2025-05-25 | Initiative page created | @Daniel Rosen | 60 | 61 | --- 62 | 63 | ## 🔗 Reference Materials 64 | 65 | - [SOP Template Directory](#) 66 | - [GitHub Task Board](#) 67 | - [Confluence/Docs Archive](#) 68 | - [Community Feedback Survey](#) 69 | -------------------------------------------------------------------------------- /docs/initiatives/in-progress/student_talks.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: [Student Talks] 2 | 3 | **Accountable Fellow:** #student-talks (channel on ONM's Discord, post your 4 | queries there) 5 | 6 | **Approver:** @Jens Egholm Pedersen 7 | **Status:** DONE 8 | 9 | **Due Date:** Jul 31st, 2025 10 | 11 | --- 12 | 13 | ## 🎯 Objective 14 | 15 | To provide a platform for early/late-stage neuromorphic student researchers to: 16 | * present their (published) work, thereby sharing their research and improving visibility 17 | * conduct a highly engaging, knowledge sharing, honest, and critical discussion around a topic 18 | 19 | --- 20 | 21 | ## 🧠 Problem Statement 22 | 23 | What problem is this initiative trying to solve? 24 | How to help early/late-stage neuromorphic researchers to network, share, and learn from the wider ONM community? 25 | 26 | Include a hypothesis: _“We believe X will result in Y, and we’ll know we’ve succeeded if Z.”_ 27 | We believe, holding Student Talks will help accelerating neuromorphic research, and we'll know we've succeeded if attendance and frequency of Student Talks increase over time! 28 | 29 | --- 30 | 31 | ## 🧾 Key Outcomes 32 | 33 | - Far and wider reach of ONM (especially in neuromorphic student community) 34 | - Students would be able to disseminate their research, gain feedback, and network 35 | - In general, accelerate neuromorphic research, through discussions and knowledge sharing! 36 | 37 | --- 38 | 39 | ## 🗺️ Scope 40 | 41 | We will cover student talks on topics ranging from low-level neuromorphic hardware design to high-level neuromorphic software/algorithm design. 42 | Please take a look at our [Goals & Operations doc](https://drive.google.com/file/d/1tFD7xWwX1cGx7gnNps7mUdGwN15Q6_BB/view) for more details. 43 | The duration of student talks will be 1h 15mins, where a chunk of it will be used to deliver the talk, followed by discussion for the remaining time; refer the categories below: 44 | 45 | 46 | | Category | Description | 47 | |------------------|-----------------------------------------------------------| 48 | | 45-50 mins talk | Regular student talk + QnA session | 49 | | 20 mins intro | Introduction to a topic + Rich discussion/debate | 50 | | Not in Scope | What this initiative will not address | 51 | 52 | --- 53 | 54 | ## 🗒️ Updates Log 55 | 56 | | Date | Update Summary | Author | 57 | |------------|-------------------------------------|---------------| 58 | | 2025-06-29 | Added the student\_talks iniative. | @R-Gaurav | 59 | 60 | --- 61 | 62 | ## 🔗 Reference Materials 63 | 64 | - [Discord Thread](#) -> "#student-talks channel 65 | -------------------------------------------------------------------------------- /docs/initiatives/in-progress/strategy_rollout.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: Strategy Rollout 2 | 3 | **Accountable Fellow:** @Daniel Rosen 4 | **Approver:** @Jens E. Pedersen 5 | **Status:** IN PROGRESS 6 | **Due Date:** 2025-06-30 7 | **Contributors:** @Justin Riddiough, ONM Leadership Team 8 | **Informed:** All Contributors, Discord & Mailing List Subscribers 9 | 10 | --- 11 | 12 | ## 🎯 Objective 13 | 14 | Present ONM's strategic direction to the broader community to align, inspire, and activate members toward shared goals. 15 | 16 | --- 17 | 18 | ## 🧠 Problem Statement 19 | 20 | While ONM’s leadership has developed a clear strategy, many community members are unaware of the direction or how they can contribute. 21 | We believe that a structured and well-communicated strategy rollout will increase transparency, drive engagement, and lead to stronger initiative participation. 22 | 23 | --- 24 | 25 | ## 🧾 Key Outcomes 26 | 27 | - Community-wide awareness of ONM’s 2025 strategy 28 | - Feedback from contributors across roles and levels 29 | - Increased volunteer sign-ups for working groups and initiatives 30 | - Boost in GitHub and Discord engagement following rollout 31 | 32 | --- 33 | 34 | ## 🗺️ Scope 35 | 36 | | Category | Description | 37 | |------------------|-----------------------------------------------------------------------------| 38 | | Must Have | Strategy presentation, blog summary, Discord engagement, feedback collection | 39 | | Nice to Have | Translated slides, interactive Q&A, leadership AMA | 40 | | Not in Scope | Rewriting the strategic plan | 41 | 42 | --- 43 | 44 | ## 🗓️ Timeline 45 | 46 | | Milestone | Owner | Deadline | Status | 47 | |----------------------------------|---------------------|-------------|--------| 48 | | Prepare Presentation Materials | @Daniel Rosen | 2025-06-14 | ⏳ | 49 | | Host Live Rollout Event | @Daniel Rosen | 2025-06-21 | ⏳ | 50 | | Publish Recording + Blog Post | @Justin Riddiough | 2025-06-24 | ⏳ | 51 | | Feedback Synthesis + Follow-up | @Jens E. Pedersen | 2025-06-30 | ⏳ | 52 | 53 | --- 54 | 55 | ## 🗒️ Updates Log 56 | 57 | | Date | Update Summary | Author | 58 | |------------|-------------------------------------|---------------| 59 | | 2025-05-25 | Initiative page created | @Daniel Rosen | 60 | 61 | --- 62 | 63 | ## 🔗 Reference Materials 64 | 65 | - [Executive Strategy Overview PDF](#) 66 | - [Discord Announcement Thread](#) 67 | - [Community Feedback Form](#) 68 | - [Working Groups Index](#) 69 | -------------------------------------------------------------------------------- /docs/initiatives/in-progress/internal_tools_improvement.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: Internal Tools Improvement 2 | 3 | **Accountable Fellow:** @Daniel Rosen 4 | **Approver:** @Jens E. Pedersen 5 | **Status:** NOT STARTED 6 | **Due Date:** 2025-07-15 7 | **Contributors:** @Justin Riddiough, Community Members 8 | **Informed:** Leadership Team, Infra Maintainers 9 | 10 | --- 11 | 12 | ## 🎯 Objective 13 | 14 | Enhance ONM’s internal infrastructure to support leadership and contributor efficiency by improving workflows and tool integration. 15 | 16 | --- 17 | 18 | ## 🧠 Problem Statement 19 | 20 | As ONM grows, fragmented tools and inconsistent workflows create inefficiencies for leadership and contributors. 21 | We believe that by auditing and upgrading our internal tools, we can reduce friction, improve collaboration, and enable scalable growth. 22 | We’ll know we’ve succeeded if contributors report faster coordination, and leadership reduces time spent on redundant tasks. 23 | 24 | --- 25 | 26 | ## 🧾 Key Outcomes 27 | 28 | - Inventory of existing tools and workflows 29 | - Documented list of pain points and needs 30 | - Prototype of improved tool stack or workflow 31 | - Clear documentation and contributor onboarding guide 32 | 33 | --- 34 | 35 | ## 🗺️ Scope 36 | 37 | | Category | Description | 38 | |------------------|-----------------------------------------------------------------------------| 39 | | Must Have | Audit of current tools; identification of integration needs; prototype implementation | 40 | | Nice to Have | Contributor dashboard; unified task tracker; calendar sync with GitHub issues | 41 | | Not in Scope | Full platform migration (e.g., replacing GitHub or Confluence) | 42 | 43 | --- 44 | 45 | ## 🗓️ Timeline 46 | 47 | | Milestone | Owner | Deadline | Status | 48 | |------------------------------------|---------------------|-------------|--------| 49 | | Tool Audit and Inventory | @Daniel Rosen | 2025-06-14 | ⏳ | 50 | | Needs Assessment & Interview Phase | @Justin Riddiough | 2025-06-24 | ⏳ | 51 | | Integration/Improvement Prototype | @Daniel Rosen | 2025-07-05 | ⏳ | 52 | | Documentation and Rollout | @Jens E. Pedersen | 2025-07-15 | ⏳ | 53 | 54 | --- 55 | 56 | ## 🗒️ Updates Log 57 | 58 | | Date | Update Summary | Author | 59 | |------------|-------------------------------------|---------------| 60 | | 2025-05-25 | Initiative page created | @Daniel Rosen | 61 | 62 | --- 63 | 64 | ## 🔗 Reference Materials 65 | 66 | - [GitHub Tracking Board](#) 67 | - [Discord Thread](#) 68 | - [Tools Inventory Sheet](#) 69 | - [Feedback Form](#) 70 | -------------------------------------------------------------------------------- /dashboard/pages/website_metrics.py: -------------------------------------------------------------------------------- 1 | 2 | # website_metrics.py 3 | 4 | import streamlit as st 5 | from google.analytics.data_v1beta import BetaAnalyticsDataClient 6 | from google.analytics.data_v1beta.types import RunReportRequest, DateRange, Dimension, Metric 7 | from google.auth import default 8 | import os 9 | 10 | def format_number(n): 11 | return f"{n:,}" 12 | 13 | st.set_page_config(page_title="Website Performance & Engagement", layout="wide") 14 | st.title("🌐 Website Performance & Engagement") 15 | 16 | try: 17 | credentials, _ = default(scopes=["https://www.googleapis.com/auth/analytics.readonly"]) 18 | client = BetaAnalyticsDataClient(credentials=credentials) 19 | property_id = os.getenv("GA4_PROPERTY_ID") 20 | 21 | st.subheader("📈 Sessions") 22 | sessions_request = RunReportRequest( 23 | property=f"properties/{property_id}", 24 | dimensions=[], 25 | metrics=[Metric(name="sessions")], 26 | date_ranges=[DateRange(start_date="30daysAgo", end_date="today")] 27 | ) 28 | sessions_response = client.run_report(sessions_request) 29 | sessions = int(sessions_response.rows[0].metric_values[0].value) 30 | st.metric("Total Sessions (Last 30 Days)", format_number(sessions)) 31 | 32 | st.subheader("⏱️ Engagement Time & Rate") 33 | engagement_request = RunReportRequest( 34 | property=f"properties/{property_id}", 35 | dimensions=[], 36 | metrics=[ 37 | Metric(name="averageSessionDuration"), 38 | Metric(name="engagementRate") 39 | ], 40 | date_ranges=[DateRange(start_date="30daysAgo", end_date="today")] 41 | ) 42 | engagement_response = client.run_report(engagement_request) 43 | avg_time = float(engagement_response.rows[0].metric_values[0].value) 44 | engagement_rate = float(engagement_response.rows[0].metric_values[1].value) 45 | 46 | col1, col2 = st.columns(2) 47 | col1.metric("Avg. Engagement Time (s)", f"{avg_time:.1f}") 48 | col2.metric("Engagement Rate (%)", f"{engagement_rate * 100:.2f}%") 49 | 50 | st.subheader("📄 Top Landing Pages") 51 | landing_request = RunReportRequest( 52 | property=f"properties/{property_id}", 53 | dimensions=[Dimension(name="landingPagePlusQueryString")], 54 | metrics=[ 55 | Metric(name="sessions"), 56 | Metric(name="averageSessionDuration") 57 | ], 58 | date_ranges=[DateRange(start_date="30daysAgo", end_date="today")] 59 | ) 60 | landing_response = client.run_report(landing_request) 61 | 62 | landing_data = [ 63 | { 64 | "Page": row.dimension_values[0].value, 65 | "Sessions": int(row.metric_values[0].value), 66 | "Avg. Engagement Time (s)": float(row.metric_values[1].value) 67 | } 68 | for row in landing_response.rows 69 | ] 70 | st.dataframe(landing_data) 71 | 72 | except Exception as e: 73 | st.error(f"Error loading website engagement metrics: {e}") 74 | -------------------------------------------------------------------------------- /meeting_notes/6_18_25.md: -------------------------------------------------------------------------------- 1 | Here’s a clean and well-formatted Markdown version of your meeting summary: 2 | 3 | ⸻ 4 | 5 | 🧠 Open Neuromorphic Executive Committee Meeting 6 | 7 | Date: June 18 8 | Recording: View on Fathom 9 | 10 | ⸻ 11 | 12 | 🎯 Meeting Purpose 13 | 14 | Executive committee sync-up for Open Neuromorphic to discuss recent progress, upcoming initiatives, and operational improvements. 15 | 16 | ⸻ 17 | 18 | ✅ Key Takeaways 19 | • Website and blog post launch received positive feedback; platform is well-structured for SEO and AI parsing 20 | • Plans to move hacking hours to YouTube and explore StreamYard for workshops to increase engagement 21 | • Dashboard development progressing; will provide valuable insights on community metrics 22 | • Initiatives for job board, introductory content, and LLM development discussed 23 | • Exploring funding options for subscriptions and email services to improve operations 24 | 25 | ⸻ 26 | 27 | # 🧱 Topics 28 | 29 | ## 🌐 Website and Content Development 30 | - Website launch successful, with positive feedback on design and vision 31 | - Structured markup implemented for improved SEO and AI parsing 32 | - Need for introductory content identified to make the site more accessible to beginners 33 | - Exploring conversion of listings to GitHub “awesome lists” for community-driven content 34 | - S&P book initiative progressing with editorial board and open contributions 35 | 36 | ## 🎙️ Events and Workshops 37 | - Moving hacking hours to YouTube for wider reach and real-time engagement 38 | - Considering StreamYard for workshops; planning to batch events for cost-efficiency 39 | - Exploring funding options from organizations like AJI Foundation for subscription costs 40 | - Poll out for end-of-July talk; aiming to create a regular pipeline of speakers 41 | 42 | ## 👥 Community Engagement and Metrics 43 | - Dashboard development in progress using Streamlit and Google Cloud 44 | - Integration with Discord data completed; MVP expected within a week 45 | - Job board initiative proposed to centralize academic and industry opportunities 46 | - Potential for LLM development specific to the neuromorphic community using RAG 47 | 48 | ## ⚙️ Operational Improvements 49 | - Investigating email service options (Google Workspace vs. ProtonMail) 50 | - Considering approaching sponsors for 3-year support of 3 user accounts 51 | - Bi-weekly Friday meetings at 2 PM established for executive committee 52 | 53 | ⸻ 54 | 55 | ## 📌 Action Items 56 | - Create job board initiative for website (industry/academia positions, volunteer opportunities) 57 | Watch @ 18:41 58 | - Contact AJI Foundation re: funding for streaming service subscription (StreamYard) 59 | Watch @ 30:14 60 | - Research email service options (Google Workspace vs. ProtonMail) for exec committee + contact@ 61 | Watch @ 30:23 62 | - Schedule bi-weekly Friday 2pm executive committee meetings 63 | Watch @ 38:30 64 | 65 | ⸻ 66 | 67 | Let me know if you’d like this saved as a .md file or published somewhere! -------------------------------------------------------------------------------- /docs/initiatives/in-progress/social-media-engagement/README.md: -------------------------------------------------------------------------------- 1 | # Initiative Plan: Social Media Engagement & Outreach 2 | 3 | **Accountable Fellow:** @SocialMediaCoordinator (Volunteer Role) 4 | **Approver:** @DRosen766, @Jegp, @neural-loop 5 | **Status:** IN PROGRESS 6 | 7 | --- 8 | 9 | ## 🎯 Objective 10 | 11 | To strategically manage and grow Open Neuromorphic's online presence across key social media platforms (LinkedIn, Twitter/X). This initiative aims to increase community engagement, drive traffic to ONM resources, amplify the work of our contributors, and establish a consistent, authoritative, and welcoming brand voice. 12 | 13 | --- 14 | 15 | ## 🧠 Problem Statement 16 | 17 | While ONM has a presence on social media, our efforts can be ad-hoc, lacking a consistent strategy and cadence. This leads to missed opportunities for promoting events, sharing valuable content, and engaging with our growing global audience. 18 | 19 | **Hypothesis:** _We believe that implementing a structured social media strategy, managed by a dedicated volunteer, will result in **increased event attendance, higher engagement rates, and significant growth in our follower base and Discord membership.** We’ll know we’ve succeeded if **we see a measurable uptick in these key metrics and receive positive feedback from the community.**_ 20 | 21 | --- 22 | 23 | ## 🧾 Key Outcomes 24 | 25 | - A consistent and professional social media presence for ONM. 26 | - Increased visibility and attendance for all ONM events (Workshops, Town Halls, etc.). 27 | - A clear and documented workflow for the social media volunteer. 28 | - Growth in key metrics: followers, engagement rate, and click-throughs to the ONM website. 29 | - Regular amplification of community contributions and successes. 30 | 31 | --- 32 | 33 | ## 🗺️ Scope 34 | 35 | | Category | Description | 36 | |------------------|---------------------------------------------------------------------------------------------------------| 37 | | **Must Have** | - Regular promotion of all official ONM events.
- Sharing of all new blog posts and major website updates.
- Management of LinkedIn and Twitter/X accounts.
- Community engagement shout-outs. | 38 | | **Nice to Have** | - Creation of short-form video content from event recordings.
- Exploring presence on other relevant platforms (e.g., Mastodon).
- Automated "First Impressions" posts for new research papers. | 39 | | **Not in Scope** | - Paid advertising campaigns.
- Management of individual member disputes or moderation outside of social media posts.
- Creating primary content (the role is to amplify existing content). | 40 | 41 | --- 42 | 43 | ## 🔗 Reference Materials 44 | 45 | - **[Social Media Playbook](./social_media_playbook.md)**: The primary operational guide for the social media volunteer, detailing the strategy, tasks, and workflows. 46 | - **Related GitHub Issue #28:** [Discord Summaries for Social Media Posts](https://github.com/open-neuromorphic/communications/issues/28) 47 | - **Related GitHub Issue #84:** [ONR Promo concept - 'First Impressions' Video Shorts](https://github.com/open-neuromorphic/communications/issues/84) -------------------------------------------------------------------------------- /docs/initiatives/onm_fellowship_charter.md: -------------------------------------------------------------------------------- 1 | # 🧠 Fellowship in Open Neuromorphic 2 | 3 | As per the ONM Organisational Charter, fellowship is open to all individuals who support ONM's mission and values. 4 | 5 | --- 6 | 7 | ## 2.1 Eligibility & Demonstrating Support 8 | 9 | Individuals wishing to become fellows should demonstrate active engagement with and support for ONM's mission. This can include: 10 | 11 | ### ✅ Active and Constructive Participation 12 | - Regular, positive engagement in ONM's primary communication channels (e.g., Discord, forums) 13 | 14 | ### ✅ Tangible Contributions 15 | - Submitting content (e.g., blog posts, documentation improvements, educational materials) 16 | - Contributing to or proposing ONM projects (e.g., software tools, hardware guides) 17 | - Organizing or assisting with ONM events (e.g., workshops, Student Talks, Journal Club) 18 | - Mentoring or helping other community fellows 19 | - Representing or promoting ONM positively in external venues or online 20 | 21 | ### ✅ Alignment with ONM Goals 22 | - Clear understanding and alignment with ONM’s mission to advance neuromorphic computing through open collaboration and knowledge sharing 23 | 24 | --- 25 | 26 | ## 2.2 Path to Fellowship 27 | 28 | ### 🧭 Engagement 29 | Prospective fellows should first actively engage with the ONM community as described above. 30 | 31 | ### ✍️ Nomination 32 | 33 | - **Self-Nomination:** 34 | Submit a brief expression of interest to the ONM Secretary. This should describe your engagement and commitment to ONM's mission. 35 | 36 | - **Nomination by an Existing Fellow:** 37 | Any current fellow may nominate someone they believe meets the engagement criteria by informing the Secretary. 38 | 39 | ### 🗳️ Review & Voting 40 | - The Secretary coordinates an informal vote via email among active fellows. 41 | - A majority vote, based on the nominee’s contributions and alignment with ONM’s mission, is required to confirm fellowship. 42 | 43 | --- 44 | 45 | ## 2.3 Active Fellowship & Good Standing 46 | 47 | To remain a fellow in good standing, one must: 48 | 49 | - Attend at least one General Meeting (GM) every 2 years, **OR** 50 | - Submit a written contribution to the Annual Report at least once every 2 years 51 | 52 | ### Examples of Contributions: 53 | - Project updates (individual or collaborative) 54 | - Event summaries or reflections 55 | - Proposals for new ONM activities or improvements 56 | - General reflections on the ONM community and mission alignment 57 | 58 | > The ONM Secretary maintains the fellowship roll and notifies fellows of their active status. 59 | 60 | --- 61 | 62 | ## 2.4 Responsibilities of Fellows 63 | 64 | - Adhere to the [ONM Code of Conduct](./code-of-conduct.md) 65 | - Engage constructively and respectfully in all community settings 66 | - Uphold ONM’s core values and principles 67 | - Participate in governance, including voting in elections and general meetings 68 | 69 | --- 70 | 71 | ## 2.5 Benefits of Fellowship 72 | 73 | - Formal recognition as an ONM fellow 74 | - Voting rights in ONM elections and decision-making 75 | - Ability to nominate new fellows 76 | - Opportunities to lead initiatives and shape ONM’s direction 77 | - Greater visibility and platform to amplify your work in the neuromorphic computing field 78 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/blog-post-draft.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: ✍️ Draft Blog Post 3 | about: Propose and submit a draft for a new blog post on the Open Neuromorphic website. 4 | title: 'Blog: [Your Post Title]' 5 | labels: 'blog, content creation, draft' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### 📝 Blog Post Proposal 11 | 12 | Thank you for contributing to the Open Neuromorphic blog! Please fill out the sections below to submit your draft. This issue will serve as the primary place for collaboration and review with our content and events teams. 13 | 14 | --- 15 | 16 | ### 📌 Summary 17 | 18 | **Proposed Title:** 19 | _Your title here_ 20 | 21 | **Author(s):** 22 | _Your name, and any co-authors. Please include your GitHub username(s) so we can link to your contributor profiles._ 23 | 24 | **Brief Abstract:** 25 | _Provide a short (2-3 sentences) summary of what your blog post is about. This helps us prepare social media announcements and meta descriptions._ 26 | 27 | --- 28 | 29 | ### 📄 Full Draft 30 | 31 | _Please paste the full content of your blog post below in Markdown format. Our team will handle the final formatting and add it to the website._ 32 | 33 | 34 | 35 | --- 36 | 37 | ### 🖼️ Images & Attachments 38 | 39 | _List any images, diagrams, or other files that should be included with the post. If you have them ready, you can drag and drop them directly into this issue._ 40 | 41 | - [ ] Image 1: `[filename.png]` (Caption: _Your caption here_) 42 | - [ ] Image 2: `[filename.jpg]` (Caption: _Your caption here_) 43 | 44 | --- 45 | 46 | ### 🏷️ Suggested Keywords/Tags 47 | 48 | _Suggest a few keywords or tags that would help categorize this post (e.g., `SNNs`, `Loihi`, `Getting Started`, `Tutorial`, `ONR`, `Community`)._ 49 | 50 | - 51 | - 52 | - 53 | 54 | --- 55 | 56 | 57 | ### 🚀 Go Further (Optional): Create a Live Preview 58 | 59 | For contributors comfortable with Git, you can take your contribution a step further by creating a live preview of your blog post on your own staging site. This allows you to see exactly how your content will look and is the best way to collaborate on visual and formatting details. 60 | 61 | Our contribution guides provide a full walkthrough of the process: 62 | - **[CONTRIBUTING.md](https://github.com/open-neuromorphic/open-neuromorphic.github.io/blob/main/CONTRIBUTING.md)**: For local setup and general contributions. 63 | - **[CONTRIBUTING-Staging.MD](https://github.com/open-neuromorphic/open-neuromorphic.github.io/blob/main/CONTRIBUTING-Staging.MD)**: For setting up your own live preview environment. 64 | 65 | If you have any questions about this process, our volunteers in the **`#onm-tech-contributors`** channel on Discord are happy to help! 66 | 67 | --- 68 | 69 | ### ✅ Contributor Checklist 70 | 71 | _Please confirm the following before submitting:_ 72 | 73 | - [ ] The content is my own original work or is properly attributed. 74 | - [ ] The post aligns with ONM's [Code of Conduct](https://github.com/open-neuromorphic/communications/blob/main/CODE_OF_CONDUCT.md). 75 | - [ ] I have proofread my draft for clarity and major typos. 76 | - [ ] I understand this content will be published under the site's [CC-BY-SA 4.0 license](https://github.com/open-neuromorphic/communications/blob/main/docs/policies/content_and_contribution.md). 77 | - [ ] This draft is ready for community review. -------------------------------------------------------------------------------- /docs/initiatives/in-progress/peer-review-program/README.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: ONM Community Peer Review Program 2 | 3 | **Accountable Fellow:** @DRosen766 4 | 5 | **Approver:** @\ 6 | **Status:** IN PROGRESS 7 | 8 | **Due Date:** \ 9 | 10 | **Contributors:** @\ 11 | **Informed:** Leadership Team, Stakeholders 12 | 13 | --- 14 | 15 | ## 🎯 Objective 16 | 17 | Establish a formal peer review program to leverage community expertise and promote high-quality open-source neuromorphic projects, offering authors valuable feedback and an ONM "stamp of approval." 18 | 19 | --- 20 | 21 | ## 🧠 Problem Statement 22 | 23 | Open-source neuromorphic projects currently lack a standardized, community-driven process for feedback and quality assurance. 24 | _Hypothesis:_ We believe that a structured peer review process will increase the visibility, credibility, and reliability of neuromorphic projects, and we’ll know we’ve succeeded if participation grows and projects proudly display the “ONM Community Approved” badge. 25 | 26 | --- 27 | 28 | ## 🧾 Key Outcomes 29 | 30 | - Launch of the ONM Community Peer Review Program with clear public criteria 31 | - At least one project successfully reviewed and awarded the ONM badge 32 | - Publication of review summaries on the ONM blog 33 | 34 | --- 35 | 36 | ## 🗺️ Scope 37 | 38 | | Category | Description | 39 | |--------------|----------------------------------------------------------| 40 | | Must Have | Submission form, review panel process, review criteria, badge system, blog publication | 41 | | Nice to Have | Automated badge assignment, reviewer recognition, integration with project repos | 42 | | Not in Scope | Reviewing proprietary/closed-source projects, monetary awards for reviewers | 43 | 44 | --- 45 | 46 | ## 🗓️ Timeline 47 | 48 | | Milestone | Owner | Deadline | Status | 49 | |-------------------------------|-----------------|--------------|--------| 50 | | Draft program framework | @DRosen766 | YYYY-MM-DD | ⏳ | 51 | | Recruit volunteer reviewers | @\ | YYYY-MM-DD | ⏳ | 52 | | Launch first call for submissions | @\ | YYYY-MM-DD | ⏳ | 53 | | First review completed | @\ | YYYY-MM-DD | ⏳ | 54 | | Blog post published | @\ | YYYY-MM-DD | ⏳ | 55 | 56 | --- 57 | 58 | ## 🗒️ Updates Log 59 | 60 | | Date | Update Summary | Author | 61 | |------------|---------------------------------------------|-------------| 62 | | 2025-06-25 | Initiative plan drafted from Issue #65 | @DRosen766 | 63 | 64 | --- 65 | 66 | ## 🔗 Reference Materials 67 | 68 | - [GitHub Issue](https://github.com/open-neuromorphic/communications/issues/65) 69 | - [Docs or Files](https://github.com/open-neuromorphic/communications/tree/main/docs/initiatives) 70 | - [OpenReview Venue](https://openreview.net/group?id=ONR) 71 | - [Submitter Guide](https://open-neuromorphic.org/neuromorphic-computing/research/guide/submitter-guide/) 72 | - [Reviewer Guide](https://open-neuromorphic.org/neuromorphic-computing/research/guide/reviewer-guide/) 73 | - [Reviewer Criteria](https://open-neuromorphic.org/neuromorphic-computing/research/guide/review-criteria/) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | # Content: Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) 2 | 3 | Copyright (C) 2025 Open Neuromorphic 4 | 5 | ## You are free to 6 | 7 | **Share** — copy and redistribute the material in any medium or format for any\ 8 | purpose, even commercially. 9 | 10 | **Adapt** — remix, transform, and build upon the material for any purpose, even\ 11 | commercially. 12 | 13 | The licensor cannot revoke these freedoms as long as you follow the license terms. 14 | 15 | ## Under the following terms 16 | 17 | **Attribution** — You must give [appropriate credit](https://creativecommons.org/licenses/by-sa/4.0/#ref-appropriate-credit), provide a link to the license,\ 18 | and [indicate if changes were made](https://creativecommons.org/licenses/by-sa/4.0/#ref-indicate-changes). You may do so in any reasonable manner,\ 19 | but not in any way that suggests the licensor endorses you or your use. 20 | 21 | **ShareAlike** — If you remix, transform, or build upon the material, you must\ 22 | distribute your contributions under the [same license](https://creativecommons.org/licenses/by-sa/4.0/#ref-same-license) as the original. 23 | 24 | **No additional restrictions** — You may not apply legal terms or [technological\ 25 | measures](https://creativecommons.org/licenses/by-sa/4.0/#ref-technological-measures) that legally restrict others from doing anything the license permits. 26 | 27 | ## Notices 28 | 29 | You do not have to comply with the license for elements of the material in the public\ 30 | domain or where your use is permitted by an applicable [exception or limitation](https://creativecommons.org/licenses/by-sa/4.0/#ref-exception-or-limitation). 31 | 32 | No warranties are given. The license may not give you all of the permissions necessary for\ 33 | your intended use. For example, other rights such as [publicity, privacy, or moral rights](https://creativecommons.org/licenses/by-sa/4.0/#ref-publicity-privacy-or-moral-rights) may limit how you use the material. 34 | 35 | ## For more details 36 | 37 | 38 | 39 | 40 | # Code: The MIT License (MIT) 41 | 42 | Copyright (c) 2023 - Present, Zeon Studio 43 | 44 | Permission is hereby granted, free of charge, to any person obtaining a copy 45 | of this software and associated documentation files (the "Software"), to deal 46 | in the Software without restriction, including without limitation the rights 47 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 48 | copies of the Software, and to permit persons to whom the Software is 49 | furnished to do so, subject to the following conditions: 50 | 51 | The above copyright notice and this permission notice shall be included in all 52 | copies or substantial portions of the Software. 53 | 54 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 55 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 56 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 57 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 58 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 59 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 60 | SOFTWARE. 61 | 62 | Site Content: 63 | > **Note** 64 | > 65 | > This is not an official resource and is just the CC BY-SA 4.0 International\ 66 | > text with Markdown formatting. If you're looking for the official resources, see: 67 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | **Open Neuromorphic’s CODE OF CONDUCT** 2 | 3 | Open Neuromorphic (ONM) remains committed to fostering a harmonious environment among all its members. We strive to enable all the ONM members – irrespective of their religion / faith / sex / gender expression / sexual orientation / race / ethnicity / age / body shape / disability – to contribute positively to the science and tech of Neuromorphic Computing. Following are the guidelines and policies of ONM’s Code of Conduct that we encourage all the ONM members to strictly adhere to – failure of which may result in a ban on their account. 4 | 5 | **Code of Conduct:** 6 | 7 | 1. You will engage in constructive and productive conversations with other ONM members. Always remember that you are here to learn and disseminate your knowledge. 8 | 2. You can constructively criticize other members’ scientific opinions, but never to the point of harassing them. We expect all the ONM members to maintain a professional decorum and engage in polite discussions / debates if differences due to scientific opinions arise. 9 | 3. Science and Tech are built on citation of credible sources / references. While engaged in discussions and if required (and if possible) – we encourage all the ONM members to provide credible scientific resources to back their statements. This is not mandatory but a good practice. 10 | 4. You will not use the ONM platform to promote any social or political beliefs / agendas / campaigns. Creation of bots to do this will also be considered in violation. 11 | 5. Harassment of ONM members on the basis of – religion / faith / gender expression / sexual orientation / race / ethnicity / age / body shape / disability – will not be tolerated to any degree. The act of harassment includes the usage of abusive / derogatory language, bullying, coercing, intimidating, stalking, sharing provocative content / sexual imagery, unwelcome sexual advances or soliciting sexual favors. Harassment of any sort when reported will be strictly and immediately dealt with – by the [**ONM Executive Committee**](https://open-neuromorphic.org/neuromorphic-computing/initiatives/executive-committee/). Note that: 12 | 1. You cannot compel any ONM member to align to your personal opinions / beliefs / preferences. All the ONM members reserve the right to respectfully differ from your personal opinions / beliefs / preferences. 13 | 2. An ONM member harassing another ONM member(s) outside of the ONM social platforms will still be held accountable and corrective actions will be taken. 14 | 15 | **Corrective actions taken against violating ONM’s Code of Conduct:** 16 | 17 | 1. We strongly encourage ONM members to report any violation of the ONM’s Code of Conduct to the [**ONM Executive Committee**](https://open-neuromorphic.org/neuromorphic-computing/initiatives/executive-committee/). Upon receiving such reports along with related evidences, the **ONM Executive Committee** reserves the right to take the following appropriate actions (but not limited to) – in proportion to the violation: 18 | 1. Imposing a temporary or permanent ban on the account of the violator on all the ONM platforms. 19 | 2. Reporting the act of harassment to the law officials if the degree of violation demands. 20 | 21 | The [**ONM Executive Committee**](https://open-neuromorphic.org/neuromorphic-computing/initiatives/executive-committee/) reserves the right to revise the terms of the ONM’s Code of Conduct in future. The terms of this Code of Conduct are non-negotiable and your presence on any of the ONM’s platforms indicates your agreement to abide by these above-mentioned policies. -------------------------------------------------------------------------------- /docs/initiatives/in-progress/events-coordinator/README.md: -------------------------------------------------------------------------------- 1 | # Initiative Plan: Event Coordination & Production 2 | 3 | **Accountable Fellow:** @EventCoordinator (Volunteer Role) 4 | **Approver:** @DRosen766, @Jegp, @neural-loop 5 | **Status:** IN PROGRESS 6 | 7 | --- 8 | 9 | ## 🎯 Objective 10 | 11 | To establish a professional, consistent, and streamlined process for planning, executing, and archiving all Open Neuromorphic live events. This initiative aims to enhance the experience for speakers and attendees, maximize community engagement, and create high-quality, lasting educational resources. 12 | 13 | --- 14 | 15 | ## 🧠 Problem Statement 16 | 17 | Currently, ONM events are managed on an ad-hoc basis by various committee members, leading to inconsistent workflows, potential gaps in communication, and a significant time commitment from leadership. This can result in a suboptimal experience for speakers and missed opportunities for promotion and engagement. 18 | 19 | **Hypothesis:** _We believe that implementing a structured event coordination strategy, managed by a dedicated volunteer, will result in **a more professional event experience, higher speaker satisfaction, and increased community participation.** We’ll know we’ve succeeded if **we receive consistent positive feedback from speakers, see a reduction in day-of logistical issues, and all events are promoted, executed, and archived according to a documented checklist.**_ 20 | 21 | --- 22 | 23 | ## 🧾 Key Outcomes 24 | 25 | - A professional and reliable experience for all event speakers and hosts. 26 | - Increased attendance and engagement due to consistent and timely promotion. 27 | - A complete and promptly updated public archive of all event recordings and materials on the website and YouTube. 28 | - A clear, documented workflow (the Event Coordinator Playbook) that can be used and improved upon by future volunteers. 29 | 30 | --- 31 | 32 | ## 🗺️ Scope 33 | 34 | | Category | Description | 35 | |------------------|---------------------------------------------------------------------------------------------------------| 36 | | **Must Have** | - Coordinate scheduling with speakers and the ONM team.
- Create and manage event pages on the ONM website.
- Set up and manage broadcasts in StreamYard.
- Liaise with the Social Media Coordinator for event promotion.
- Manage post-event archiving of videos and materials. | 37 | | **Nice to Have** | - Onboard and train new community members to co-host events.
- Actively improve and maintain the Event Coordinator Playbook.
- Help manage and update the shared community events calendar.
- Assist in creating short-form video clips from event recordings. | 38 | | **Not in Scope** | - Sourcing all new speakers and content (this is a collective community effort).
- Creating the primary promotional content (this is the Social Media Coordinator's role).
- Making final decisions on sponsorship agreements or event budgets.
- Moderating all community discussions outside of live events. | 39 | 40 | --- 41 | 42 | ## 🔗 Reference Materials 43 | 44 | - **[Event Coordinator Playbook](./event_coordinator_playbook.md)**: The primary operational guide for the volunteer, detailing the strategy, tasks, and master checklist. 45 | - **Related GitHub Issue #77:** [Create shared calendar for posting events](https://github.com/open-neuromorphic/communications/issues/77) 46 | - **Related GitHub Issue #331:** [Implement "Add to Calendar" Functionality for Event Pages](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/331) 47 | - **Related Pull Request #99:** [feat: Add event participant agreement document](https://github.com/open-neuromorphic/communications/pull/99) -------------------------------------------------------------------------------- /status-reports/2025-09-13-justin-riddiough.md: -------------------------------------------------------------------------------- 1 | 2 | # Status Report: Justin Riddiough - 2025-09-13 3 | 4 | ## 🎯 Highlights & Key Accomplishments 5 | - **Launched the ONM Mission Board:** A major new website feature is now live, showcasing "help wanted" issues from across the neuromorphic ecosystem to channel community contributions effectively. 6 | - **Formalized Sponsorship & Event Policies:** Finalized and adopted the official Sponsorship Policy and created a new Event Participant Agreement, establishing clear, transparent, and community-first guidelines for partnerships and events. 7 | 8 | ## ❗ Blocked / Awaiting Review 9 | * **Formal Membership Roll:** Awaiting contact information from all Fellows to complete the official membership roll as required by the charter. [Awaiting Action in #95](https://github.com/open-neuromorphic/communications/issues/95) 10 | 11 | --- 12 | 13 | ## ✅ Completed Tasks 14 | 15 | ### 🏛️ Governance 16 | - Finalized, reviewed, and merged the official **Sponsorship Policy**, establishing clear rules for editorial independence and sponsor recognition. [CLOSED #88](https://github.com/open-neuromorphic/communications/pull/88) 17 | - Created and implemented the **Event Participant Agreement** form to standardize consent for recording, licensing, and sponsorship opt-in for all event contributors. [RELATED #88](https://github.com/open-neuromorphic/communications/pull/88) 18 | - Initiated the process for the **Formal Membership Roll** by reminding Fellows of their stewardship role and requesting contact information. [UPDATED #95](https://github.com/open-neuromorphic/communications/issues/95) 19 | 20 | ### 📣 Communications 21 | - Drafted a **Social Media Playbook** to guide new volunteers, outlining core goals, content pillars, and key workflows for managing ONM's online presence. [CLOSED #98](https://github.com/open-neuromorphic/communications/pull/98) 22 | 23 | ### 🌐 Website 24 | - Launched the **ONM Mission Board**, a new page that automatically aggregates "help wanted" issues from Collaboration Network projects. [CLOSED #315](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/315) 25 | - Implemented **Dual Licensing** (MIT for code, CC BY-SA for content) across the website, formalizing our open-source principles. [CLOSED #320](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/320) 26 | - Collaborated with Jens E. Pedersen to create and co-curate the event page for the upcoming **Tonic Workshop with Gregor Lenz**. 27 | - Updated the **Hardware & Software Curator** volunteer role description to better attract domain experts. 28 | 29 | --- 30 | 31 | ## ⏳ In Progress 32 | 33 | ### 📣 Communications 34 | - Onboarding **Marcos** as the new Social Media Coordinator and reviewing the Social Media Playbook with him. 35 | - Preparing for the advisory call with **Harish Pillay** to discuss foundational and funding models for ONM. 36 | 37 | ### 🛠️ Resources & Infrastructure 38 | - Refining the **Mission Board's automation**, including testing the nightly build process and preparing outreach to expand the list of participating projects. 39 | - Awaiting responses from **Digital Ocean** and **JetBrains** on our Open Source Credits applications. 40 | 41 | ### 🌐 Website 42 | - Integrating **Community Town Halls** as a formal event type on the website. [OPEN #333](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/333) 43 | - Refactoring internal website links to use `site.GetPage` for robust multi-environment support. [OPEN #332](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/332) 44 | 45 | --- 46 | 47 | ## 💡 Next Steps / Focus for Next Week 48 | - Prepare for and conduct the advisory meeting with Harish Pillay to refine our funding strategy. 49 | - Work with Marcos to get him fully onboarded as the Social Media Coordinator and begin planning content. 50 | - Follow up on fiscal sponsorship discussions with OSHF and legal counsel. -------------------------------------------------------------------------------- /docs/policies/event_participant_agreement.md: -------------------------------------------------------------------------------- 1 | ### **A Note on This Document** 2 | 3 | This document is the official template and administrative record for our Event Participant Agreement. It serves as the canonical source for the terms participants agree to and should be updated to reflect any policy changes. 4 | 5 | For event coordination, participants will typically be asked to complete an interactive form (e.g., a Google Form) that is based on the exact terms documented here. 6 | 7 | --- 8 | 9 | ### **Open Neuromorphic (ONM) Speaker & Contributor Consent Form** 10 | 11 | Hello [Participant's Name], 12 | 13 | Thank you for agreeing to share your expertise with the Open Neuromorphic community! To ensure transparency and legal clarity for our open-source mission, we ask all participants to review and complete this brief consent form. 14 | 15 | **Event Title:** `[Event Title]` 16 | **Event Date:** `[Event Date]` 17 | 18 | --- 19 | 20 | #### **1. Consent to Record, Distribute, and License Content** 21 | 22 | To maximize the reach and impact of your contribution, all ONM events (including workshops, student talks, and hacking hours) are recorded and made publicly available on platforms like YouTube. 23 | 24 | By participating, you grant Open Neuromorphic a non-exclusive, perpetual license to record, reproduce, and distribute your presentation and any shared materials (slides, code, etc.) under our community's open-source licensing terms. This allows others to learn from, build upon, and share your work. 25 | 26 | Our default licenses are: 27 | * **Presentation Materials (Video, Slides, Audio):** Creative Commons Attribution-ShareAlike 4.0 (CC-BY-SA 4.0) 28 | * **Code Snippets and Demonstrations:** MIT License 29 | 30 | **Your Own License:** If your materials are already under a different open-source license that aligns with our **[Principles for Open Resources](./open-definition.md)** (e.g., CC-BY, Apache 2.0), please let us know. We will happily honor and display your preferred license. 31 | 32 | For full details, please see our **[Content and Contribution Policy](./content_and_contribution.md)**. 33 | 34 | --- 35 | 36 | #### **2. Event Sponsorship Opt-In** 37 | 38 | Open Neuromorphic is a community-first organization. To support our operational costs, some events may be supported by sponsors. We are committed to ensuring these partnerships are transparent and never compromise our editorial independence. 39 | 40 | This specific event is made possible with support from: 41 | * **[Sponsor Name(s)]** 42 | 43 | Sponsor recognition is limited to a brief, standardized acknowledgment (e.g., "This event is brought to you by [Sponsor Name]") at the beginning of the session and on promotional materials. Sponsors have no influence over event content. 44 | 45 | Per our **[Sponsorship Policy](./sponsorship_policy.md)**, participation in a sponsored event is strictly **opt-in**. Please indicate your preference below. 46 | 47 | [ ] **I consent to participate in this sponsored event.** I understand that the sponsor(s) listed above will be acknowledged during the session. 48 | 49 | *If you prefer not to participate in a sponsored session, please leave the box above unchecked. In accordance with our policy, we will ensure all sponsor branding is omitted from your specific presentation segment. We understand that conflicts can sometimes extend beyond on-screen branding. If the sponsorship for this event poses a broader issue for you, please reach out to us. We are committed to ensuring you have a platform and will work with you to find a suitable solution.* 50 | 51 | --- 52 | 53 | #### **3. Affirmation** 54 | 55 | By completing this section, you confirm that you have read and agree to the terms outlined above. 56 | 57 | - [ ] I agree to the terms for recording, distribution, and licensing. 58 | - **Your Full Name:** 59 | - **Date:** 60 | 61 | --- 62 | 63 | Thank you again for your valuable contribution to the Open Neuromorphic community. We look forward to your session! If you have any questions, please don’t hesitate to reach out to us at **contact@open-neuromorphic.org**. 64 | 65 | Best regards, 66 | 67 | The Open Neuromorphic Executive Committee -------------------------------------------------------------------------------- /docs/initiatives/in-progress/hardware-and-software-curator/README.md: -------------------------------------------------------------------------------- 1 | # Initiative Plan: Hardware & Software Guide Curation 2 | 3 | **Accountable Fellow:** Hardware & Software Guide Curator (Volunteer Role) 4 | **Approver:** @DRosen766, @Jegp, @neural-loop 5 | **Status:** IN PROGRESS 6 | 7 | --- 8 | 9 | ## 🎯 Objective 10 | 11 | To strategically curate, maintain, and expand Open Neuromorphic's Hardware and Software Guides, ensuring they are the most accurate, comprehensive, and trusted resources for the neuromorphic community. This initiative aims to solidify ONM's authority, drive community growth, and create a structured knowledge base that lowers the barrier to entry for newcomers and experts alike. 12 | 13 | --- 14 | 15 | ## 🧠 Problem Statement 16 | 17 | The current neuromorphic landscape is complex and fragmented, making it difficult for community members to navigate. Our guides are a primary entry point to ONM, but they require continuous expert attention to remain accurate and grow in strategic value beyond simple lists. 18 | 19 | **Hypothesis:** _We believe that by actively curating our guides and developing a rich taxonomy for them, we will result in **increased website traffic, higher community engagement, and the establishment of ONM as the primary authoritative resource for the neuromorphic ecosystem.** We’ll know we’ve succeeded if **we see measurable growth in new members joining via the guides, increased SEO ranking for key hardware/software terms, and the successful launch of new, taxonomy-driven content hubs.**_ 20 | 21 | --- 22 | 23 | ## 🧾 Key Outcomes 24 | 25 | - An always-accurate and up-to-date set of hardware and software guides. 26 | - A clear, documented workflow for the curator role (the Curator Playbook). 27 | - A well-defined taxonomy for categorizing neuromorphic technologies by application, industry, and architecture. 28 | - The successful launch of at least one new, taxonomy-driven content hub (e.g., "Neuromorphics in Robotics"). 29 | - Increased community contributions to the guides through a streamlined issue and PR process. 30 | 31 | --- 32 | 33 | ## 🗺️ Scope 34 | 35 | | Category | Description | 36 | | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | 37 | | **Must Have** | - Regular review and updating of existing entries in the hardware and software guides.
- Adding new, community-requested or newly discovered technologies.
- Developing a foundational taxonomy for hardware and software based on field and industry categories. | 38 | | **Nice to Have** | - Collaborating directly with project maintainers for content verification and accuracy.
- Proposing and helping to build out new, industry-specific content hubs based on the taxonomy.
- Automating parts of the content discovery process. | 39 | | **Not in Scope** | - This is a **content curation and domain expertise** role, not a software development position. The curator is not responsible for building new website features or fixing site bugs.
- Creating primary research; the role is to report on and structure existing knowledge. | 40 | 41 | --- 42 | 43 | ## 🔗 Reference Materials 44 | 45 | - **[Hardware & Software Guide Curator Playbook](./curator_playbook.md)**: The primary operational guide for this role, detailing the strategy, tasks, and workflows. 46 | - **GitHub Issue Queue:** **[Hardware & Software Curation Issues](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues?q=is%3Aissue+state%3Aopen+label%3A%22Hardware+%26+Software+Curation%22)** 47 | - **Primary Content:** 48 | - **[Neuromorphic Hardware Guide](https://open-neuromorphic.org/neuromorphic-computing/hardware/)** 49 | - **[Neuromorphic Software Guide](https://open-neuromorphic.org/neuromorphic-computing/software/)** -------------------------------------------------------------------------------- /docs/initiatives/todo/interactive_llm.md: -------------------------------------------------------------------------------- 1 | ✅ Initiative Title: ONM Assistant – Unified Ecosystem Chatbot 2 | 3 | ⸻ 4 | 5 | 🧠 Vision Statement 6 | 7 | To empower the ONM community with a conversational AI assistant that acts as a natural interface to all ONM platforms, enabling members to retrieve information, contribute to initiatives, and engage more meaningfully—regardless of their technical background or preferred channel. 8 | 9 | ⸻ 10 | 11 | 🔍 Problem / Opportunity 12 | 13 | ONM’s growing ecosystem—including Discord, LinkedIn, GitHub, and the ONM website—is rich with resources, but the fragmentation of content across platforms creates barriers to engagement and discovery. Many community members are unaware of ongoing initiatives, cannot easily locate materials, or lack the time to keep up. There’s an opportunity to unify ONM’s presence with a single point of access. 14 | 15 | ⸻ 16 | 17 | 🎯 Goals and Objectives 18 | • Build a modular chatbot capable of: 19 | • Reading and summarizing Discord discussions 20 | • Pulling posts and analytics from ONM’s LinkedIn 21 | • Querying and retrieving content from the ONM website and GitHub 22 | • Responding to common questions and offering initiative guidance 23 | • Integrate the bot within Discord and optionally as a web widget 24 | • Enable admin workflows for initiative updates, announcements, and metrics 25 | • Support new user onboarding with context-aware assistance 26 | • Pilot use with the executive team, then roll out community-wide 27 | 28 | ⸻ 29 | 30 | 📦 Deliverables 31 | • ONM Assistant chatbot service (with API backend) 32 | • Discord bot interface (slash commands, DM interactivity) 33 | • Website widget (for querying initiatives and content) 34 | • Admin features: status updates, metrics summaries, user reminders 35 | • Documentation for contributors and users 36 | • Initial FAQ and knowledge base integration 37 | 38 | ⸻ 39 | 40 | 🛠️ Implementation Plan 41 | 42 | Phase 1: Planning & Scoping (July 2025) 43 | • Finalize core use cases and system architecture 44 | • Select tools (e.g., LangChain, Discord API, web scraping/embedding tools) 45 | • Identify platform-specific constraints (Discord rate limits, LinkedIn API access) 46 | 47 | Phase 2: MVP Build – Discord Integration (August 2025) 48 | • Bot capable of fetching initiative info, answering community FAQs, and summarizing channels 49 | • Integration with Discord permissions and roles 50 | • Logging and error-handling system 51 | 52 | Phase 3: Website + LinkedIn Support (September 2025) 53 | • Embed access to initiative docs and blog content 54 | • Fetch and summarize ONM LinkedIn activity (via scraping or API) 55 | • Enable cross-platform activity tracking 56 | 57 | Phase 4: Admin Tools + Dashboard Integration (October 2025) 58 | • Allow privileged users to push reminders, reports, and initiative updates 59 | • Export data to ONM dashboard 60 | • Weekly and monthly reporting templates 61 | 62 | Phase 5: User Testing & Feedback (October–November 2025) 63 | • Pilot with executive team and active fellows 64 | • Survey feedback and improve conversational performance 65 | • Public rollout and documentation polish 66 | 67 | ⸻ 68 | 69 | 📈 Metrics for Success 70 | • ≥ 50 weekly active users by 3 months post-launch 71 | • ≥ 3 ONM initiatives adopt the chatbot to assist in coordination 72 | • ≥ 75% of initiative documentation queries handled via bot 73 | • ≥ 50% decrease in repeat questions in Discord channels 74 | • Community satisfaction score ≥ 4.5/5 in feedback form 75 | 76 | ⸻ 77 | 78 | 👥 Accountable Fellow 79 | 80 | @Daniel Rosen 81 | 82 | ⸻ 83 | 84 | 🤝 Collaborators and Stakeholders 85 | • @Justin Riddiough – Discord architecture 86 | • @Jens E. Pedersen – ONM documentation and dashboard 87 | • Community working group (to be formed) 88 | 89 | ⸻ 90 | 91 | 🧩 Dependencies 92 | • Discord bot token and permissions 93 | • Website scraping or embedding architecture 94 | • LinkedIn API or automation access 95 | • ONM GitHub repository access for initiative indexing 96 | • Admin approval for push announcements and reports 97 | 98 | ⸻ 99 | 100 | Would you like this added to your curated ONM initiative list now? -------------------------------------------------------------------------------- /dashboard/pages/content_performance.py: -------------------------------------------------------------------------------- 1 | # content_performance_with_api.py 2 | 3 | import os 4 | import streamlit as st 5 | import pandas as pd 6 | from google.analytics.data_v1beta import BetaAnalyticsDataClient 7 | from google.analytics.data_v1beta.types import RunReportRequest, Dimension, Metric 8 | from pathlib import Path 9 | from googleapiclient.discovery import build 10 | from google.oauth2.credentials import Credentials 11 | from google.oauth2 import service_account 12 | 13 | # Setup 14 | st.set_page_config(page_title="Content Performance", layout="wide") 15 | st.title("📈 Content Performance: Blog, Workshops, YouTube") 16 | 17 | def format_number(n): 18 | try: 19 | return f"{int(n):,}" 20 | except: 21 | return n 22 | 23 | # ---------------------------------------- 24 | # Google Analytics 4 API - Blog & Workshop Data 25 | # ---------------------------------------- 26 | with st.expander("📝 Blog & Workshop Metrics (GA4)", expanded=True): 27 | try: 28 | SCOPES = ["https://www.googleapis.com/auth/analytics.readonly"] 29 | credentials = service_account.Credentials.from_service_account_file( 30 | os.getenv("GSC_SERVICE_ACCOUNT_PATH"), scopes=SCOPES 31 | ) 32 | client = BetaAnalyticsDataClient(credentials=credentials) 33 | property_id = os.getenv("GA4_PROPERTY_ID") 34 | 35 | request = RunReportRequest( 36 | property=f"properties/{property_id}", 37 | dimensions=[Dimension(name="pagePath")], 38 | metrics=[ 39 | Metric(name="screenPageViews"), 40 | Metric(name="userEngagementDuration") 41 | ], 42 | date_ranges=[{"start_date": "30daysAgo", "end_date": "today"}], 43 | ) 44 | 45 | response = client.run_report(request) 46 | rows = response.rows 47 | 48 | table = [] 49 | for row in rows: 50 | page = row.dimension_values[0].value 51 | views = row.metric_values[0].value 52 | duration = round(float(row.metric_values[1].value), 2) 53 | 54 | # Filter specific blog or workshop pages 55 | if any(x in page for x in [ 56 | "truenorth-deep-dive", "northpole-ibm", 57 | "spiking-neural-network-framework-benchmarking", "spiking-neurons-digital-hardware", 58 | "/workshops/", "c-dnn-and-c-transformer", "neuromorphic-intermediate-representation" 59 | ]): 60 | table.append((page, views, duration)) 61 | 62 | df = pd.DataFrame(table, columns=["Page", "Page Views", "User Engagement Duration (s)"]) 63 | st.dataframe(df) 64 | except Exception as e: 65 | st.error(f"Error loading GA4 blog/workshop metrics: {e}") 66 | 67 | # ---------------------------------------- 68 | # YouTube Placeholder - Replace with real API calls 69 | # ---------------------------------------- 70 | with st.expander("📺 YouTube Video Performance"): 71 | try: 72 | 73 | # Load YouTube API credentials 74 | credentials = Credentials.from_authorized_user_file( 75 | os.getenv("YOUTUBE_CREDENTIALS_PATH"), scopes=["https://www.googleapis.com/auth/youtube.readonly"] 76 | ) 77 | youtube = build("youtube", "v3", credentials=credentials) 78 | 79 | # Fetch channel analytics data 80 | channel_id = os.getenv("YOUTUBE_CHANNEL_ID") 81 | response = youtube.channels().list( 82 | part="statistics", 83 | id=channel_id 84 | ).execute() 85 | 86 | # Extract statistics 87 | stats = response["items"][0]["statistics"] 88 | youtube_data = [ 89 | ("Subscribers", stats.get("subscriberCount", "N/A")), 90 | ("Total Views", stats.get("viewCount", "N/A")), 91 | ("Video Count", stats.get("videoCount", "N/A")) 92 | ] 93 | 94 | # Display data 95 | df_yt = pd.DataFrame(youtube_data, columns=["Metric", "Value"]) 96 | st.dataframe(df_yt) 97 | except Exception as e: 98 | st.error(f"Error loading YouTube data: {e}") 99 | 100 | st.caption("🔍 Replace YouTube placeholders with API data using the YouTube Analytics API (OAuth 2.0 required).") -------------------------------------------------------------------------------- /status-reports/2025-09-24-justin-riddiough.md: -------------------------------------------------------------------------------- 1 | # Status Report: Justin Riddiough - 2025-09-23 2 | 3 | ## 🎯 Highlights & Key Accomplishments 4 | - **Formalized Event Coordination:** Created and submitted the **Event Coordinator Playbook** via a pull request, providing a comprehensive guide to streamline event management and onboard new volunteers. 5 | - **Launched Town Hall Integration:** Successfully integrated the weekly Community Town Hall as a formal event type on the website, complete with a dedicated page and homepage visibility, increasing its reach and creating a permanent archive. 6 | - **Initiated Collaboration Network Outreach:** Finalized and began executing the outreach strategy to formally invite key open-source projects into the ONM Collaboration Network, a major step in unifying the ecosystem. 7 | 8 | ## ❗ Blocked / Awaiting Review 9 | * **Formal Membership Roll:** The official membership roll remains blocked pending receipt of contact information from all Fellows. The request has been sent, but we are awaiting responses to finalize the document. [Awaiting Action in #95](https://github.com/open-neuromorphic/communications/issues/95) 10 | * **Event Participant Agreement:** The PR for the formal `event_participant_agreement.md` is complete and awaiting final review and merge into our official policies. [Awaiting Review in #99](https://github.com/open-neuromorphic/communications/pull/99) 11 | 12 | --- 13 | 14 | ## ✅ Completed Tasks 15 | 16 | ### 🏛️ Governance & Operations 17 | - Created the **Event Coordinator Playbook** and submitted it for review, establishing a master checklist and workflow for all community events. [OPEN #101](https://github.com/open-neuromorphic/communications/pull/101) 18 | - Led the first **Backlog Grooming Session** with the Executive Committee to triage, categorize, and close outstanding issues in the `communications` repository. 19 | 20 | ### 📣 Communications 21 | - Prepared the presentation deck for the **Community Town Hall** on September 15th. 22 | - Drafted and published the social media announcement (LinkedIn/X) for the upcoming **Tonic Workshop**. 23 | 24 | ### 🌐 Website 25 | - Merged and launched the **Community Town Hall integration**, making it a formal, archivable event type on the website. [CLOSED #333](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/333) via PR [#342](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/342) 26 | - Created, configured, and published the event page for the **Tonic Workshop with Gregor Lenz**, including generating automated social media assets. 27 | 28 | --- 29 | 30 | ## ⏳ In Progress 31 | 32 | ### 🏛️ Governance & Strategy 33 | - Advisory meetings with **Harish Pillay** and fiscal sponsors (**OSHF, NumFocus**) to refine ONM's foundational and funding models. 34 | 35 | ### 📣 Communications & Community 36 | - Actively sending outreach messages to the target list of projects for the **ONM Collaboration Network**. [OPEN #100](https://github.com/open-neuromorphic/communications/issues/100) 37 | - Onboarding and coordinating with new volunteers, including **Marcos** (Social Media Coordinator) and new applicants for the **Event Coordinator** role. 38 | 39 | ### 🌐 Website 40 | - Migrating legacy event pages to use the new centralized **Contributor Profile system** for speaker information, which is now a priority for all new events. [OPEN #341](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/341) 41 | - Continuing the site-wide refactor of internal links to use `site.GetPage` for robust multi-environment support. [OPEN #332](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/332) 42 | 43 | ### 🛠️ Resources & Infrastructure 44 | - Testing the **Mission Board's** automation scripts in a staging environment before enabling the nightly build process. 45 | - Awaiting responses from **Digital Ocean** and **JetBrains** on our Open Source Credits applications. 46 | 47 | --- 48 | 49 | ## 💡 Next Steps / Focus for Next Week 50 | - Continue sending outreach emails to projects for the Collaboration Network. 51 | - Work with the new Event Coordinator volunteer(s) to get them fully onboarded using the new playbook. 52 | - Prepare for and conduct the advisory meeting with Chris Eliasmith to discuss potential workshop opportunities. -------------------------------------------------------------------------------- /docs/policies/content_and_contribution.md: -------------------------------------------------------------------------------- 1 | # ONM Content and Contribution Policy 2 | 3 | This document outlines the licensing policies for content created by Open Neuromorphic (ONM) and for contributions made by our community members, speakers, and event participants. Our goal is to ensure clarity while fostering a collaborative, open, and legally sound ecosystem. 4 | 5 | --- 6 | 7 | ## Part 1: Content Created by ONM 8 | 9 | This section applies to all content and code produced directly by the Open Neuromorphic organization. 10 | 11 | ### Website Content: CC-BY-SA 12 | 13 | All textual and graphical content created by ONM and published on the [open-neuromorphic.org](https://open-neuromorphic.org) website is licensed under the **Creative Commons Attribution-ShareAlike 4.0 International License (CC-BY-SA 4.0)**. 14 | 15 | > [View the CC-BY-SA 4.0 License Summary](https://creativecommons.org/licenses/by-sa/4.0/) 16 | 17 | ### Website Code: MIT License 18 | 19 | The underlying source code used to build and display the Open Neuromorphic website is licensed under the **MIT License**. 20 | 21 | > [View the MIT License Text](https://opensource.org/licenses/MIT) 22 | 23 | ### Trademarks 24 | 25 | The names "Open Neuromorphic," "ONM," and the Open Neuromorphic logos are trademarks of Open Neuromorphic. These trademarks are **not** included under the terms of the CC-BY-SA or MIT licenses and may not be used to suggest sponsorship or endorsement without prior written permission. 26 | 27 | --- 28 | 29 | ## Part 2: Content from Community Participants and Contributors 30 | 31 | This section applies to anyone who contributes content to the ONM community, including event speakers, workshop participants, and project collaborators. 32 | 33 | ### Guiding Principle 34 | 35 | To maintain our open-source mission, we require that contributions made through ONM platforms are licensed in a way that allows for public sharing and reuse. By participating, you grant ONM a non-exclusive, perpetual license to record, reproduce, and distribute your contribution under the terms outlined below. 36 | 37 | ### Licensing Requirements for Contributions 38 | 39 | 1. **Compliance with ONM's Open Definition:** By presenting, speaking, or sharing content, you affirm that your contribution complies with **ONM's Principles for Open Resources**. Your work must, at a minimum, allow for study, modification, sharing, and commercial use. 40 | 41 | > For full details, please review our **[Definition of Open](../policies/open-definition.md)**. 42 | 43 | 2. **Default Licensing:** To ensure legal clarity, if you do not specify a license for your work at the time of contribution, you agree that ONM will share it under our default licenses: 44 | - **Presentation Materials (slides, video, audio):** Released under **CC-BY-SA 4.0**. 45 | - **Code Snippets and Demonstrations:** Released under the **MIT License**. 46 | 47 | 3. **Using Your Own License:** We encourage you to use your own preferred open-source license. If your materials are already licensed under a different license (e.g., Apache 2.0, CC-BY), please **inform us in advance** or make the license clear in your materials. As long as it complies with our Definition of Open, we will honor it and make a note of the specific license when sharing your work. 48 | 49 | ### Policy for Event Attendance 50 | 51 | For all ONM-hosted events (e.g., Student Talks, workshops, hacking hours): 52 | 53 | - **Consent to Record:** Events will be recorded and made publicly available. Your attendance and active participation serve as consent to be recorded and for your contributions to be shared under the terms described above. 54 | - **Consent Regarding Sponsorship:** Some ONM events or programs may be supported by sponsors. All speakers and key participants will be notified in advance if an event is sponsored. Participation in a sponsored event is strictly **opt-in**. We are committed to providing a space for all community members, and further details can be found in our **[Sponsorship Policy](./sponsorship_policy.md)**. 55 | 56 | ### How We Communicate This Policy 57 | 58 | This policy will be clearly communicated to participants via: 59 | - Speaker agreement emails. 60 | - Event registration pages. 61 | 62 | If you have any questions or concerns about this policy, please contact the ONM leadership team before contributing. -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/event-preparation.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Organize an Event 3 | about: Use this checklist to plan, execute, and archive a new community event. 4 | title: 'Event: [Name of Talk/Speaker]' 5 | labels: '' 6 | --- 7 | 8 | **Guests/Hosts:** 9 | **Preliminary Event Description:** 10 | 11 | 12 | ### Phase 1: Pre-Event Planning & Onboarding 13 | 14 | - [ ] **Initial Contact & Scheduling:** 15 | - [ ] Work with the speaker and the Executive Committee to schedule a date and time that maximizes audience reach across different time zones. (We recommend use of a tool such as Timeful for coordinating time availability.) 16 | - [ ] **Confirm Sponsorship Status:** 17 | - [ ] Check with the Executive Committee if the event has a specific sponsor. This is required before sending the Participant Agreement. 18 | - [ ] **Formalize Participation:** 19 | - [ ] Send the speaker the Event Participant Agreement form. This is a crucial step for clarifying content licensing and sponsorship opt-in. 20 | - [ ] Confirm receipt and answer any questions they may have about the policy. 21 | - [ ] **Secure Event Host(s)/Moderator(s):** 22 | - [ ] Identify and confirm who will be hosting or moderating the session. 23 | - [ ] **Collect All Necessary Information:** 24 | - [ ] Final Title & Abstract/Description 25 | - [ ] Speaker Bio & Photo 26 | - [ ] Links to slides, code repositories, or papers (can be published before or after) 27 | - [ ] **Create the Website Event Page:** 28 | - [ ] Use the appropriate Hugo archetype to create a new event page on the ONM website repository. (Reference: `CONTRIBUTING.md`). 29 | - [ ] Share a staging link for a final review of the website post with stakeholders to confirm messaging and contributor profiles. 30 | 31 | --- 32 | 33 | ### Phase 2: Pre-Event Logistics & Promotion (1-2 Weeks Out) 34 | 35 | - [ ] **Set Up the Broadcast:** 36 | - [ ] Create the event in StreamYard. 37 | - [ ] Configure the destinations (YouTube, LinkedIn) to automatically schedule the upcoming stream placeholders. 38 | - [ ] **Coordinate Initial Promotion:** 39 | - [ ] Notify the Social Media Coordinator that the event page is live. 40 | - [ ] Work with them to schedule the promotional posts across all platforms. 41 | - [ ] **Update the ONM Calendar:** 42 | - [ ] Add the event to the shared Google & Discord Calendars. 43 | - [ ] **Schedule a Tech Check:** 44 | - [ ] Arrange a brief (15-minute) tech check with the speaker and host to ensure they are comfortable with StreamYard, test camera/mic, and walk through the screen-sharing process. 45 | 46 | --- 47 | 48 | ### Phase 3: Final Countdown (Week of Event) 49 | 50 | - [ ] **Send Speaker Reminders:** 51 | - [ ] A few days before the event, send a reminder email to the speaker and host with the final schedule, the StreamYard guest link, and contact info for day-of support. 52 | - [ ] **Coordinate Final Promotion:** 53 | - [ ] Work with the Social Media Coordinator to execute reminder posts. 54 | - [ ] **Prepare the Discord Announcement:** 55 | - [ ] Schedule announcements in the Discord server shortly before the event starts. 56 | 57 | --- 58 | 59 | ### Phase 4: During the Event (Showtime!) 60 | 61 | - [ ] **Act as Backstage Manager:** 62 | - [ ] Join the StreamYard studio 15-20 minutes early to greet the speaker and host. 63 | - [ ] Ensure all presenters are in the "green room" and ready to go. 64 | - [ ] Manage scene transitions, on-screen comments, and banners. 65 | - [ ] **Monitor Stream Health:** 66 | - [ ] Keep an eye on stream quality and audience comments across platforms for any technical issues. 67 | - [ ] Be the primary point of contact for troubleshooting. 68 | 69 | --- 70 | 71 | ### Phase 5: Post-Event Wrap-Up (Within 24 Hours) 72 | 73 | - [ ] **Thank the Speaker & Host:** 74 | - [ ] Send a thank-you email to all participants, including a link to the final recording. 75 | - [ ] **Archive the Content:** 76 | - [ ] **YouTube:** Ensure the final video is titled correctly, has a full description (with links to resources), and is added to the correct playlist (e.g., "Workshops," "Student Talks"). 77 | - [ ] **Website:** Update the event page by adding the YouTube video ID and links to any final slides or code shared by the speaker. 78 | - [ ] **Coordinate Final Promotion:** 79 | - [ ] Notify the Social Media Coordinator that the recording is available and trigger the "Recording is Live" post. -------------------------------------------------------------------------------- /dashboard/streamlit_dashboard_setup.md: -------------------------------------------------------------------------------- 1 | Here’s the cleaned-up and unified version of your full setup instructions in raw Markdown. Redundant steps were merged, order clarified, and formatting tightened: 2 | 3 | # 🧠 Open Neuromorphic Engagement Dashboard 4 | 5 | This dashboard tracks engagement across ONM’s platforms (Website, Discord, YouTube, LinkedIn) using data from Google Analytics 4 (GA4), Google Search Console, and other APIs. 6 | 7 | --- 8 | 9 | ## 🚀 Getting Started 10 | 11 | Follow these steps to set up and run the Streamlit dashboard locally. 12 | 13 | --- 14 | 15 | ## 1. 🧰 Prerequisites 16 | 17 | Ensure the following are installed: 18 | 19 | - Python 3.9 or higher 20 | - [Google Cloud CLI](https://cloud.google.com/sdk/docs/install) 21 | - [Streamlit](https://streamlit.io) 22 | - Required Python packages (see below) 23 | 24 | --- 25 | 26 | 27 | ## 2. 📁 Clone the Repository 28 | 29 | ```bash 30 | git clone https://github.com/your-org/onm-engagement-dashboard.git 31 | cd onm-engagement-dashboard 32 | ``` 33 | 34 | --- 35 | 36 | 37 | 3. 🐍 Set Up Python Environment 38 | 39 | Using venv: 40 | 41 | python -m venv .venv 42 | source .venv/bin/activate # Mac/Linux 43 | .venv\Scripts\activate # Windows 44 | 45 | pip install -r requirements.txt 46 | 47 | 48 | ⸻ 49 | 50 | ## 4. 🔐 GA4 API Authentication (for overall_health_growth.py) 51 | 52 | To run overall_health_growth.py, set up Google Analytics API access using Application Default Credentials (ADC): 53 | 54 | Step 1: Initialize Google Cloud CLI 55 | 56 | If you haven’t already: 57 | 58 | gcloud init 59 | 60 | Step 2: Authenticate with Google and Set Scopes 61 | 62 | gcloud auth application-default login \ 63 | --scopes="https://www.googleapis.com/auth/analytics.readonly" 64 | 65 | This allows your Python scripts to access GA4 as your Google user. 66 | 67 | Step 3: Set a Quota Project 68 | 69 | gcloud auth application-default set-quota-project YOUR_PROJECT_ID 70 | 71 | Replace YOUR_PROJECT_ID with your Google Cloud project ID. 72 | 73 | Step 4: Enable the GA4 Data API 74 | 75 | gcloud services enable analyticsdata.googleapis.com --project=YOUR_PROJECT_ID 76 | 77 | Step 5: Ensure GA4 Property Access 78 | 79 | Go to analytics.google.com → Admin → Property Access Management. 80 | 81 | Add your Google account (used in gcloud login) as a Viewer or Analyst. 82 | 83 | ⸻ 84 | 85 | ## 5. ⚙️ Project Structure 86 | 87 | Your project directory should look like this: 88 | 89 | /dashboard/ 90 | │ 91 | ├── home.py 92 | ├── overall_health_growth.py 93 | ├── website_metrics.py 94 | ├── seo_performance.py 95 | ├── content_hub.py 96 | ├── community_engagement.py 97 | ├── test_ga4_connection.py 98 | ├── requirements.txt 99 | └── .streamlit/ 100 | └── config.toml 101 | 102 | Edit .streamlit/config.toml to customize sidebar or page titles if desired. 103 | 104 | ⸻ 105 | 106 | ## 6. ▶️ Run the Dashboard 107 | 108 | From the repo root: 109 | 110 | streamlit run home.py 111 | 112 | Then open http://localhost:8501 in your browser. 113 | 114 | ⸻ 115 | 116 | ## 7. 📊 Dashboard Pages 117 | 118 | ## 7. 📊 Dashboard Pages 119 | 120 | | Page | Description | 121 | |-----------------------|-------------------------------------------------------| 122 | | **Home** | Main navigation page | 123 | | **Overall Health & Growth** | Users, Discord members, YouTube subs, LinkedIn stats | 124 | | **Website Metrics** | GA4: traffic, top pages, engagement metrics | 125 | | **SEO Performance** | Search Console: queries, impressions, CTR | 126 | | **Content Hub** | Blog, workshops, and YouTube content performance | 127 | | **Community Engagement** | Discord role stats and LinkedIn follower insights | 128 | 129 | 130 | ⸻ 131 | 132 | ## ❓ Troubleshooting 133 | • PERMISSION_DENIED: Ensure you’ve set the quota project and have GA4 access. 134 | • Missing token_uri or client_email: You may be using the wrong credentials file. Use gcloud auth application-default login or create a valid service account JSON. 135 | 136 | ⸻ 137 | 138 | ## 🔐 Notes 139 | • This dashboard uses Application Default Credentials (ADC) for local development. 140 | • For production use, a service account is recommended with securely stored credentials. 141 | 142 | ⸻ 143 | 144 | ## 📬 Contact 145 | 146 | Questions? Reach out in the ONM Discord or submit a pull request to contribute. -------------------------------------------------------------------------------- /status-reports/2025-09-06-justin-riddiough.md: -------------------------------------------------------------------------------- 1 | # Status Report: Justin Riddiough - 2025-08-29 to 2025-09-06 2 | 3 | ## 🎯 Highlights & Key Accomplishments 4 | - Scheduled a introductory advisory call with Harish Pillay (prev AI Verify Foundation, Red Hat) to guide our foundation and funding model. 5 | - Initiated major website infrastructure improvements, including a formal Town Hall event system and a robust internal linking refactor to support staging environments. 6 | - Successfully onboarded a new volunteer (Jose) to help with website content curation (included comms support from Danny Rosen) 7 | 8 | ## ❗ Blocked / Awaiting Review 9 | * **Content & Sponsorship Policy:** The latest draft incorporating committee feedback is awaiting final review and approval before it can be formally adopted. [Awaiting Review in #88](https://github.com/open-neuromorphic/communications/pull/88) 10 | * **Dual Licensing for Website:** The PR to implement dual licensing (MIT for code, CC BY-SA for content) is awaiting review. This is a key step in formalizing our open-source principles. [Awaiting Review in #320](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/320) 11 | * **ONM Mission Board Feature:** This major new initiative, integrating "help wanted" issues from our collaboration network, is complete and awaiting final feedback and approval to merge. [Awaiting Review in #315](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/315) 12 | 13 | --- 14 | 15 | ## ✅ Completed Tasks 16 | 17 | ### 🏛️ Governance 18 | - Performed a sweep of outstanding issues in the **communications repo**, moving items to in-progress or backlog and requesting closure on others. [COMPLETED] 19 | 20 | ### 📣 Communications 21 | - Enabled GitHub webhooks to report repository updates directly to Discord, improving transparency. [CLOSED #55](https://github.com/open-neuromorphic/communications/issues/55) 22 | - Exploring a potential collaboration with **BME Bytes** on a Discord-to-GitHub content assistant. [UPDATED #71](https://github.com/open-neuromorphic/communications/issues/71) 23 | 24 | ### 🌐 Website 25 | - Improved styling and layout for the **Community Resources** and **Volunteer Opportunities** pages. [CLOSED #327](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/327) 26 | - Added new **Event Host** and **Event Guest** volunteer role descriptions. [CLOSED #326](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/326) 27 | - Enabled **CodeQL security scanning** on the website repository and resolved two potential vulnerabilities. [CLOSED #329](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/329), [CLOSED #328](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/328) 28 | - Supported **Jose's onboarding** as a new volunteer by defining an initial task and providing guidance on setting up a staging environment. [CLOSED #321](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/321) 29 | - Refined the **Hardware & Software Curator** volunteer role to align with strategic content goals and provide clarity for applicants. [CLOSED #334](https://github.com/open-neuromorphic/open-neuromorphic.github.io/pull/334) 30 | 31 | --- 32 | 33 | ## ⏳ In Progress 34 | 35 | ### 🏛️ Governance 36 | - Preparing for the advisory call with **Harish Pillay** to discuss foundational and funding models for ONM. 37 | 38 | ### 📣 Communications 39 | - Developing the initial slide presentation for the **Community Town Hall** meetings. [View Presentation](https://visioninit.dev/th/) 40 | - Outlining a process to include **newsletter sign-ups** in our general mailing list. 41 | 42 | ### 🌐 Website 43 | - Integrating **Community Town Halls** as a formal event type on the website. [OPEN #333](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/333) 44 | - Refactoring internal website links to use `site.GetPage` for robust multi-environment support. [OPEN #332](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues/332) 45 | 46 | ### 🛠️ Resources & Infrastructure 47 | - Awaiting response from **Digital Ocean** on our Open Source Credits application. 48 | - Awaiting response from **JetBrains** on our application for free IDE licenses. 49 | 50 | --- 51 | 52 | ## 💡 Next Steps / Focus for Next Week 53 | - Secure reviews and approvals for the three blocked PRs: Sponsorship Policy, Dual Licensing, and the Mission Board. 54 | - Prepare for and conduct the advisory meeting with Harish Pillay. 55 | - Continue development on the new Town Hall event system for the website. -------------------------------------------------------------------------------- /dashboard/pages/community_engagement.py: -------------------------------------------------------------------------------- 1 | # community_engagement_streamlit.py 2 | 3 | import os 4 | import requests 5 | from collections import Counter 6 | import traceback 7 | import streamlit as st 8 | 9 | # Constants 10 | DISCORD_BOT_TOKEN = os.getenv("DISCORD_BOT_TOKEN") 11 | DISCORD_GUILD_ID = os.getenv("DISCORD_GUILD_ID") 12 | GETTING_INVOLVED_ROLE = "getting-involved" # Role name to analyze 13 | 14 | # Ensure required environment variables are set 15 | if not DISCORD_BOT_TOKEN or not DISCORD_GUILD_ID: 16 | st.error("DISCORD_BOT_TOKEN and DISCORD_GUILD_ID must be set as environment variables.") 17 | st.stop() 18 | 19 | HEADERS = {"Authorization": f"Bot {DISCORD_BOT_TOKEN}"} 20 | 21 | 22 | def fetch_guild_roles(guild_id): 23 | url = f"https://discord.com/api/v10/guilds/{guild_id}/roles" 24 | response = requests.get(url, headers=HEADERS) 25 | if response.status_code != 200: 26 | st.error(f"Error {response.status_code}: {response.text}") 27 | traceback.print_exc() 28 | return [] 29 | return response.json() 30 | 31 | 32 | def fetch_all_members(guild_id): 33 | members = [] 34 | after = None 35 | while True: 36 | params = {"limit": 1000} 37 | if after: 38 | params["after"] = after 39 | url = f"https://discord.com/api/v10/guilds/{guild_id}/members" 40 | response = requests.get(url, headers=HEADERS, params=params) 41 | if response.status_code != 200: 42 | st.error(f"Error {response.status_code}: {response.text}") 43 | traceback.print_exc() 44 | return [] 45 | batch = response.json() 46 | if not batch: 47 | break 48 | members.extend(batch) 49 | after = batch[-1]["user"]["id"] 50 | return members 51 | 52 | 53 | def find_role_id(roles, role_name): 54 | for role in roles: 55 | if role["name"] == role_name: 56 | return role["id"] 57 | return None 58 | 59 | 60 | def analyze_roles(members, role_id): 61 | total_members = len(members) 62 | role_counts = Counter() 63 | getting_involved_ids = [] 64 | 65 | for member in members: 66 | roles = member.get("roles", []) 67 | role_counts.update(roles) 68 | if role_id in roles: 69 | getting_involved_ids.append(member["user"]["id"]) 70 | 71 | getting_involved_count = len(getting_involved_ids) 72 | percent_involved = 100 * getting_involved_count / total_members if total_members > 0 else 0 73 | 74 | return role_counts, getting_involved_ids, getting_involved_count, percent_involved 75 | 76 | 77 | def top_roles_for_users(members, user_ids, exclude_role_id, top_n=5): 78 | involved_roles = Counter() 79 | for member in members: 80 | if member["user"]["id"] in user_ids: 81 | involved_roles.update(member.get("roles", [])) 82 | 83 | top_roles = involved_roles.most_common(top_n + 1) 84 | return [(r, c) for r, c in top_roles if r != exclude_role_id][:top_n] 85 | 86 | 87 | def calculate_likelihoods(members, role_counts, getting_involved_ids, exclude_role_id): 88 | likelihoods = {} 89 | for role, _ in role_counts.items(): 90 | with_role = [m["user"]["id"] for m in members if role in m.get("roles", [])] 91 | in_both = len(set(with_role) & set(getting_involved_ids)) 92 | likelihood = 100 * in_both / len(with_role) if with_role else 0 93 | if role != exclude_role_id and len(with_role) > 10: 94 | likelihoods[role] = likelihood 95 | 96 | return sorted(likelihoods.items(), key=lambda x: x[1], reverse=True)[:10] 97 | 98 | 99 | # Streamlit App 100 | st.title("Community Engagement Dashboard") 101 | 102 | roles = fetch_guild_roles(DISCORD_GUILD_ID) 103 | GETTING_INVOLVED_ROLE_ID = find_role_id(roles, GETTING_INVOLVED_ROLE) 104 | 105 | if not GETTING_INVOLVED_ROLE_ID: 106 | st.error(f"Role '{GETTING_INVOLVED_ROLE}' not found in the guild.") 107 | st.stop() 108 | 109 | members = fetch_all_members(DISCORD_GUILD_ID) 110 | 111 | role_counts, getting_involved_ids, getting_involved_count, percent_involved = analyze_roles( 112 | members, GETTING_INVOLVED_ROLE_ID 113 | ) 114 | 115 | st.subheader(f"Users in '{GETTING_INVOLVED_ROLE}'") 116 | st.write(f"Count: {getting_involved_count}") 117 | st.write(f"Percent of Total Users: {percent_involved:.2f}%") 118 | 119 | top_5_roles = top_roles_for_users(members, getting_involved_ids, GETTING_INVOLVED_ROLE_ID) 120 | st.subheader(f"Top 5 Roles for '{GETTING_INVOLVED_ROLE}' Users") 121 | for role, count in top_5_roles: 122 | st.write(f"{role}: {count} users") 123 | 124 | likelihoods = calculate_likelihoods(members, role_counts, getting_involved_ids, GETTING_INVOLVED_ROLE_ID) 125 | st.subheader(f"Likelihood of Being in '{GETTING_INVOLVED_ROLE}' by Role") 126 | for role, pct in likelihoods: 127 | st.write(f"{role}: {pct:.2f}% likely also in '{GETTING_INVOLVED_ROLE}'") 128 | -------------------------------------------------------------------------------- /docs/initiatives/in-progress/peer-review-program/submitter_guide.md: -------------------------------------------------------------------------------- 1 | # ONM Research Initiative — Submitter's Guide 2 | 3 | Welcome to the ONM Research Initiative! This guide outlines how to submit your work for review and inclusion in the ONM Community Peer Review Program. 4 | 5 | #### Submissions are accepted on a rolling basis 6 | 7 | --- 8 | 9 | ## What Can You Submit? 10 | 11 | We welcome open-source neuromorphic projects of all kinds, including but not limited to: 12 | 13 | - Research codebases (e.g., SNN models, simulators, benchmarks) 14 | - Datasets and dataset preparation pipelines 15 | - Educational tools, tutorials, and documentation 16 | - Hardware support libraries and FPGA/ASIC interfaces 17 | - Analysis tools, visualization, and measurement utilities 18 | 19 | Submissions may take the form of: 20 | - **Git repositories** containing software and documentation 21 | - **Jupyter notebooks** with code, figures, and narrative explanations 22 | - **IEEE-formatted papers** (PDF) 23 | - **Technical whitepapers** or overview documents (PDF or web-hosted) 24 | 25 | Your project must satisfy Open Neuromorphics [Definition of Open](../policies/open-definition.md) 26 | 27 | We especially encourage well-documented Jupyter notebooks that walk through core functionality, demonstrate reproducibility, or explain concepts interactively. Also, please try to submit source files of figures if possible. 28 | 29 | --- 30 | 31 | ## How to Submit 32 | 33 | ### Prerequisites 34 | 35 | **All authors must have existing OpenReview profiles** before submitting. If you don't have one: 36 | 1. Create an account at [OpenReview.net](https://openreview.net/) 37 | 2. Complete your profile with your name, email, and affiliations 38 | 3. Ensure your profile ID follows the format `~FirstName_LastName#` (e.g., `~Jane_Doe1`) 39 | 40 | ### Submission Process 41 | 42 | Submit your work through OpenReview using the official ONM Research submission form. 43 | 🔗 [OpenReview ONR Submission Portal](https://openreview.net/) 44 | 45 | You will be required to provide the following information: 46 | 47 | #### Submission Details 48 | 49 | 1. **Title** *(required)* 50 | - Max length: 250 characters 51 | - Supports TeX formulas (e.g., `$…$` for inline, `$$…$$` for display math) 52 | 53 | 2. **Abstract** *(required)* 54 | - Max length: 5000 characters 55 | - Clearly summarize your contribution, methods, and findings 56 | 57 | 3. **Authors** *(required)* 58 | - Comma-separated list (e.g., `Jane Doe, John Smith`) 59 | 60 | 4. **Author IDs** *(required)* 61 | - Comma-separated OpenReview profile IDs (e.g., `~Jane_Doe1`) 62 | 63 | 5. **PDF** *(required)* 64 | - Upload a `.pdf` file (max size: 50 MB) 65 | - Include title, authors, abstract, and references 66 | 67 | 6. **Submission Length** *(required)* 68 | - Choose: `Regular submission (≤8 pages)` or `Long submission (>8 pages)` 69 | 70 | 7. **Supplementary Material** *(optional)* 71 | - Upload `.zip` or `.pdf` (max size: 100 MB) 72 | - May include code, datasets, figures, or videos 73 | 74 | 8. **Previous Submission URL** *(optional)* 75 | - Provide the OpenReview URL if revising a prior submission 76 | 77 | 9. **Changes Since Last Submission** *(optional)* 78 | - Describe updates made since the previous submission 79 | 80 | 10. **Competing Interests** *(required)* 81 | - Disclose conflicts of interest or enter `N/A` 82 | 83 | 11. **Human Subjects Reporting** *(required)* 84 | - Provide details if applicable, or enter `N/A` 85 | 86 | ### After Submission 87 | 88 | Your submission will be reviewed by a panel of 3–5 ONM volunteer reviewers. You'll receive confirmation and an estimated timeline for decisions. 89 | 90 | **Note:** Submissions that do not meet the basic requirements (e.g., scope, clarity, or compliance with the [Definition of Open](../policies/open-definition.md)) may be desk rejected without further review. 91 | 92 | --- 93 | 94 | ## Review Criteria 95 | 96 | Projects are evaluated based on: 97 | - **Openness**: Is the project license-compatible and open to contributions? 98 | - **Impact & Utility**: Does the project address significant challenges in the field of Neuromorphic Computing? 99 | - **Clarity**: Is the project well-implemented, well-documented, and easy to navigate? 100 | - **Documentation**: Are setup and usage instructions complete and usable? 101 | - **Reproducibility**: Can reviewers run or verify the work easily? 102 | - **Technical Quality**: Is the work rigorous, correct, and useful to others? 103 | 104 | --- 105 | 106 | ## Outcomes 107 | 108 | We expect to provide decisions by a month after submission. 109 | 110 | After review: 111 | - If **approved**, your project will receive: 112 | - **For software projects:** An "ONM Community Approved" badge (for your README) 113 | - **For papers:** A listing in the ONM Research Registry 114 | - Potential to lead talks and workshops through ONM's website, Discord, and social media 115 | 116 | - If **not yet approved**, you'll receive actionable feedback and may revise and resubmit. 117 | 118 | --- 119 | 120 | ## Questions? 121 | 122 | Join us on the [ONM Discord](https://discord.gg/3dbSPeAZkk)! or email: [contact@open-neuromorphic.org](mailto:contact@open-neuromorphic.org) 123 | 124 | We look forward to seeing your work! 125 | 126 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open Neuromorphic Community Hub & Operations 2 | 3 | Welcome! This repository is the central hub for the Open Neuromorphic (ONM) community's governance, strategic initiatives, and operational planning. It serves as both a public portal for our documentation and an internal workspace for leadership and contributors. 4 | 5 | Our mission is to advance neuromorphic computing through open-source projects, inclusive participation, and shared knowledge. Whether you're here to learn about our structure or to contribute to an initiative, this is the place to start. 6 | 7 | --- 8 | 9 | ## Quick Navigation: Find What You Need 10 | 11 | Use these links to jump directly to our most important resources. 12 | 13 | | Resource | Description | 14 | |:------------------------------------------------------------------------------------------| :--- | 15 | | 🚀 **[Initiatives Directory](./docs/initiatives/)** | Explore the community-driven projects that power ONM's growth. | 16 | | 🌱 **[Path to Fellowship](./docs/initiatives/onm_fellowship_charter.md)** | Learn how you can become a recognized ONM Fellow. | 17 | | 📝 **[Propose an Initiative](./docs/initiatives/submit_initiative_instructions.md)** | Have an idea? Here’s how to propose and lead a new project. | 18 | | 📜 **[ONM's Principles for Open Resources](./docs/policies/open-definition.md)** | Read our definition of "open" that guides all our contributions. | 19 | | 🌐 **[Main Website](https://open-neuromorphic.org)** | Visit our official website for hardware/software guides, events, and more. | 20 | 21 | --- 22 | 23 | ## ⚙️ Operational Support for Volunteers & Contributors 24 | 25 | This section outlines the workflows for **Fellows, Initiative Leads, and active Volunteers** to request internal resources and support. 26 | 27 | > **Not a contributor yet?** 28 | > These services are for individuals actively collaborating on [ONM Initiatives](./docs/initiatives/) or fulfilling [Volunteer Roles](https://open-neuromorphic.org/volunteer-opportunities/). If you would like to get involved, please check those links first! 29 | 30 | | Request / Service | How to Initiate / Key Document | Primary Channel | 31 | | :--- | :--- | :--- | 32 | | **Organize an Event** | **[Open an "Organize an Event" issue](https://github.com/open-neuromorphic/communications/issues/new/choose)** using the checklist template. | `#event-coordination` | 33 | | **Request Social Media Promotion** | Request promotion for an ONM event or milestone. See: **[Social Media Playbook](./docs/initiatives/in-progress/social-media-engagement/social_media_playbook.md)**. | `#social-media-coordination` | 34 | | **Request Custom Graphics** | Tag our volunteer designer (`@Manavya`) with specific asset requirements for an ONM project. | `#social-media-coordination` | 35 | | **Update Community Calendar** | Ping our volunteer calendar maintainer (`@Liam`) with final event details. | `#event-coordination` | 36 | 37 | --- 38 | 39 | ## 💡 Proposing New Ideas (Open to All) 40 | 41 | If you are new to the community or have an idea for a project that isn't yet an official initiative, start here: 42 | 43 | | Action | Description | Primary Channel | 44 | | :--- | :--- | :--- | 45 | | **Propose a New Initiative** | Have an idea for a project? Use the **[New Initiative Template](./docs/initiatives/new_initiative_template.md)** and submit a **[Pull Request](./docs/initiatives/submit_initiative_instructions.md)**. | `#contribution-ideas` | 46 | | **General Suggestions** | For smaller ideas or general feedback, feel free to drop a note in our ideas channel. | `#contribution-ideas` | 47 | --- 48 | 49 | ## How This Repository Is Organized 50 | 51 | This repository contains both public-facing documentation and internal operational assets. 52 | 53 | - `./docs/`: The main portal for all community governance, fellowship information, initiative plans, and policies. **This is the best place to start exploring.** 54 | - `./dashboard/`: Contains the source code and setup instructions for our internal Streamlit dashboard, used to track community engagement metrics. 55 | - `./meeting_notes/`: An archive of notes and action items from our Executive Committee meetings. 56 | 57 | --- 58 | 59 | ## How to Contribute Here 60 | 61 | This repository is an active workspace. We welcome contributions from all community members, especially those looking to take on leadership roles or manage initiatives. 62 | 63 | ### Requesting Operational Support 64 | For routine tasks like event coordination or social media promotion, please refer to the "Community Operations" section above to engage with the correct team. 65 | 66 | ### Proposing a Strategic Initiative 67 | If you have an idea for a new community project or policy, please follow our guide: 68 | 1. Use the **[New Initiative Template](./docs/initiatives/new_initiative_template.md)** to structure your proposal. 69 | 2. Follow the **[Submission Instructions](./docs/initiatives/submit_initiative_instructions.md)** to submit it via a Pull Request for review by the Executive Committee. 70 | 71 | ### Tracking Tasks (Issues) 72 | We use GitHub Issues in this repository to track tasks related to ONM leadership and strategic initiatives. If you are a Fellow or initiative lead, please use issues to manage your action items. 73 | 74 | When creating a Pull Request, please use our **[PR Template](./.github/PULL_REQUEST_TEMPLATE.md)** to provide clear context for your changes. -------------------------------------------------------------------------------- /docs/initiatives/in-progress/peer-review-program/reviewer_guide.md: -------------------------------------------------------------------------------- 1 | # Open Neuromorphic Research Reviewer's Guide 2 | This document can be used as a reference for reviewers when considering submissions. 3 | 4 | ## 1. Workflow on OpenReview 5 | 6 | ### Profile Setup 7 | 1. **Update your OpenReview profile.** Ensure your name, email, affiliations, and research expertise fields are accurate. This aids matching your expertise to submissions. 8 | [oai_citation:2‡CVPR 2025](https://cvpr.thecvf.com/Conferences/2025/CompleteYourORProfile?utm_source=chatgpt.com) 9 | 10 | ### Reviewer Assignment 11 | 2. **Receive assignment notification.** You’ll see assigned papers in your OpenReview “Reviewer Console” or Task list. If you have a conflict or lack expertise, contact your Area Chair promptly. 12 | [oai_citation:3‡docs.openreview.net](https://docs.openreview.net/getting-started/frequently-asked-questions/will-reviewers-be-notified-of-their-assignments?utm_source=chatgpt.com) 13 | 14 | 3. **Check for assignments.** OpenReview allows both automatic and manual assignments; some may prompt accept/reject. 15 | [oai_citation:4‡docs.openreview.net](https://docs.openreview.net/how-to-guides/paper-matching-and-assignment/how-to-do-automatic-assignments?utm_source=chatgpt.com) 16 | 17 | ### Writing Your Review 18 | 4. **Submit your review.** Use the structured review form within OpenReview. You can include formatted text, mathematical notation, or equations. 19 | [oai_citation:5‡docs.openreview.net](https://docs.openreview.net/how-to-guides/submissions-comments-reviews-and-decisions?utm_source=chatgpt.com) 20 | 21 | 5. **Review Revisions.** If enabled, you may edit your review before the deadline using the “Review Revision” feature. 22 | [oai_citation:6‡docs.openreview.net](https://docs.openreview.net/how-to-guides/submissions-comments-reviews-and-decisions?utm_source=chatgpt.com) 23 | 24 | ## 2. Guidelines for Constructive Feedback 25 | 26 | When preparing your review, structure it thoughtfully: 27 | 28 | 1. **Start with a concise summary** of the submission’s goals and major contributions. 29 | 30 | 2. **Highlight strengths**—especially aspects like clarity, novelty, implementation, or open-science contributions. 31 | 32 | 3. **Detail major issues**—focus on elements impacting reproducibility, methodology soundness, or clarity. 33 | 34 | 4. **Offer actionable suggestions**—e.g., “Provide parameter settings used in simulations,” or “Deposit code in a version-controlled repository with DOI.” 35 | 36 | 5. **Maintain clarity and tone**—be specific, respectful, and constructive throughout. 37 | 38 | 6. **Wrap up with a clear recommendation**, such as Accept or Revision. 39 | 40 | 7. **Use confidential comments to ACs if needed**, for sensitive observations not appropriate for authors.\ 41 | 42 | ## 3. Review Criteria 43 | ### Core Principles: 44 | Reviewers should be guided by the principles outlined in [this document](https://pmc.ncbi.nlm.nih.gov/articles/PMC4304228) 45 | 46 | **Principle 1**: I will sign my name to my review 47 | 48 | **Principle 2**: I will review with integrity 49 | 50 | **Principle 3**: I will treat the review as a discourse with you; in particular, I will provide constructive criticism 51 | 52 | **Principle 4**: I will be an ambassador for the practice of open science 53 | 54 | 55 | ### Evaluation Rubric 56 | 57 | | **Category** | **Criteria** | **Reviewer Questions** | 58 | |--------------|-------------|---------------------| 59 | | **1. Relevance to Neuromorphic Computing** | Submission addresses a topic within the scope of neuromorphic hardware, software, methods, applications, or community building. | Does this fit within the ONR mission and topic areas? | 60 | | **2. Clarity and Presentation** | Submission is well-organized, readable, and logically structured. Includes proper formatting and clear objectives. | Is the purpose of the work understandable? Are visuals and code outputs helpful and well-explained? | 61 | | **3. Reproducibility** | Methods, code, and data (if applicable) are provided and clearly documented so others can replicate the work. | Could another researcher replicate the results using the materials provided? | 62 | | **4. Technical Rigor** | The approach is appropriate and technically sound. Assumptions, parameters, and methods are well-supported. | Does the submission reflect good scientific/engineering practices? | 63 | | **5. Contribution Type & Depth** | Clearly identifies whether this is a tool, method, experiment, or insight. Demonstrates non-trivial or novel contribution. | Is the contribution clearly articulated and meaningful in depth and originality? | 64 | | **6. Openness and Accessibility** | Submission is open-access and includes permissive licensing for reuse (e.g., MIT, Apache, CC-BY). Uses open tools/formats. | Are all code, data, and documents accessible and reusable? | 65 | | **7. Format Compliance** | Adheres to ONR submission guidelines (length, file types, structure, metadata, licensing, etc.) | Are filenames, licenses, and structure in line with guidance? | 66 | | **8. Community Value** | Has potential to be reused, extended, or learned from by others in the neuromorphic community. | Would this benefit students, researchers, or developers in ONM? | 67 | 68 | --- 69 | 70 | 71 | ### Reviewer Recommendation 72 | 73 | - [ ] **Accept** 74 | - [ ] **Reject with Recommended Modifications** 75 | 76 | --- 77 | 78 | ### Reviewer Comments 79 | 80 | Please provide brief, constructive feedback addressing: 81 | - Strengths of the submission 82 | - Suggestions for improvement 83 | - Specific concerns related to clarity, rigor, or reproducibility 84 | 85 | 86 | -------------------------------------------------------------------------------- /docs/ONM-Organisational-Charter.md: -------------------------------------------------------------------------------- 1 | # **Open Neuromorphic (ONM) Organisational Charter** 2 | 3 | ## Preamble 4 | 5 | Open Neuromorphic (ONM) is a global, open-source community fostering collaboration, knowledge sharing, and innovation in neuromorphic computing. Our mission is to build a thriving network of contributors by organizing talks, discussions, and hackathons that advance the state of the art. 6 | 7 | ## Purpose 8 | 9 | ONM exists to: 10 | 11 | * Promote learning and experimentation in neuromorphic computing. 12 | 13 | * Support collaborative open-source development. 14 | 15 | * Serve as a bridge between academia, industry, and independent contributors. 16 | 17 | * Facilitate grassroots involvement across technical and non-technical roles. 18 | 19 | ## Governance Structure 20 | 21 | ONM is led by a **Core Leadership Team** composed of three officers: 22 | 23 | * **Chair**: Leads ONM, represents it externally, coordinates activities, and sets the agenda for the General Meetings (GM). 24 | 25 | * **Vice-Chair**: Supports the Chair in strategic planning, steps in when the Chair is unavailable, and contributes to the community’s technical direction. 26 | 27 | * **Secretary**: Maintains records, documents meetings, manages internal communication, and facilitates elections and administrative processes. 28 | 29 | Each officer serves a **1-year term**, with new elections taking place at the conclusion of each term. Officers may be re-elected. 30 | 31 | ## Membership 32 | 33 | Membership in Open Neuromorphic (ONM) is open to all individuals who support its mission and values. 34 | 35 | #### **Membership Admission** 36 | 37 | Prospective members must be **nominated by an existing member** or may **self-nominate** by submitting a brief expression of interest. The Secretary coordinates an **informal vote via email** among active members where a **majority vote determines who is invited as members**. The Secretary is responsible for collecting nominations, facilitating the email vote, and presenting the list of prospective members at the GM. 38 | 39 | #### **Active Membership Requirements** 40 | 41 | To remain in good standing, members must: 42 | 43 | * Attend at least one GM within a 2-year period; or 44 | 45 | * Submit a written contribution to the Annual Report at least once every 2 years (e.g., project updates, event summaries, reflections, proposals). 46 | 47 | Members who fail to meet either requirement are placed on **probation**. If no activity is recorded within a **3-year period**, the member is considered **inactive** and removed from the membership roll. The Secretary notifies probationary members in their final year of inactivity. 48 | 49 | The Secretary maintains and publishes the official membership roll, including attendance and participation records. 50 | 51 | ## Decision-Making Process 52 | 53 | #### **Operational Decisions** 54 | 55 | Handled by the Chair, in consultation with the Vice-Chair and Secretary. 56 | 57 | #### **Strategic Decisions** 58 | 59 | Decisions involving structure, major partnerships, or long-term initiatives require **majority approval** of the Core Leadership Team. 60 | 61 | #### **General voting Rules** 62 | 63 | * **Meeting quorum**: 1/3 of active members present. 64 | 65 | * **Online ballots**: Valid with ≥50% participation. 66 | 67 | * **Approval threshold**: Simple majority of valid votes cast, unless otherwise specified. 68 | 69 | ## Elections and Terms 70 | 71 | Elections to the core leadership team occur **every year**, typically at a GM or via an online voting process. Members may nominate themselves or others. All active members are eligible to vote, and results are determined by simple majority. 72 | 73 | Each elected officer begins a new one-year term upon confirmation. There are no term limits, but re-election is required. 74 | 75 | If a majority of the Core Leadership Team believes that an officer is no longer actively participating in ONM, they may initiate a re-evaluation process. This entails calling for a new election for that officer’s role, which will be conducted using the standard nomination and voting procedures. 76 | 77 | ## General Meeting (GM) 78 | 79 | A GM is held at least once per year and includes: 80 | 81 | * Reports from the Chair and Secretary. 82 | 83 | * Community updates and planning. 84 | 85 | * Proposals for strategic decisions or charter amendments. 86 | 87 | * Elections for leadership roles (when terms expire). 88 | 89 | The meeting is open to all members and may be held virtually or in-person. Feedback is gathered in advance to ensure broad participation. 90 | 91 | ## Amendments to the Charter 92 | 93 | Any member may propose a charter amendment by notifying one of the three officers at least one month prior to a GM. 94 | 95 | #### **Approval** 96 | 97 | * **At GM**: Requires quorum and 2/3 majority vote. 98 | 99 | * **Online Ballot**: Requires ≥50% member participation and 2/3 majority to pass. 100 | 101 | Approved amendments take effect the day after ratification. 102 | 103 | ## Code of Conduct 104 | 105 | ONM maintains a Code of Conduct that outlines expectations for respectful participation: 106 | 107 | [ONM Code of Conduct](https://docs.google.com/document/d/1XpCMRlBMcle9hubcnvms8Gw8odeBVFnY5ElUC7TS6jw/edit?tab=t.0) 108 | 109 | ## Adoption of the Charter 110 | 111 | This charter was adopted on \[Insert Date\] to formalise the structure and guiding principles of Open Neuromorphic. It reflects our commitment to an open, dynamic, and inclusive community. 112 | 113 | **Signed:** 114 | 115 | Jens E. Pedersen (Chair) 116 | 117 | Justin Riddiough (Vice-Chair) 118 | 119 | Danny Rosen (Secretary) -------------------------------------------------------------------------------- /dashboard/pages/overall_health_growth.py: -------------------------------------------------------------------------------- 1 | # overall_health_growth.py 2 | 3 | import streamlit as st 4 | import pandas as pd 5 | from google.analytics.data_v1beta import BetaAnalyticsDataClient 6 | from google.analytics.data_v1beta.types import RunReportRequest 7 | from google.auth import default 8 | 9 | 10 | import requests 11 | import os 12 | from pathlib import Path 13 | from googleapiclient.discovery import build 14 | from googleapiclient.errors import HttpError 15 | 16 | # Optional: for formatting large numbers 17 | def format_number(n): 18 | return f"{n:,}" 19 | 20 | st.set_page_config(page_title="Overall Health & Growth", layout="wide") 21 | st.title("📊 Overall Health & Growth") 22 | 23 | # ---------------------------------------- 24 | # SECTION 1: Google Analytics - Website Users 25 | # ---------------------------------------- 26 | with st.expander("🌐 Website Users (GA4)", expanded=True): 27 | try: 28 | SCOPES = ['https://www.googleapis.com/auth/analytics.readonly'] 29 | KEY_PATH = Path("~", ".config/gcloud/application_default_credentials.json").expanduser() 30 | 31 | # credentials = service_account.Credentials.from_service_account_file( 32 | # KEY_PATH, scopes=SCOPES 33 | # ) 34 | credentials, project_id = default(scopes=["https://www.googleapis.com/auth/analytics.readonly"]) 35 | 36 | # Initialize the Google Analytics client 37 | client = BetaAnalyticsDataClient(credentials=credentials) 38 | 39 | # Replace with your Google Analytics property ID 40 | property_id = os.getenv("GA4_PROPERTY_ID") 41 | 42 | # Define the request for new users 43 | new_users_request = RunReportRequest( 44 | property=f"properties/{property_id}", 45 | dimensions=[], 46 | metrics=[{"name": "newUsers"}], 47 | date_ranges=[{"start_date": "30daysAgo", "end_date": "today"}], 48 | ) 49 | 50 | # Fetch the report for new users 51 | new_users_response = client.run_report(new_users_request) 52 | 53 | # Extract the new users from the response 54 | new_users = int(new_users_response.rows[0].metric_values[0].value) 55 | 56 | # Define the request for total users 57 | request = RunReportRequest( 58 | property=f"properties/{property_id}", 59 | dimensions=[], 60 | metrics=[{"name": "activeUsers"}], 61 | date_ranges=[{"start_date": "30daysAgo", "end_date": "today"}], 62 | ) 63 | 64 | # Fetch the report 65 | response = client.run_report(request) 66 | 67 | # Extract the total users from the response 68 | total_users = int(response.rows[0].metric_values[0].value) 69 | 70 | col1, col2 = st.columns(2) 71 | col1.metric("Total Website Users", format_number(total_users)) 72 | col2.metric("New Website Users", format_number(new_users)) 73 | except Exception as e: 74 | st.error(f"Error loading GA4 metrics: {e}") 75 | 76 | # ---------------------------------------- 77 | # SECTION 2: Discord - Member Count 78 | # ---------------------------------------- 79 | with st.expander("💬 Discord Members"): 80 | try: 81 | DISCORD_BOT_TOKEN = os.getenv("DISCORD_BOT_TOKEN") 82 | DISCORD_GUILD_ID = os.getenv("DISCORD_GUILD_ID") 83 | # Placeholder: Replace with Discord API logic or cached summary file 84 | headers = { 85 | "Authorization": f"Bot {DISCORD_BOT_TOKEN}" 86 | } 87 | url = f"https://discord.com/api/v10/guilds/{DISCORD_GUILD_ID}?with_counts=true" 88 | response = requests.get(url, headers=headers) 89 | response.raise_for_status() 90 | data = response.json() 91 | member_count = data["approximate_member_count"] 92 | 93 | st.metric("Total Discord Members", format_number(member_count)) 94 | discord_members = 1987 # Replace with API or txt extract 95 | 96 | st.metric("Total Discord Members", format_number(discord_members)) 97 | except Exception as e: 98 | st.error(f"Error loading Discord data: {e}") 99 | 100 | # ---------------------------------------- 101 | # SECTION 3: YouTube - Subscribers 102 | # ---------------------------------------- 103 | with st.expander("📺 YouTube Subscribers"): 104 | try: 105 | # Placeholder: Replace with YouTube Analytics API logic 106 | # Initialize the YouTube API client 107 | YOUTUBE_API_KEY = os.getenv("YOUTUBE_API_KEY") 108 | youtube = build("youtube", "v3", developerKey=YOUTUBE_API_KEY) 109 | 110 | # Fetch the channel statistics 111 | channel_id = os.getenv("YOUTUBE_CHANNEL_ID") 112 | response = youtube.channels().list( 113 | part="statistics", 114 | id=channel_id 115 | ).execute() 116 | 117 | # Extract the subscriber count 118 | yt_subscribers = int(response["items"][0]["statistics"]["subscriberCount"]) 119 | # yt_subscribers = 354 # Replace with API call result 120 | 121 | st.metric("YouTube Subscribers", format_number(yt_subscribers)) 122 | except Exception as e: 123 | st.error(f"Error loading YouTube data: {e}") 124 | 125 | # ---------------------------------------- 126 | # SECTION 4: LinkedIn - Followers 127 | # ---------------------------------------- 128 | with st.expander("💼 LinkedIn Followers"): 129 | try: 130 | # Placeholder: Replace with LinkedIn API or text file extract 131 | linkedin_followers = 642 132 | 133 | # TODO: Replace with API call result 134 | st.metric("LinkedIn Followers", format_number(linkedin_followers)) 135 | except Exception as e: 136 | st.error(f"Error loading LinkedIn data: {e}") 137 | 138 | # ---------------------------------------- 139 | # Notes 140 | # ---------------------------------------- 141 | st.caption("⚙️ Note: All values above are placeholders and should be replaced with real API calls or loaded data.") -------------------------------------------------------------------------------- /docs/initiatives/in-progress/events-coordinator/events_coordinator_playbook.md: -------------------------------------------------------------------------------- 1 | # Open Neuromorphic Event Coordinator Playbook 2 | 3 | ### **Welcome to the ONM Events Team!** 4 | 5 | Welcome aboard! As our Event Coordinator, you are the producer and conductor of Open Neuromorphic's live content. Your work is essential for transforming great ideas and research into engaging, accessible experiences for our global community. You are the vital link between our expert speakers, our leadership team, and our audience. 6 | 7 | This playbook is your guide to successfully planning, executing, and archiving our events. It provides the checklists, workflows, and best practices to ensure every session is a success. We encourage you to bring your organizational skills and ideas to help us refine and improve our processes. 8 | 9 | ### **Our Core Event Goals** 10 | 11 | 1. **Flawless Execution:** Ensure every event—from tech checks to live streams—runs smoothly and professionally. 12 | 2. **Excellent Speaker Experience:** Provide our valued speakers with clear communication, logistical support, and a welcoming platform, making them feel appreciated and eager to return. 13 | 3. **Maximize Community Engagement:** Drive attendance, facilitate interaction during live events, and create a welcoming atmosphere for all participants. 14 | 4. **Create Lasting Resources:** Transform live events into high-quality, archived content that serves as a permanent educational resource for the neuromorphic community. 15 | 16 | ### **Our Event Formats** 17 | 18 | You will be coordinating our primary event types, each with a unique goal: 19 | 20 | * **Workshops:** Deep dives and hands-on sessions led by experts on specific tools, hardware, or research topics. 21 | * **Student Talks:** A platform for students and early-career researchers to present their work, gain experience, and receive community feedback. 22 | * **Hacking Hours:** Live, interactive coding sessions, often with guest developers, focused on exploring software and solving technical challenges. 23 | * **Community Town Halls:** Our regular, informal gatherings for community updates, open discussions, and initiative planning. 24 | 25 | --- 26 | 27 | ### **The Event Coordination Workflow: Your Master Checklist** 28 | 29 | This is your step-by-step guide for managing an event from conception to archive. 30 | 31 | #### **Phase 1: Pre-Event Planning & Onboarding (4-6 Weeks Out)** 32 | 33 | * [ ] **Initial Contact & Scheduling:** 34 | * Work with the speaker and the Executive Committee to schedule a date and time that maximizes audience reach across different time zones. 35 | * We recommend use of a tool such as [Timeful](https://timeful.app/) for coordinating time availability 36 | * [ ] **Formalize Participation:** 37 | * Send the speaker the **[Event Participant Agreement](https://github.com/open-neuromorphic/communications/blob/main/docs/policies/event_participant_agreement.md)** form. This is a crucial step for clarifying content licensing and sponsorship opt-in. 38 | * Confirm receipt and answer any questions they may have about the policy. 39 | * [ ] **Create the Website Event Page:** 40 | * Use the appropriate Hugo archetype to create a new event page on the [ONM website repository](https://github.com/open-neuromorphic/open-neuromorphic.github.io). (Reference: `CONTRIBUTING.md`). 41 | * Collect all necessary information from the speaker: 42 | * Final Title & Abstract/Description 43 | * Speaker Bio & Photo (create a new contributor profile if one doesn't exist, as per Issue #341). 44 | * Links to slides, code repositories, or papers. 45 | * A high-quality banner image (1200x630px). 46 | * [ ] **Update the ONM Calendar:** 47 | * Add the event to the shared Google Calendar (see Issue #77) with all relevant details and links. This will eventually power the website's "Add to Calendar" feature (Issue #331). 48 | 49 | #### **Phase 2: Pre-Event Logistics & Promotion (1-2 Weeks Out)** 50 | 51 | * [ ] **Set Up the Broadcast:** 52 | * Create the event in **StreamYard**. 53 | * Configure the destinations (YouTube, LinkedIn) to automatically schedule the upcoming stream placeholders. 54 | * [ ] **Coordinate Initial Promotion:** 55 | * Notify the **Social Media Coordinator** that the event page is live. 56 | * Work with them to schedule the **"1 Week Before"** announcement post across all platforms. 57 | * [ ] **Schedule a Tech Check:** 58 | * Arrange a brief (15-minute) tech check with the speaker to ensure they are comfortable with StreamYard, test their camera/mic, and walk through the screen-sharing process. 59 | 60 | #### **Phase 3: Final Countdown (Week of Event)** 61 | 62 | * [ ] **Send Speaker Reminders:** 63 | * A few days before the event, send a reminder email to the speaker with the final schedule, the StreamYard guest link, and contact info for day-of support. 64 | * [ ] **Coordinate Final Promotion:** 65 | * Work with the Social Media Coordinator to execute the **"24 Hours Before"** and **"1 Hour Before"** reminder posts. 66 | * [ ] **Prepare the Discord Announcement:** 67 | * Schedule an `@everyone` announcement in the Discord server's `#announcements` channel to go live shortly before the event starts. 68 | 69 | #### **Phase 4: During the Event (Showtime!)** 70 | 71 | * [ ] **Act as Backstage Manager:** 72 | * Join the StreamYard studio 15-20 minutes early to greet the speaker and host. 73 | * Ensure all presenters are in the "green room" and ready to go. 74 | * Manage scene transitions, on-screen comments, and banners. 75 | * [ ] **Monitor Stream Health:** 76 | * Keep an eye on the stream quality and audience comments across platforms for any technical issues. 77 | * Be the primary point of contact for troubleshooting. 78 | 79 | #### **Phase 5: Post-Event Wrap-Up (Within 24 Hours)** 80 | 81 | * [ ] **Thank the Speaker:** 82 | * Send a thank-you email to the speaker, including a link to the final recording. 83 | * [ ] **Archive the Content:** 84 | * **YouTube:** Ensure the final video is titled correctly, has a full description (with links to resources), and is added to the correct playlist (e.g., "Workshops," "Student Talks"). 85 | * **Website:** Update the event page by adding the YouTube video ID and links to any final slides or code shared by the speaker. 86 | * [ ] **Coordinate Final Promotion:** 87 | * Notify the Social Media Coordinator that the recording is available and trigger the **"Recording is Live"** post. 88 | 89 | --- 90 | 91 | ### **Tools of the Trade** 92 | 93 | * **StreamYard:** Our primary platform for live streaming and recording events. 94 | * **Google Calendar:** For our shared, public-facing events calendar. 95 | * **Discord:** For all internal communication and community announcements. 96 | * **Timeful App:** https://timeful.app/ For coordinating time availability 97 | * **GitHub:** For creating and updating event pages on the website. 98 | * **YouTube:** For hosting all event recordings. 99 | 100 | ### **Your First 30 Days: A Suggested Plan** 101 | 102 | * **Week 1: Get Your Bearings.** 103 | * Get access to StreamYard and the ONM Google Calendar. 104 | * Read this playbook, the Social Media Playbook, and our Sponsorship Policy to understand the full workflow. 105 | * Shadow the setup and coordination of the weekly Town Hall. 106 | 107 | * **Week 2: Co-Coordinate Your First Event.** 108 | * Work alongside a committee member to co-coordinate an upcoming Student Talk or Hacking Hour. 109 | * Take the lead on the post-event checklist (updating the website and YouTube). 110 | 111 | * **Week 3: Run Your First Full Event Cycle.** 112 | * Take the lead on coordinating a new workshop from start to finish. You'll handle speaker communication, create the website page, and manage the full checklist. 113 | 114 | * **Week 4: Refine the Process.** 115 | * Now that you've run a full cycle, what could be improved? Propose updates to this playbook or suggest new tools to make our events even better. 116 | 117 | Welcome again! We're here to support you every step of the way. Your work is critical to our mission, and we're excited to see the amazing events you'll help bring to life. -------------------------------------------------------------------------------- /docs/initiatives/in-progress/social-media-engagement/social_media_playbook.md: -------------------------------------------------------------------------------- 1 | # Open Neuromorphic Social Media Playbook 2 | 3 | ### **Welcome to the ONM Social Media Team!** 4 | 5 | Hi there, and welcome! We're thrilled to have you on board. This role is absolutely vital to our community. You are the voice of Open Neuromorphic, connecting our work with the wider world, celebrating our contributors, and inviting new people to join our mission. 6 | 7 | This guide is your playbook. It outlines our core strategy, key tasks, and best practices. Think of it as a starting point—we encourage you to bring your own creativity and ideas to the table! 8 | 9 | ### **Our Core Social Media Goals** 10 | 11 | 1. **Grow the Community:** Attract new members to our Discord and followers to our platforms. 12 | 2. **Drive Engagement:** Spark conversations, encourage participation in events, and increase interaction with our content. 13 | 3. **Boost Visibility & Authority:** Establish ONM as the central, go-to hub for open-source neuromorphic computing. 14 | 4. **Promote and Amplify:** Showcase the incredible work of our community members, speakers, and collaboration network partners. 15 | 16 | --- 17 | 18 | ### **Content Pillars: What We Talk About** 19 | 20 | Your posts will generally fall into one of these four categories. A good mix keeps our feed interesting and valuable. 21 | 22 | 1. **Event Promotion:** Announcing and reminding our audience about upcoming Workshops, Student Talks, Hacking Hours, and our weekly Town Hall. 23 | 2. **Content & Resource Sharing:** Sharing new blog posts, updates to our Hardware & Software guides, and highlighting opportunities on the new **Mission Board**. 24 | 3. **Community Engagement & Recognition:** Giving shout-outs to top Discord contributors, welcoming new volunteers, and celebrating project milestones. 25 | 4. **Initiative Spotlights:** Highlighting major community efforts like the **Open Neuromorphic Research (ONR)** program to attract participants and reviewers. 26 | 27 | --- 28 | 29 | ### **The Social Media Playbook: Your Task List** 30 | 31 | This is your core to-do list, broken down by type and frequency. 32 | 33 | #### **A. The Event Promotion Workflow (Pre, During, and Post-Event)** 34 | 35 | This is our most important sequence. Consistency here is key to driving attendance and impact. 36 | 37 | **1. Pre-Event (For scheduled Workshops, Student Talks, etc.)** 38 | * **[1 Week Before] Announcement Post:** 39 | * **Action:** Create a post announcing the event. 40 | * **Content:** Include the title, speaker(s), date, time (with multiple time zones, e.g., CEST/EST), and a short, exciting description of what people will learn. 41 | * **Crucial Link:** Always link to the event page on the **ONM website** (e.g., `open-neuromorphic.org/workshops/event-name/`). This page has all the details and the direct link to the stream. 42 | * **Visuals:** Use the auto-generated "portrait" social media cards from the website's share panel. They look great on LinkedIn and Twitter/X. 43 | * **Tags:** Tag the speaker(s) and their institutions. Use hashtags like `#neuromorphic`, `#SNN`, `#opensource`, `#AI`. 44 | 45 | * **[24 Hours Before] Reminder Post:** 46 | * **Action:** Post a reminder for the event tomorrow. 47 | * **Content:** Use a slightly different text, e.g., "Don't miss our workshop tomorrow with @Speaker!" Reiterate the key takeaway. 48 | * **Visuals & Link:** Use the same visual and link to the website page. 49 | 50 | * **[1 Hour Before] "Going Live Soon" Post:** 51 | * **Action:** Final reminder post. 52 | * **Content:** "We're going live in one hour! Join the conversation here:" 53 | * **Link:** Link directly to the YouTube stream or the website page. 54 | 55 | **2. Post-Event** 56 | * **[Within 24 Hours] "Recording is Live" Post:** 57 | * **Action:** Share the link to the recorded video on YouTube. 58 | * **Content:** Thank the speaker and everyone who attended. Include a key quote or a fascinating insight from the talk. 59 | * **Tags:** Tag the speaker(s) again. 60 | 61 | * **[Ongoing] Create Short-Form Content (Video Shorts/Clips):** 62 | * **Action:** Use StreamYard's built-in tool to create 30-60 second vertical video clips of the most interesting moments from a talk. 63 | * **Content:** Focus on a single, powerful idea, a "wow" moment, or a great explanation. Add captions. This is a fantastic way to repurpose content and reach a new audience. 64 | * **Idea Source:** Refer to the "First Impressions" Video Shorts concept from **Issue #84** for inspiration on making these engaging and "hypey." 65 | 66 | #### **B. Weekly Recurring Tasks** 67 | 68 | * **[15 Minutes Before] Monday Morning: Promote the Town Hall:** 69 | * **Action:** Post a reminder for the weekly Community Town Hall. 70 | * **Content:** "It's Monday! That means it's time for the ONM Town Hall. Join us at 14:00 CEST / 8:00 ET to catch up on the latest initiatives and share your ideas." 71 | * **Link:** Include the YouTube event link (youtube and linkedin events created within StreamYard). 72 | 73 | * **End of Week: Community Contributor Shout-Out:** 74 | * **Action:** Coordinate with the leadership team to get a summary of interesting Discord discussions (based on **Issue #28**). 75 | * **Content:** Create a post giving a shout-out to the top 2-3 contributors of the week and briefly mention the topics they discussed. This is a powerful way to recognize and encourage engagement. 76 | * **Example:** *"Big thanks to @user1 for their deep dive on asynchronous systems and to @user2 for helping newcomers get started with SNNs! Join the conversation on our Discord."* 77 | 78 | #### **C. As-Needed Tasks** 79 | 80 | * **New Blog Post Published:** Create a post to announce it, using the title, description, and social media image from the website. 81 | * **New Initiative Launch (e.g., ONR Call for Submissions):** Work with the initiative lead (e.g., Danny) to craft a series of posts announcing the launch, calling for participants/reviewers, and sharing updates. 82 | * **New Collaboration Network Member:** Welcome new supporter projects and link to their software/website. 83 | * **Mission Board Spotlight:** Periodically highlight an interesting "help wanted" issue from the Mission Board to encourage contributions. 84 | 85 | --- 86 | 87 | ### **Tools & Resources** 88 | 89 | * **Visuals:** The website is your best friend! Every event and blog page has a "Share" button that provides pre-made, high-quality images perfect for social media. 90 | * **Content Source:** The website (`open-neuromorphic.org`), the `communications` GitHub repo, and the Discord server are your primary sources for news and content. 91 | 92 | ### **Our Tone of Voice** 93 | 94 | * **Authoritative yet Accessible:** We are experts, but we are welcoming to newcomers. Avoid overly dense jargon where possible. 95 | * **Supportive and Collaborative:** We celebrate the community. Our language should be inclusive, positive, and encouraging. 96 | * **Forward-Looking and a Little Bit Hype:** We're excited about the future of neuromorphic computing, and it's okay to show it! 97 | 98 | ### **Your First 30 Days: A Suggested Plan** 99 | 100 | * **Week 1: Get Your Bearings.** 101 | * Get access to all social media accounts. 102 | * Review our past posts on LinkedIn and Twitter/X to get a feel for our style. 103 | * Introduce yourself in the `#general` Discord channel! 104 | * Shadow the promotion of this week's Town Hall. 105 | 106 | * **Week 2: Take the Reins on Recurring Tasks.** 107 | * Take the lead on promoting the weekly Town Hall. 108 | * Work with us to create your first "Community Contributor Shout-Out" post. 109 | 110 | * **Week 3: Run Your First Full Event Cycle.** 111 | * Manage the pre- and post-event promotion for an upcoming Student Talk or Workshop. This will be your first full test run of the event playbook. 112 | 113 | * **Week 4: Start Proposing Ideas!** 114 | * Now that you're comfortable, what do you think we could do better? Maybe we can start the **arXiv paper "First Impressions" shorts**? Let's chat about it! 115 | 116 | Welcome again! We're here to support you. Don't hesitate to ask questions. Let's build something great together. -------------------------------------------------------------------------------- /docs/initiatives/in-progress/website_revitalization.md: -------------------------------------------------------------------------------- 1 | # 😎 Initiative Plan: Website Revitalization and Open Contributor Journey Implementation 2 | 3 | **Accountable Fellow:** @Justin Riddiough 4 | 5 | **Approver:** @Jens E. Pedersen (Chair), @Justin Riddiough (Vice-Chair), @Danny Rosen 6 | **Status:** IN PROGRESS 7 | 8 | **Due Date:** Phased, initial Phase 1 relaunch targeted for August 2025. 9 | 10 | **Contributors:** @Justin Riddiough, @Danny Rosen, (Potentially) Website Feedback Working Group, Content Ideation & Creation Working Group, Documentation Revamp Working Group, interested community members. 11 | **Informed:** ONM Leadership Team, ONM Community 12 | 13 | --- 14 | 15 | ## 🎯 Objective 16 | 17 | To transform the Open Neuromorphic website (open-neuromorphic.org) into a dynamic, central hub that embodies the "Open Contributor Journey." This initiative aims to significantly grow ONM's community, impact, and visibility by revitalizing its digital presence, making it easier for users to discover resources, learn, and contribute, thereby establishing ONM as a leading global hub for neuromorphic science, learning, and innovation, reflecting our connectivist and open source ethos. 18 | 19 | --- 20 | 21 | ## 🧠 Problem Statement 22 | 23 | The current ONM website, while informative, is largely static and does not optimally guide users from initial discovery to deep engagement and contribution. There's a highly engaged segment of the community (e.g., 756 Discord members tagged for "getting-involved") whose enthusiasm could be better channeled with clearer pathways and more dynamic content. The current structure also doesn't fully leverage SEO potential or strategically funnel users towards active participation. 24 | 25 | _“We believe **revitalizing the website into a dynamic hub with clear "inclusion funnels," expanded content sections (like `/learn/`, `/initiatives/`, `/contribute/`, `/community/`), and targeted SEO-driven content** will result in **increased community engagement, a higher rate of new contributor onboarding, and solidify ONM's position as the primary authoritative resource for neuromorphic computing.** We’ll know we’ve succeeded if **we observe significant growth in website traffic to these key sections, achieve top search rankings for "neuromorphic computing," see increased engagement with our YouTube tutorials and hardware/software guides, witness a rise in active contributors on GitHub and Discord, and measure positive feedback on contributor satisfaction and ease of involvement.**”_ 26 | 27 | --- 28 | 29 | ## 🧾 Key Outcomes 30 | 31 | - Redesigned Dynamic Landing Page: Serves as an engaging "front door" with highlights and clear "inclusion funnels" (CTAs: "Start Learning," "Contribute," "Join Discussion"). 32 | - Expanded `/neuromorphic-computing/` Hub: Creation of new, well-defined sub-sections: `/initiatives/`, `/learn/` (for Journeys, primers, tutorials), `/contribute/` (guidelines, issues), and `/community/` (Discord, events, charter). 33 | - Strategic "Inclusion Funnels" Site-Wide: Clear, actionable next steps integrated into content to guide users from discovery to deeper engagement and contribution. 34 | - Activated Community Involvement: Leveraging community enthusiasm through feedback channels (e.g., Discord discussions, surveys) and potentially through dedicated Working Groups for documentation, content, and website user testing. 35 | - Improved Content Discoverability: Enhanced SEO for key terms like "neuromorphic computing," specific hardware (TrueNorth, Loihi 2), and SNN frameworks, leading to higher search rankings and increased organic traffic. 36 | - Clearer Contribution Pathways: Interactive guides and "Contributor Journeys" that lower barriers to entry and illustrate diverse ways to get involved with ONM. 37 | - Enhanced User Experience: More intuitive navigation and website structure, modeled after a "University Website" concept where appropriate, making resources easier to find. 38 | 39 | --- 40 | 41 | ## 🗺️ Scope 42 | 43 | | Category | Description | 44 | |------------------|---------------------------------------------| 45 | | Must Have | - Redesign landing page with dynamic content highlights & CTAs.
- Implement the core structure of the expanded `/neuromorphic-computing/` hub (/hardware, /software, /learn, /initiatives, /contribute, /community).
- Initial implementation of "inclusion funnels" on key pages (e.g., popular blog posts, hardware pages).
- Migrate existing high-value content (e.g., TrueNorth blog, hardware/software guides) into the new structure.
- Establish channels for community feedback on website changes (e.g., Discord, surveys) and initiate calls for volunteer participation in key areas (documentation, content, user testing).
- Create basic "How to Contribute to the Website" documentation.
- Initial SEO optimization for top 2-3 target keywords/pages.
- Add the "ONM Initiatives" page.
- Add content for "Hacking Hours". | 46 | | Nice to Have | - Fully developed, interactive "Contributor Journeys" (video/blog series).
- Comprehensive implementation of the "University Website" model across all relevant sections.
- Lightweight mentorship program integration into contribution pathways.
- Advanced, automated KPI tracking dashboard for website performance and community engagement.
- Full migration and re-categorization of all existing blog/workshop content.
- Overhaul of website visual identity/branding. | 47 | | Not in Scope | - Development of new, standalone software tools or platforms (focus is on the website as a hub).
- Building a custom CMS; continue leveraging Hugo.
- Large-scale paid advertising campaigns for the website. | 48 | 49 | --- 50 | 51 | ## 🗓️ Timeline 52 | 53 | | Milestone | Owner | Deadline | Status | 54 | |----------------------------------------------------|--------------------------------------------------------------|--------------|-------------| 55 | | Initial Refactor & Staging Current Content | @Justin Riddiough | 2025-06-15 | ⏳ IN PROGRESS | 56 | | Add "ONM Initiatives" Page Structure & Content | @Justin Riddiough | 2025-06-07 | ⏳ IN PROGRESS | 57 | | Add "Hacking Hours" Section & Content | @Justin Riddiough | 2025-06-15 | ⏳ IN PROGRESS | 58 | | Draft New Landing Page Mockup/Prototype | @Justin Riddiough | 2025-06-20 | ⏳ IN PROGRESS | 59 | | Community Communication & Call for Feedback/Volunteers | ONM Leadership Team | 2025-06-20 | 📝 TODO | 60 | | Gather Initial Community Feedback on Mockups/Plans | @Justin Riddiough / Relevant WG/Volunteers | 2025-07-05 | 📝 TODO | 61 | | Develop Detailed Content & Migration Plan | Relevant WG/Volunteers, @Justin Riddiough | 2025-07-15 | 📝 TODO | 62 | | Implement New Landing Page & Core Hub Structure | @Justin Riddiough | 2025-07-31 | 📝 TODO | 63 | | Phase 1 Content Migration & Funnel Integration | Relevant WG/Volunteers & @Justin Riddiough | 2025-08-15 | 📝 TODO | 64 | | User Testing & Feedback Incorporation | Relevant WG/Volunteers / @Justin Riddiough | 2025-08-25 | 📝 TODO | 65 | | **Official Relaunch (Phase 1)** | **ONM Leadership Team** | **2025-08-31** | 📝 TODO | 66 | | Phase 2 (Further Content, Advanced Features) | Relevant WG/Volunteers & @Justin Riddiough | 2026-Q1/Q2 | 📝 TODO | 67 | 68 | --- 69 | 70 | ## 🗒️ Updates Log 71 | 72 | | Date | Update Summary | Author | 73 | |------------|---------------------------------------------------------------------------------------------------------------|--------------------| 74 | | 2025-05-29 | Began staging refactor of current site. Adding "ONM Initiatives" page. Began adding "Hacking Hours" content. Started mockup for new landing page. Updated timeline. | @Justin Riddiough | 75 | 76 | --- 77 | 78 | ## 🔗 Reference Materials 79 | -------------------------------------------------------------------------------- /docs/policies/sponsorship_policy.md: -------------------------------------------------------------------------------- 1 | # Open Neuromorphic (ONM) Sponsorship Policy v1.0 2 | 3 | ## 1. Preamble & Sponsorship Philosophy 4 | 5 | Open Neuromorphic (ONM) is a community-first organization dedicated to fostering a globally inclusive, open, and sustainable ecosystem for neuromorphic computing. We welcome partnerships with organizations, academic institutions, and companies that share our commitment to this mission. 6 | 7 | Sponsorship is a vital component of our sustainability, enabling us to maintain our digital infrastructure, support community initiatives, and create high-quality educational content. This policy outlines the principles and procedures that govern our relationships with all sponsors to ensure our partnerships are transparent, mutually beneficial, and always aligned with our core community values. 8 | 9 | **Licensing Note:** 10 | This policy and associated ONM website content are released under a Creative Commons Attribution-ShareAlike (CC BY-SA) license. The ShareAlike clause ensures that any derivatives or adaptations remain equally open and freely available, reinforcing our commitment to openness and community benefit. We strongly discourage the application of more restrictive licenses (such as NonCommercial or NoDerivatives clauses) to remixed or derivative works, as this can create a “remixing dead end” and limit the ongoing collaborative evolution of these resources. Our intent is for ONM resources to remain living works—always available for adaptation, reuse, and further remixing by the community. 11 | 12 | ## 2. Guiding Principles 13 | 14 | All sponsorship activities and agreements shall be governed by the following core principles: 15 | 16 | - **2.1. Community First:** The interests, integrity, and neutrality of the Open Neuromorphic community are paramount. No sponsorship agreement shall compromise the community's trust or the organization's ability to act in the community's best interest. 17 | - **2.2. Editorial Independence:** ONM retains full and independent control over all content, event programming, and strategic direction. Sponsors shall have no editorial influence, approval rights, or veto power over our content or activities. 18 | - **2.3. Transparency:** All sponsorship relationships will be publicly disclosed on our Supporters page. The terms of recognition for each sponsorship level are defined in this policy and will be applied consistently. 19 | - **2.4. Value Alignment:** We will seek partnerships with organizations whose values and goals are aligned with the principles of open science, collaboration, and ethical technology development. 20 | 21 | > **Interpretation of Community Interest:** 22 | > The “community’s interest” is interpreted and upheld by the ONM Executive Committee, in alignment with the organization’s charter and in consultation with stakeholders and community members. Decisions impacting the community are made transparently, in accordance with documented standards and policies, and with opportunities for community feedback and discussion. 23 | 24 | ## 3. Sponsorship Tiers & Recognition 25 | 26 | **Clarification of General vs. Program Sponsorship:** 27 | Supporter tiers (Foundational, Gold, Platinum) recognize organizations or individuals who contribute to ONM’s general fund, which supports the overall mission and ongoing operations. 28 | 29 | > Program sponsorships are separate and allow organizations to support specific ONM initiatives or events (e.g., “Hacking Hours”), with recognition tied to that program. 30 | > It is possible for a sponsor to be both a general supporter (e.g., Gold Supporter) and a program sponsor. In such cases, their contributions and recognition will be acknowledged in both relevant sections. 31 | 32 | ONM offers several tiers of support. All financial contributions are considered donations to support the general mission and operations of ONM, with recognition provided as follows: 33 | 34 | #### 3.1. Foundational Supporters (In-Kind) 35 | - **Contribution:** Non-monetary support through active community partnership, such as adding the ONM Collaboration Network badge to an open-source project's primary repository or website. 36 | - **Recognition:** 37 | - Logo and link on the "Foundational Supporters" section of the ONM Supporters page. 38 | - Public acknowledgment as a member of the Collaboration Network. 39 | 40 | #### 3.2. Gold Supporters (Financial) 41 | - **Contribution:** Annual financial donation within the defined Gold tier range (e.g., $1,000 - $4,999 USD). 42 | - **Recognition:** 43 | - Logo and link on the "Gold Supporters" section of the ONM Supporters page. 44 | - Mention in ONM's annual community report. 45 | 46 | #### 3.3. Platinum Supporters (Financial) 47 | - **Contribution:** Annual financial donation within the defined Platinum tier range (e.g., $5,000+ USD). 48 | - **Recognition:** 49 | - Prominent logo placement and link on the "Platinum Supporters" section of the ONM Supporters page. 50 | - Prominent mention in ONM's annual community report. 51 | - One-time acknowledgment in a social media post announcing the partnership, issued annually or at a regular interval (such as every six months) for continuing Platinum Supporters. 52 | 53 | > As ONM’s sponsorship programs evolve, the specific forms of recognition and acknowledgment—including social media mentions—may be updated based on ongoing feedback and engagement with sponsors. Any such changes will be communicated transparently and reflected in this policy. 54 | 55 | ## 4. Specific Program Sponsorships 56 | 57 | Organizations may choose to sponsor specific, ongoing community programs (e.g., "Hacking Hours"). These sponsorships are distinct from the general tiers and subject to the following conditions: 58 | 59 | - **Sponsors may hold both a general supporter tier and a program sponsorship simultaneously.** For example, a Gold Supporter may also sponsor a specific ONM program, receiving recognition for both contributions as outlined in this policy. 60 | - **4.1. Branding:** Recognition will be in the format of "Program Name, brought to you by [Sponsor Name]." Branding will be limited to the program's landing page and a brief, standardized mention at the beginning of program events. 61 | - **4.2. Community Consent (The Opt-In Mandate):** All guest speakers, hosts, or other invited contributors in a sponsored program must be informed of the sponsorship in advance and have the right to participate on a strictly **opt-in** basis. Should any invited guest (e.g., a speaker or workshop host) express discomfort or decline to participate due to the presence of a sponsor, **ONM's standard procedure will be to omit all sponsor branding from that specific event.** This action ensures the guest can participate without conflict, reaffirming that our commitment to community members is our highest priority. **No participant will ever be required to provide a reason or justification for their decision.** 62 | - **Attendees:** While all attendees will be informed of program sponsorship in event materials and announcements, we do not require explicit opt-in from general attendees. However, feedback from attendees will always be welcomed and can be used to guide future sponsorship practices. 63 | 64 | ## 5. Sponsorship Approval Process 65 | 66 | To ensure transparency and collective oversight, all sponsorship agreements must follow this procedure: 67 | 68 | - **5.1. Inquiry:** All sponsorship inquiries shall be directed to the official ONM contact channel (`contact@open-neuromorphic.org`). 69 | - **5.2. Review:** The Executive Committee will review the potential sponsor for alignment with ONM's values (Principle 2.4). 70 | - **5.3. Formal Agreement:** A standard Memorandum of Understanding (MOU) or Sponsorship Agreement will be drafted, explicitly referencing this policy and detailing the contribution and the defined recognition benefits. No verbal promises or ad-hoc benefits will be considered binding. 71 | - **5.4. Final Approval & Execution:** The final agreement **requires the documented approval and signature of at least two (2) members of the Executive Committee** (e.g., Chair and Vice-Chair) to be considered valid. 72 | 73 | ## 6. Code of Conduct for Sponsors 74 | 75 | All sponsors are expected to respect the ONM Code of Conduct and interact with the community in a constructive and respectful manner. ONM reserves the right to terminate a sponsorship agreement at any time if a sponsor's actions are found to be in violation of our community principles. 76 | 77 | ## 7. What ONM Sponsorship Is Not 78 | 79 | ONM sponsorship does **not** entail: 80 | 81 | - An obligation for ONM to actively promote, endorse, or market the sponsor’s products, services, or organization beyond the recognition explicitly described in this policy. 82 | - Editorial influence or control by sponsors over ONM’s activities, events, or content. 83 | - Any ongoing guarantee of recognition beyond the scope and duration of the agreed sponsorship tier or program. 84 | - Automatic renewal of sponsorship status or recognition; each sponsorship must be agreed upon and approved according to the procedures in this policy. 85 | 86 | Sponsorships are intended to support ONM’s mission and community, not to serve as marketing or advertising platforms for sponsors. 87 | 88 | ## 8. Policy Review 89 | 90 | This policy shall be reviewed annually by the Executive Committee to ensure it continues to serve the best interests of the Open Neuromorphic community. 91 | 92 | **Note:** 93 | The sponsorship program and recognition practices are subject to periodic review and adjustment as ONM continues to develop its approach in consultation with the community and sponsors. -------------------------------------------------------------------------------- /docs/initiatives/in-progress/hardware-and-software-curator/hardware_and_software_curator_playbook.md: -------------------------------------------------------------------------------- 1 | ### **Open Neuromorphic Hardware & Software Guide Curator Playbook** 2 | 3 | #### **Welcome to a Cornerstone Role!** 4 | 5 | Hi there, and welcome! We're thrilled to have you in one of the most vital roles in our community. You are the authoritative voice and a key shaper of knowledge in the neuromorphic ecosystem. The **Open Neuromorphic Hardware and Software Guides** are the cornerstone of our platform and our primary engine for community growth, serving as the first point of contact for thousands of researchers, students, and developers entering the field. 6 | 7 | This guide is your playbook. It outlines our core strategy, key tasks, and best practices. This is a strategic position with a direct impact on the entire community, and we're excited to have your expertise to help us build the most trusted and comprehensive hub for neuromorphic technology. 8 | 9 | #### **Our Core Curation Goals** 10 | 11 | 1. **Maintain & Grow Authority:** Ensure our guides are accurate, comprehensive, and up-to-date. Your expertise will solidify ONM's reputation as the go-to resource, which is critical for our visibility and growth. 12 | 2. **Drive Community Growth:** The guides are the main funnel bringing new members to our Discord and initiatives. Your work directly fuels our community's expansion. 13 | 3. **Lower the Barrier to Entry:** Help newcomers and experts alike navigate the complex and fragmented landscape of neuromorphic tools and platforms. 14 | 4. **Shape the Future of ONM Content:** Move beyond simple lists by developing rich taxonomies (e.g., by application area, architecture type) that will enable us to create new, high-value content hubs for specialized audiences. 15 | 16 | --- 17 | 18 | #### **Key Areas of Focus: What You'll Curate** 19 | 20 | Your work will revolve around three main pillars, ensuring our resources are not just lists, but structured, insightful guides. 21 | 22 | 1. **Hardware Curation:** 23 | * Maintaining and adding to the **[Neuromorphic Hardware Guide](https://open-neuromorphic.org/neuromorphic-computing/hardware/)**. 24 | * Tracking new chip releases, research prototypes, and significant updates to existing platforms. 25 | * Ensuring specifications, research papers, and availability statuses are accurate. 26 | 27 | 2. **Software Curation:** 28 | * Maintaining and adding to the **[Neuromorphic Software Guide](https://open-neuromorphic.org/neuromorphic-computing/software/)**. 29 | * Covering the ecosystem of SNN frameworks, data processing tools, and interoperability standards (like NIR). 30 | * Keeping track of new library releases, version changes, and key feature updates. 31 | 32 | 3. **Taxonomy & Structure (The Strategic Vision):** 33 | * This is the long-term goal of evolving our guides from simple lists into a structured knowledge base. 34 | * **For Hardware:** Developing categories like "Edge vs. Data Center," "Digital vs. Mixed-Signal," "Research vs. Commercial." 35 | * **For Software:** Refining categories like "SNN Frameworks," "Data Tools," "Interoperability." 36 | * **For Both:** Brainstorming application-focused taxonomies (e.g., "Medical," "Robotics," "Aerospace") to pave the way for future industry-specific resource hubs. 37 | 38 | --- 39 | 40 | #### **The Curation Playbook: Your Task List** 41 | 42 | This is your core to-do list, broken down by type and frequency. 43 | 44 | ##### **A. Recurring Tasks (The Curation Cycle)** 45 | 46 | * **[Monthly] Ecosystem Scan:** 47 | * **Action:** Act as a "technical reporter" for the field. Scan arXiv, key GitHub repositories, and community news for new hardware, software, or major updates. 48 | * **Goal:** Identify potential new entries or necessary updates for the guides. 49 | 50 | * **[Bi-Weekly] Review the Issue Queue:** 51 | * **Action:** Check the **[Hardware & Software Curation](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues?q=is%3Aissue+state%3Aopen+label%3A%22Hardware+%26+Software+Curation%22)** label on our website's GitHub issue tracker. 52 | * **Goal:** Triage new requests from the community and plan their implementation. This is your primary source for community-driven updates. 53 | 54 | ##### **B. As-Needed Tasks (Contribution Workflow)** 55 | 56 | * **Onboard New Hardware/Software Entries:** 57 | * **Action:** When a new technology is identified (e.g., from your scan or an issue), create a new, well-researched entry for it. 58 | * **Workflow:** Follow the **Contribution Workflow** outlined below (either submit a PR or create a detailed issue). 59 | 60 | * **Update Existing Entries:** 61 | * **Action:** When you find outdated information (e.g., a new version, a project becomes inactive), update the relevant page. 62 | * **Example:** A project on our list releases a major new version. You would update its front matter and overview to reflect the changes. 63 | 64 | * **Collaborate with Maintainers:** 65 | * **Action:** When adding a significant project (like `ngc-learn` or `NeuroTorch`), it's great practice to reach out to the maintainers. You can ask them to review your draft to ensure accuracy. 66 | * **Goal:** This builds relationships and ensures our content is community-vetted and trustworthy. 67 | 68 | ##### **C. Strategic Tasks (The Long Game)** 69 | 70 | * **Develop Taxonomies for Industry & Research Hubs:** 71 | * **Action:** This is a high-impact strategic task to architect the future of our content. Your role as a domain expert is to lead the analytical work required to structure our hardware and software guides by application area, creating the foundation for new, SEO-optimized landing pages. This is the "beachhead" that will inform our future content strategy and educational efforts. 72 | * **Workflow:** 73 | 1. **Define the Taxonomy:** Brainstorm and define a clear set of terms for key "fields of study" (e.g., *Computational Neuroscience*, *Robotics*, *Signal Processing*) and "industry verticals" (e.g., *Medical Devices*, *Aerospace*, *Automotive*). 74 | 2. **Map the Ecosystem:** Create a master list or spreadsheet. For each hardware and software project on our site, you will map it to the relevant taxonomy terms you've defined. This creates the structured data we need. 75 | 3. **Collaborate on "Beachhead" Pages:** Work with the Executive Committee to use this new data to launch the first of these new landing pages (e.g., a `/neuromorphic-in-robotics/` page). This page would dynamically feature all the hardware, software, and content you've tagged with "Robotics," instantly creating a valuable resource for a new audience. 76 | 77 | --- 78 | 79 | #### **Your Contribution Workflow: Choose Your Path** 80 | 81 | We want to make contributing as easy as possible. Choose the workflow that best suits your skills and comfort level. 82 | 83 | * **Option 1: The GitHub Pro (Pull Request)** 84 | * This is the most direct way to contribute. 85 | * **Process:** Fork the [website repository](https://github.com/open-neuromorphic/open-neuromorphic.github.io), create a new branch, add or edit the Markdown files for the guides, and submit a Pull Request. Our team will review and merge it. 86 | * This is ideal for those comfortable with Git. 87 | 88 | * **Option 2: The Content Expert (GitHub Issue)** 89 | * If you prefer to focus on the content and research, this is the perfect option. 90 | * **Process:** Create a new, detailed GitHub issue using one of our templates. Provide all the necessary information: project name, links, specifications, overview text, and any images. Tag an Executive Committee member (e.g., `@neural-loop`), and we will handle the web implementation for you. 91 | * This ensures your domain expertise is captured without requiring you to be a web developer. 92 | 93 | #### **Tools & Resources** 94 | 95 | * **Content Source:** The `content/neuromorphic-computing/` directory in the [website repository](https://github.com/open-neuromorphic/open-neuromorphic.github.io). 96 | * **Task Management:** The **[Hardware & Software Curation issue queue](https://github.com/open-neuromorphic/open-neuromorphic.github.io/issues?q=is%3Aissue+state%3Aopen+label%3A%22Hardware+%26+Software+Curation%22)** on GitHub. 97 | * **Content Templates (Archetypes):** Use these to ensure new pages have the correct structure. You can find them in the `archetypes/` directory of the repository. 98 | * **Contribution Guide:** Our main **[CONTRIBUTING.md](https://github.com/open-neuromorphic/open-neuromorphic.github.io/blob/main/CONTRIBUTING.md)** has all the technical details for local setup and PRs. 99 | * **[Taxonomy 101 by Nielsen Norman Group](https://www.nngroup.com/articles/taxonomy-101/):** A foundational guide to creating and managing taxonomies, which is highly relevant for the strategic task of structuring our guides. 100 | 101 | #### **Your First 30 Days: A Suggested Plan** 102 | 103 | * **Week 1: Get Your Bearings.** 104 | * Thoroughly review the existing **[Hardware Guide](https://open-neuromorphic.org/neuromorphic-computing/hardware/)** and **[Software Guide](https://open-neuromorphic.org/neuromorphic-computing/software/)**. 105 | * Explore the issue queue to understand the types of requests we receive. 106 | * Introduce yourself in the `#general` or `#proposals-contributions` channel on Discord! 107 | 108 | * **Week 2: Your First Contribution.** 109 | * Pick one of the open issues from the queue to tackle. Good starting points include adding a new requested software library (`#336 Fugu`, `#324 ngc-learn`, `#322 NeuroTorch`) or updating an existing entry. 110 | * Choose your preferred workflow (PR or detailed issue) and see it through to completion. 111 | 112 | * **Week 3: Start the Curation Cycle.** 113 | * Perform your first "Ecosystem Scan." Try to find one new piece of hardware or software that isn't on our list yet and propose its addition. 114 | * Start a private document or a GitHub discussion draft to begin brainstorming the hardware taxonomy. 115 | 116 | * **Week 4: Plan Ahead.** 117 | * Review the issue queue again and outline a plan for the next 2-3 entries you'd like to work on. 118 | * Share your initial taxonomy ideas with the Executive Committee for feedback. 119 | 120 | Welcome again! We're here to support you. Your work is fundamental to our mission, and we're excited to see how you help shape these essential community resources. --------------------------------------------------------------------------------