Initial commit: TechScout tool suite

This commit is contained in:
unknown 2026-01-22 12:02:09 -06:00
commit 2afc590969
84 changed files with 27209 additions and 0 deletions

View File

@ -0,0 +1,17 @@
{
"permissions": {
"allow": [
"Bash(npm run build:*)",
"Bash(python:*)",
"Bash(npm ls:*)",
"Bash(npm run dev:*)",
"Bash(del \"E:\\\\GY_WORKING\\\\__CLAUDE_CODE_TESTING\\\\NEW_OSINT_AGGREGATOR\\\\techscout\\\\package-lock.json\")",
"Bash(curl:*)",
"Bash(npx next build)",
"Bash(taskkill:*)",
"Bash(timeout:*)",
"Bash(dir:*)",
"Bash(pip install:*)"
]
}
}

19
.gitignore vendored Normal file
View File

@ -0,0 +1,19 @@
# Python bytecode
__pycache__/
*.py[cod]
*$py.class
# Virtual environments
venv/
env/
.env
# IDE settings
.idea/
.vscode/
*.swp
*.swo
# OS files
.DS_Store
Thumbs.db

95
README.txt Normal file
View File

@ -0,0 +1,95 @@
============================================================
TECHSCOUT - Technology Scouting & Capability Gap Analysis
============================================================
TechScout helps you discover technologies that address capability gaps.
Simply describe what you need in plain English, and TechScout will:
- Search SBIR/STTR awards, patents, federal contracts, and news
- Score results based on relevance to your needs
- Rank candidates by problem-solution fit
- Enable deep-dive analysis on promising technologies
QUICK START
-----------
1. FIRST TIME SETUP (only once):
- Double-click: install.bat
- Wait for installation to complete
2. LAUNCH TECHSCOUT:
- Double-click: launch.bat
- It will automatically start Ollama, API server, and dashboard
- Your browser will open to http://localhost:3001
REQUIREMENTS
------------
Before installing, you need:
1. Python (https://www.python.org/downloads/)
- Check "Add Python to PATH" during install
2. Node.js (https://nodejs.org/)
- Download the LTS version
3. Ollama (https://ollama.ai)
- Download and install
- The mistral-nemo:12b model will download automatically
HOW TO USE
----------
1. Enter your capability gap in plain English, e.g.:
"Need a technology that improves Space Domain Awareness
for objects beyond the diffraction limit"
2. Click "Discover Technologies"
3. Wait for results (typically 1-3 minutes)
4. Browse ranked candidates
- Click any candidate to see details
- Green = SBIR awards
- Orange = Patents
- Blue = Federal contracts
5. Export results to CSV for team review
TROUBLESHOOTING
---------------
"Ollama not running" error:
- Make sure start_ollama.bat is running in another window
"Cannot connect to API server" error:
- The launch.bat should auto-start the API server
- Look for a "TechScout API" window - it should show
"TechScout API Server running on http://localhost:8000"
- If not visible, manually run: start_api.bat
"Discovery failed" error:
- Check that Ollama has the mistral-nemo:12b model
- Run: ollama pull mistral-nemo:12b
Dashboard won't start:
- Make sure Node.js is installed
- Run install.bat again
Slow performance:
- First searches download AI model (~4GB)
- Subsequent searches will be faster
- Discovery typically takes 1-2 minutes
SUPPORT
-------
For issues, contact your system administrator or check:
https://github.com/anthropics/claude-code/issues
============================================================

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,164 @@
{
"id": "15b103f9",
"candidate_id": "",
"organization": "Massachusetts Institute of Technology",
"timestamp": "2026-01-22T09:49:42.704999",
"company_profile": {
"name": "Massachusetts Institute of Technology",
"description": "Founded to accelerate the nation's industrial revolution, MIT is profoundly American and deeply engaged with the world.",
"website": "https://www.mit.edu/",
"headquarters": "77 Massachusetts Avenue, Cambridge, MA",
"employee_count": null,
"founded": 1861,
"leadership": null
},
"technology_profile": {
"name": "Super-Resolution Imaging with Spatial Light Modulator",
"description": "A technique that combines an optical device and a Spatial Light Modulator (SLM) to achieve super-resolution imaging, enabling the acquisition and resolution of remote objects beyond the diffraction limit of the optical device.",
"technical_approach": "The SLM is used to introduce phase shifts into the incoming light wavefront, allowing for the capture of multiple low-resolution images with varying phases. These images are then combined using algorithms such as Iterative Phase Retrieval or Gerchberg-Saxton algorithm to reconstruct a high-resolution image.",
"trl_assessment": 7,
"key_capabilities": [
"Enables resolution beyond the diffraction limit",
"Improves Space Domain Awareness by allowing for better detection and tracking of small, distant objects",
"Flexible and adaptable to various optical systems"
],
"limitations": [
"Requires complex algorithms for image reconstruction",
"Sensitive to noise and aberrations in the optical system",
"Limited by the pixel size and fill factor of the SLM"
],
"competitive_advantage": "This approach offers a significant improvement in resolution without requiring expensive hardware upgrades or the use of exotic materials, making it a cost-effective solution for enhancing Space Domain Awareness.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "Massachusetts Institute of Technology | LinkedIn",
"description": "The Massachusetts Institute of Technology (MIT) is a private research university located in Cambridge, Massachusetts.Find people you know at Massachusetts Institute of Technology . Browse recommended jobs for you. View all updates, news, and articles.",
"url": "https://www.linkedin.com/school/mit/"
},
{
"title": "Spotlight: Electrifying steam production | MIT - Massachusetts ...",
"description": "Massachusetts Institute of Technology . Education.diagram of heat pump and boiler. Spotlight: Jan 21, 2026. \u201cSteam is the most important working fluid ever,\u201d Addison Stark SM \u201910, PhD \u201914 says.",
"url": "https://www.mit.edu/archive/spotlight/electrifying-steam-production/"
},
{
"title": "Massachusetts Institute of Technology | MIT - Requirements + Data",
"description": "Private school in Massachusetts with 4,500 total undergraduate students.New England Women's & Men's Athletic Conference. web.mit.edu. 77 Massachusetts Avenue, Cambridge, MA 02139. (617) 253-1000.",
"url": "https://d28hdetl1q8yl2.cloudfront.net/schools/massachusetts-institute-of-technology-mit"
},
{
"title": "Neri Oxman's research works | Massachusetts Institute of ...",
"description": "Neri Oxman\u2019s research while affiliated with Massachusetts Institute of Technology and other places. What is this page?A series of material characterizations were conducted to evaluate the mechanical properties of the 3D-printed glass products produced by G3DP2.",
"url": "https://www.researchgate.net/scientific-contributions/Neri-Oxman-2049052444"
},
{
"title": "Massachusetts Institute of Technology | Ghost Medical Client",
"description": "Massachusetts Institute of Technology [Client]. Ghost Productions , Inc. Published March 22, 2023.This enables Massachusetts Institute of Technology to offer innovative and immersive visual solutions to their clients and patients.",
"url": "https://www.ghostproductions.com/client/massachusetts-institute-of-technology"
},
{
"title": "Massachusetts Institute of Technology",
"description": "The Massachusetts Institute of Technology is in the northeastern United States. It is in Cambridge, Massachusetts, near Boston. M.I.T. says its goal is to improve knowledge and educate students in areas that will best serve the world in the twenty-first century.",
"url": "https://learningenglish.voanews.com/a/a-23-a-2005-02-16-2-1-83123537/123913.html"
},
{
"title": "Fujitsu and MIT Announce Breakthrough Platform Technology for...",
"description": "Fujitsu Laboratories of America, Inc. and the Massachusetts Institute of Technology (MIT) today announced the joint development of a personalized learning platform that enhances the effectiveness of online learning.",
"url": "https://www.fujitsu.com/global/about/resources/news/press-releases/2013/0617-01.html"
},
{
"title": "Massachusetts Institute of Technology : Students imagine better...",
"description": "Massachusetts Institute of Technology : MIT Corporation elects nine term members, three life members.",
"url": "https://indiaeducationdiary.in/massachusetts-institute-of-technology-students-imagine-better-products-services-and-infrastructure-for-an-aging-society/"
},
{
"title": "MIT - Massachusetts Institute of Technology | web.mit.edu Reviews",
"description": "Massachusetts Institute of Technology . Machining Skills for Prototype Development Massachusetts Institute of Technology . Friday, August 14, 2015. Microfluidics device better models how cancer and other cells interact.",
"url": "https://www.pageglimpse.org/web.mit.edu"
},
{
"title": "Why MIT Startups Are Dominating Every Industry... | Medium",
"description": "The Massachusetts Institute of Technology (MIT) is synonymous with cutting-edge technology and innovation, and it\u2019s no surprise that its\u2026Why it stands out: HubSpot democratized access to enterprise-level marketing tools, offering solutions to businesses of all sizes.",
"url": "https://medium.com/@bathinitarun/why-mit-startups-are-dominating-every-industry-and-why-you-should-pay-attention-a2584bef0842"
}
],
"news_mentions": [
{
"title": "Massachusetts Institute of Technology to waive tuition for families making less than $200K",
"snippet": "One of the most prestigious universities in America has made a landmark decision to offer the majority of its incoming undergraduate students a tuition-free education. The Massachusetts Institute of Technology announced on Wednesday that students with ...",
"date": "2024-11-21T23:59:00+00:00",
"url": "https://abc7.com/post/massachusetts-institute-technology-waive-tuition-families-making-less-200k/15572704/"
},
{
"title": "SelecTech Unveils FreeStyle ESD\u2122 Classic X: Revolutionary Static Control Flooring with Patented Hidden Zipper-Lock Technology",
"snippet": "AVON, MA - January 15, 2026 - SelecTech, Inc., a leading manufacturer of innovative and sustainable ESD flooring ...",
"date": "2026-01-16T15:49:32+00:00",
"url": "https://www.usatoday.com/press-release/story/23390/selectech-unveils-freestyle-esd-classic-x-revolutionary-static-control-flooring-with-patented-hidden-zipper-lock-technology/"
},
{
"title": "These are officially the world\u2019s top universities for each subject in 2026",
"snippet": "So, where is the best place for your chosen subject in 2026? Well, as was the case in 2025, the Massachusetts Institute of Technology (MIT) ranked as the best university for arts and humanities, ...",
"date": "2025-11-28T15:49:32+00:00",
"url": "https://www.timeout.com/news/these-are-officially-the-worlds-top-universities-for-each-subject-in-2026-012226"
},
{
"title": "Marshall senior\u2019s scholarship to MIT highlights Tiger Spotlight",
"snippet": "Marshall High School senior Nouh Dahir has earned a full scholarship to the Massachusetts Institute of Technology (MIT) to ...",
"date": "2026-01-10T15:49:32+00:00",
"url": "https://www.marshallindependent.com/news/local-news/2026/01/marshall-seniors-scholarship-to-mit-highlights-tiger-spotlight-2/"
},
{
"title": "Economists are studying the slowing job market\u2014and feeling it themselves",
"snippet": "Newly minted Ph.D.s tend to work for universities, government agencies and big white-collar companies. It\u2019s not a great ...",
"date": "2026-01-19T15:49:32+00:00",
"url": "https://www.msn.com/en-us/money/economy/economists-are-studying-the-slowing-job-market-and-feeling-it-themselves/ar-AA1UsgOB?ocid=BingNewsVerp"
},
{
"title": "Predictions: sustainability trends 2026",
"snippet": "As humans continue to pioneer new environmentally-conscious practices and technologies, our definition of \u201csustainability\u201d ...",
"date": "2026-01-21T15:49:32+00:00",
"url": "https://wfuogb.com/28691/environment/predictions-sustainability-trends-2026/"
},
{
"title": "University Administration Releases Emergency Preparedness Guidelines, Will \u2018Reassess\u2019 Safety Procedures Following Brown Shooting",
"snippet": "In a statement to the Cornell community, University administrators detailed emergency preparedness guidelines and intentions ...",
"date": "2026-01-12T15:49:32+00:00",
"url": "https://cornellsun.com/article/2026/01/university-administration-releases-emergency-preparedness-guidelines-will-reassess-safety-procedures-following-brown-shooting"
},
{
"title": "The cost of delivery: Fast shipping has become more polluting around the world",
"snippet": "You shop, find something you want and click to buy. It shows up today, overnight or tomorrow. We've gotten used to that speed. But that convenience comes with a climate cost.",
"date": "2026-01-17T15:49:32+00:00",
"url": "https://www.thestar.com.my/lifestyle/living/2026/01/17/the-cost-of-delivery-fast-shipping-has-become-more-polluting-around-the-world"
},
{
"title": "Automation Can Combat \u2018Brain Fade\u2019 in Finance",
"snippet": "Small employee mistakes can have massive consequences for financial institutions, which spend $5.75 for every $1 lost to ...",
"date": "2026-01-07T15:49:32+00:00",
"url": "https://biztechmagazine.com/article/2026/01/automation-can-combat-brain-fade-finance"
},
{
"title": "Researchers make surprising discovery that could revolutionize construction industry: 'Capability to reuse'",
"snippet": "It's an innovation with potential to improve two crucial products. Researchers make surprising discovery that could ...",
"date": "2026-01-20T15:49:32+00:00",
"url": "https://www.msn.com/en-us/technology/general/researchers-make-surprising-discovery-that-could-revolutionize-construction-industry-capability-to-reuse/ar-AA1UJQOb?ocid=BingNewsVerp"
}
],
"assessment": "The technology developed by MIT, utilizing Spatial Light Modulators (SLMs) for super-resolution imaging, directly addresses the capability gap of improving Space Domain Awareness for objects beyond the diffraction limit. This technique has reached a Technology Readiness Level (TRL) of 7, indicating that it is ready for system-level testing in relevant environments. MIT's involvement brings credibility and expertise in optics and photonics, making this technology a strong fit for the given capability gap.",
"risk_factors": [
"The transition from lab-scale demonstrations to space-based applications may introduce unforeseen challenges due to the harsh space environment.",
"Integration with existing space-based observation systems might require significant effort and resources.",
"Dependence on third-party suppliers for SLM components could lead to potential supply chain issues."
],
"recommendation": "STRONGLY RECOMMEND: Given the direct alignment of MIT's technology with the capability gap, its advanced TRL, and the institution's proven track record in innovation, a strong recommendation is warranted. However, potential risks should be carefully assessed and mitigated during integration and deployment.",
"duration_seconds": 30.806462,
"success": true,
"error": null
}

View File

@ -0,0 +1,174 @@
{
"id": "270fcdb6",
"candidate_id": "",
"organization": "Palantir Technologies",
"timestamp": "2026-01-15T09:18:48.354617",
"company_profile": {
"name": "Palantir Technologies",
"description": "Palantir Technologies makes products for human-driven data analysis.",
"website": "www.palantir.com",
"headquarters": "1200 17th Street Floor 15, Denver, CO 80202, United States",
"employee_count": null,
"founded": 2003,
"leadership": [
{
"name": null,
"title": "CEO"
},
{
"name": null,
"title": "CTO"
}
]
},
"technology_profile": {
"name": "Palantir Technologies' AI-Powered Space Domain Awareness Solution",
"description": "An artificial intelligence-driven system designed to enhance space domain awareness by analyzing vast amounts of data from various sources, including satellites, ground stations, and other sensors. The technology integrates machine learning algorithms to predict and track objects beyond the diffraction limit.",
"technical_approach": "Palantir's platform, Foundry, serves as the backbone for this solution. It integrates and analyzes data from diverse sources in real-time, enabling users to gain insights into space domain awareness. The system uses advanced machine learning algorithms to predict and track objects beyond the diffraction limit by identifying patterns, anomalies, and trends in the data.",
"trl_assessment": 7,
"key_capabilities": [
"Real-time data integration and analysis from multiple sources",
"AI-driven predictive modeling for tracking objects beyond the diffraction limit",
"Scalable and customizable platform to adapt to various space domain awareness needs",
"Secure and collaborative environment for sharing insights among stakeholders"
],
"limitations": [
"Dependence on reliable data feeds, which may be affected by factors such as signal interference or loss of communication",
"Potential latency in processing and analyzing large volumes of data",
"Requires significant computational resources and expertise to operate effectively"
],
"competitive_advantage": "Palantir's strength lies in its ability to integrate and analyze vast amounts of complex, diverse data from various sources. Its platform, Foundry, is designed for scalability and customization, making it adaptable to the unique needs of space domain awareness. Additionally, Palantir's experience working with governments and intelligence agencies on sensitive projects demonstrates its capability to handle classified information securely.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "Palantir Technologies - Wikipedia",
"description": "Palantir Technologies Inc. is an American publicly traded company that develops data integration and analytics platforms enabling government agencies, ... History \u00b7 Products \u00b7 Customers",
"url": "https://en.wikipedia.org/wiki/Palantir_Technologies"
},
{
"title": "Palantir Offerings",
"description": "Build the connected grid of the future. Learn more \u2192. \u00a9 2026 Palantir Technologies Inc. ... and the services we are able to offer. More information. Strictly ...",
"url": "https://www.palantir.com/offerings/"
},
{
"title": "Palantir Platforms",
"description": "\u00a9 2026 Palantir Technologies Inc. All rights reserved. Cookies Settings. USUK ... and the services we are able to offer. More information. Strictly ...",
"url": "https://www.palantir.com/platforms/"
},
{
"title": "Palantir: Home",
"description": "\u00a9 2026 Palantir Technologies Inc. All rights reserved. Cookies Settings. USUK ... and the services we are able to offer. More information. Strictly Necessary ... Offerings \u00b7 Palantir Explained \u00b7 Gotham \u00b7 Careers",
"url": "https://www.palantir.com/"
},
{
"title": "What Does Palantir Technologies Do? - GraniteShares",
"description": "Jun 30, 2025 \u00b7 Palantir Technologies Inc. (NYSE: PLTR) is a publicly traded American software company specializing in big data analytics.",
"url": "https://graniteshares.com/institutional/us/en-us/research/what-does-palantir-technologies-do/"
},
{
"title": "Offerings | Telecommunications - Palantir",
"description": "Alex Karp, CEO of Palantir Technologies, and Timotheus H\u00f6ttges, CEO of Deutsche Telekom AG, speak at DIGITAL X on September 7th, 2021 in Cologne, Germany.",
"url": "https://www.palantir.com/offerings/telecommunications/"
},
{
"title": "Palantir | Carahsoft",
"description": "Palantir Technologies is an American dual use technology company that builds solutions for data-driven operations and decision-making. We partner with ...",
"url": "https://www.carahsoft.com/palantir"
},
{
"title": "Snowflake and Palantir Announce Strategic Partnership for Enterprise ...",
"description": "\u201cFirst class interoperability means our customers win,\u201d said Ted Mabrey, Global Head of Commercial at Palantir Technologies. \u201cWe are excited to ...",
"url": "https://www.snowflake.com/en/news/press-releases/snowflake-palantir-announce-strategic-partnership-for-enterprise-ready-ai-analytics/"
},
{
"title": "What is Palantir? (Part 1 DD) : r/PLTR - Reddit",
"description": "Aug 31, 2022 \u00b7 Suppose your solution and data security are crappy. In that case ... Palantir Technologies Inc. ($PLTR) Stock: Unofficial, independent ...",
"url": "https://www.reddit.com/r/PLTR/comments/x2iga2/what_is_palantir_part_1_dd/"
},
{
"title": "Palantir and Accenture Federal Services Join Forces to Help ...",
"description": "Jun 30, 2025 \u00b7 Palantir and Accenture Federal Services Join Forces to Help Federal Government Agencies Reinvent Operations with AI \u00b7 About Palantir Technologies ...",
"url": "https://newsroom.accenture.com/news/2025/palantir-and-accenture-federal-services-join-forces-to-help-federal-government-agencies-reinvent-operations-with-ai"
}
],
"news_mentions": [
{
"title": "Why Palantir Technologies surged 135% in 2025, and why it could go even higher",
"snippet": "Shares of Palantir Technologies (NASDAQ: PLTR) took flight in 2025, soaring 135% for the year. The dawn of generative AI represented a singular opportunity, and the company tapped into its vast experience to help usher businesses into the 21st century.",
"date": "2026-01-07T09:05:00+00:00",
"url": "https://www.msn.com/en-us/technology/artificial-intelligence/why-palantir-technologies-surged-135-in-2025-and-why-it-could-go-even-higher/ar-AA1TJpCA"
},
{
"title": "AI Startup Percepta Slams Palantir's 'Baseless' Lawsuit, Calls It Bid To 'Destroy' Competition",
"snippet": "The executives of Percepta AI, a startup in the artificial intelligence space, that was accused by Palantir Technologies Inc. (NASDAQ: PLTR) of stealing confidential information and attempting to poach top talent have labeled these claims as an effort to \"stifle competition,",
"date": "2026-01-14T11:21:00+00:00",
"url": "https://www.benzinga.com/news/legal/26/01/49900940/ai-startup-percepta-slams-palantirs-baseless-lawsuit-calls-it-bid-to-destroy-competition"
},
{
"title": "Palantir Is Poised to Mint 10,000 Millionaires. Will You Be One of Them?",
"snippet": "Palantir is outpacing Microsoft's growth in its early years and is poised to make just as many (if not more) millionaires.",
"date": "2026-01-14T08:20:00+00:00",
"url": "https://www.msn.com/en-us/money/savingandinvesting/palantir-is-poised-to-mint-10000-millionaires-will-you-be-one-of-them/ar-AA1U9TP8"
},
{
"title": "Palantir's stock could benefit from this 'supercycle' that turbocharges growth",
"snippet": "Palantir's U.S. commercial business is on fire thanks to AI and could help fuel a further reacceleration of growth, beyond the impressive performance the company has posted recently.",
"date": "2026-01-12T17:42:00+00:00",
"url": "https://www.msn.com/en-us/money/topstocks/palantir-s-stock-could-benefit-from-this-supercycle-that-turbocharges-growth/ar-AA1U4AmD"
},
{
"title": "Palantir Technologies (NASDAQ: PLTR) Price Prediction and Forecast 2026-2030 for January 12",
"snippet": "Demand for Big Data services is increasing. Palantir, a leader in the field, should benefit. Here are the forecasts and price predictions for PLTR stock.",
"date": "2026-01-12T15:59:00+00:00",
"url": "https://247wallst.com/forecasts/2026/01/12/palantir-technologies-pltr-price-prediction-and-forecast-2025-2030/"
},
{
"title": "Palantir Technologies (NASDAQ: PLTR) Stock Price Prediction for 2026: Where Will It Be in 1 Year",
"snippet": "Shares of Palantir Technologies (NASDAQ:PLTR) lost 2.41% over the past five trading sessions after losing 6.33% the five prior. Over the past year, the stock is up nearly 137%, and since its October 2022 IPO,",
"date": "2026-01-07T12:15:00+00:00",
"url": "https://finance.yahoo.com/news/palantir-technologies-nasdaq-pltr-stock-154020021.html?fr=yhssrp_catchall"
},
{
"title": "Palantir: $150 Price Key For Bulls - Risk Of Major Bear Slide Rising",
"snippet": "Palantir Technologies Inc. faces steep downside risk as extreme valuation meets weakening signals and insider selling. Click for this updated look at PLTR stock.",
"date": "2026-01-12T18:00:00+00:00",
"url": "https://seekingalpha.com/article/4858858-palantir-150-price-key-for-bulls-risk-of-major-bear-slide-rising"
},
{
"title": "Jim Cramer Says He Believes in Palantir (PLTR)'s Management",
"snippet": "Analytics firm Palantir Technologies Inc. (NASDAQ:PLTR)'s shares are among the top performers in the stock market. They are up by 173% over the past year.",
"date": "2026-01-13T16:34:36+00:00",
"url": "https://www.msn.com/en-us/money/companies/jim-cramer-says-he-believes-in-palantir-pltr-s-management/ar-AA1U8lKa"
},
{
"title": "Citigroup upgrades Palantir Technologies (PLTR)",
"snippet": "Fintel reports that on January 12, 2026, Citigroup upgraded their outlook for Palantir Technologies (NasdaqGS:PLTR) from Neutral to Buy. Analyst Price Forecast Suggests 6.77% Upside As of December 21,",
"date": "2026-01-12T20:15:27+00:00",
"url": "https://www.msn.com/en-us/money/savingandinvesting/citigroup-upgrades-palantir-technologies-pltr/ar-AA1U5mP5"
},
{
"title": "Palantir: Simplifying The Investment Decision",
"snippet": "Palantir Technologies Inc. is rated a Strong Buy, driven by robust commercial and government revenue growth. Learn more about PLTR stock here",
"date": "2026-01-12T17:48:00+00:00",
"url": "https://seekingalpha.com/article/4858855-palantir-simplifying-the-investment-decision"
}
],
"assessment": "Palantir Technologies, with its robust data analysis platform Foundry and expertise in machine learning, presents a strong fit for addressing the capability gap in Space Domain Awareness (SDA) for objects beyond the diffraction limit. Their technology integrates real-time data from diverse sources, enabling predictive tracking of objects that traditional methods may struggle to detect. However, it's important to note that Palantir's primary focus is not space-related technologies, which could introduce some challenges in understanding and adapting to the unique requirements of the space domain.",
"risk_factors": [
"Lack of direct experience in space domain-specific applications",
"Potential higher costs due to non-space-focused pricing structures",
"Dependence on third-party data sources for effective operation"
],
"recommendation": "CONSIDER: While Palantir's technology shows promise in enhancing SDA, the lack of direct space domain experience and potential higher costs warrant careful consideration. It would be beneficial to engage with Palantir for further discussions, assess their adaptability to space-specific requirements, and explore potential partnership models to mitigate identified risks.",
"duration_seconds": 37.622068,
"success": true,
"error": null
}

View File

@ -0,0 +1,169 @@
{
"id": "391ff518",
"candidate_id": "",
"organization": "imaging and Space",
"timestamp": "2026-01-15T09:17:16.636136",
"company_profile": {
"name": "imaging and Space",
"description": "Companies involved in imaging and space technologies, including airborne laser terrain mapping systems, industrial and 3D imaging, space lidar solutions, satellite imaging, and space domain awareness.",
"website": null,
"headquarters": null,
"employee_count": null,
"founded": null,
"leadership": [
{
"name": "Tom Ingersoll",
"title": "Chief Executive"
}
]
},
"technology_profile": {
"name": "Imaging and Space Domain Awareness (SDA) Capabilities",
"description": "A technology developed by imaging and Space that bypasses traditional optical limits to enhance Space Domain Awareness for objects beyond the diffraction limit.",
"technical_approach": "The technology uses advanced imaging techniques and algorithms to detect and track objects in space with higher resolution than traditional optical methods. It likely employs a combination of innovative optics, signal processing, and machine learning algorithms to achieve this capability.",
"trl_assessment": 7,
"key_capabilities": [
"Enhanced Space Domain Awareness for objects beyond the diffraction limit",
"Improved object detection and tracking in space",
"Potential for real-time or near-real-time monitoring"
],
"limitations": [
"Limited public information available, so full capabilities are not yet known",
"May require significant computational resources for data processing",
"Dependence on favorable weather conditions for optimal performance"
],
"competitive_advantage": "The technology's ability to bypass traditional optical limits allows it to provide better resolution and detail for objects in space, potentially improving situational awareness and enabling more accurate tracking.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "SIIS SI Imaging Services | The World-Leading Earth Observation Solutions Provider",
"description": "From government agencies to private companies and research institutions, SpaceEye-T enables smarter decision-making with highly precise and comprehensive data. At SI Imaging Services, we advance our mission of \"Fair Access to Space\" by making high-quality satellite data accessible to all who need it.",
"url": "https://www.si-imaging.com/"
},
{
"title": "European Space Imaging | Your Satellite Imagery Solution",
"description": "... Giving unrivaled perspective of events on the ground and at sea, our satellite imagery offers the resolution, frequency, spectral bands, accuracy and historical archive to drive innovation and solve problems.",
"url": "https://www.euspaceimaging.com/"
},
{
"title": "Spaceview\u2122 Small Satellite Imaging Solutions",
"description": "In the past, satellite solutions with sufficient imaging capabilities have been cost prohibitive for many industries and did not provide the persistent coverage required to be truly useful. L3Harris, which has long produced some of the most trusted \u201ceyes\u201d in space, has addressed this need by re-engineering its high-end optics, patented structures and outstanding image quality offerings to produce the SpaceView line of high-performance imaging payloads.",
"url": "https://www.l3harris.com/all-capabilities/spaceview-small-satellite-imaging-solutions"
},
{
"title": "Simera Sense | Satellite Imaging Cameras & Payload Solutions",
"description": "January 13, 2025 - You can extract optimal value from the high quality and consistent image products. ... Simera Sense and Zaitra Partner to enhance Earth observation efficiency with Edge Suite for On-Orbit Intelligence ... Infinite Orbits selects Simera Sense to supply Space-based Space Situational Awareness payload with Orbit Guard\u2122 Mission as part of the CNES and France 2030 program.",
"url": "https://simera-sense.com/"
},
{
"title": "Satellite Imagery Services | L3Harris\u00ae Fast. Forward.",
"description": "L3Harris has global partnerships with satellite data suppliers, maintains a vast internal archive of products and offers flexible licensing options. Learn more \u00b7 Defense \u00b7 Commercial \u00b7 Civil \u00b7 Land \u00b7 Sea \u00b7 Multi-Domain \u00b7 Space & Airborne Systems \u00b7 Missile Warning and Defense \u00b7 United States \u00b7 C4I \u00b7 EO/IR Airborne Sensor Solutions \u00b7 EO/IR Land Sensor Solutions \u00b7 EO/IR Maritime Sensor Solutions \u00b7 Geospatial \u00b7 ISR \u00b7 Small Satellite Imaging Solutions \u00b7",
"url": "https://www.l3harris.com/all-capabilities/satellite-imagery-services"
},
{
"title": "Space Imaging | LinkedIn",
"description": "Space Imaging supplied visual ... company\u2019s suite of offerings included imagery from satellite, aerial, and radar sources, as well as vector layers and digital terrain models ....",
"url": "https://www.linkedin.com/company/space-imaging-llc"
},
{
"title": "Pixxel | Hyperspectral Imaging for Earth Observation",
"description": "Pixxel\u2019s hyperspectral data offers a richer view of the planet, helping industries make smarter decisions, optimise resources, and strengthen resilience where it matters most. ... Access cutting-edge hyperspectral imagery and intuitive analytics to move faster, solve complex challenges, and drive smarter outcomes. ... Discover how Pixxel\u2019s Earth Observation solutions drive real-world impact.",
"url": "https://www.pixxel.space"
},
{
"title": "Satellite Data Services Companies - Top Companies List of Satellite Data Services Industry",
"description": "Planet Labs, PBC, known as Planet Labs, is a leading manufacturer of microsatellites and provider of satellite-based information services, offering high-resolution imagery and analytics-based solutions. With a robust satellite constellation comprising over 351 satellites, including Dove, SkySat, and Rapid Eye, the company operates a vast network in space.",
"url": "https://www.marketsandmarkets.com/ResearchInsight/satellite-data-service-market.asp"
},
{
"title": "HEO | Non-Earth Imaging",
"description": "Our imaging solutions harness advanced sensor networks and automated software to deliver space-based imagery critical for anomaly detection, operational awareness, and risk mitigation .",
"url": "https://www.heospace.com/"
},
{
"title": "Commercial Imaging Payloads | L3Harris\u00ae Fast. Forward.",
"description": "With diverse sensor capabilities ... planning. These imaging solutions offer a full spectral range of choices\u2014from visible through infrared and up to 8-band multispectral sensing ....",
"url": "https://www.l3harris.com/all-capabilities/commercial-imaging-payloads"
}
],
"news_mentions": [
{
"title": "Trump wants to control Greenland. See inside its sole US military base.",
"snippet": "Pituffik Space Base in Greenland.Ritzau Scanpix/Thomas Traasdahl via REUTERS Pituffik Space Base was...",
"date": "2026-01-15T14:17:04+00:00",
"url": "https://www.yahoo.com/news/articles/see-inside-greenlands-sole-us-200435054.html"
},
{
"title": "These are the best snow blowers and snow throwers to combat Canadian winter in...",
"snippet": "Best snow blowers and snow throwers for Canadian winters (Photo by Creative Touch Imaging ...",
"date": "2026-01-15T15:13:04+00:00",
"url": "https://www.yahoo.com/lifestyle/article/best-snow-blowers-snow-throwers-210023601.html"
},
{
"title": "What is ICE and what powers do its agents have to use force?",
"snippet": "However, its powers are different to those of the average local police department in the US. Its...",
"date": "2026-01-15T10:17:04+00:00",
"url": "https://www.yahoo.com/news/articles/ice-powers-agents-force-183155688.html"
},
{
"title": "Sick astronaut, rest of crew splash down in Pacific after undocking from ISS",
"snippet": "The NASA International Space Station (ISS) crew that included a sick astronaut splashed down in the...",
"date": "2026-01-15T09:17:04+00:00",
"url": "https://www.yahoo.com/news/articles/sick-astronaut-rest-crew-undock-171625783.html"
},
{
"title": "The US State That's Home To The World's Largest Pizzeria",
"snippet": "After perfecting the all-important dough recipe and tomato sauce, growth accelerated, leading to...",
"date": "2026-01-15T15:05:04+00:00",
"url": "https://www.yahoo.com/lifestyle/articles/us-state-thats-home-worlds-150500502.html"
},
{
"title": "Yes, You Can Grow Kiwi Indoors\u2014Here's How Experts Say to Do It",
"snippet": "\u201cIt requires significant space , a very large root system, and full sun to flower and set fruit. Even...",
"date": "2026-01-15T14:17:04+00:00",
"url": "https://shopping.yahoo.com/home-garden/gardening/articles/yes-grow-kiwi-indoors-heres-140000673.html"
},
{
"title": "When to choose 2.0 over 2.1 speakers -- sometimes less is more",
"snippet": "PCWorld examines when 2.0 speakers outperform 2.1 systems, focusing on budget constraints, space ...",
"date": "2026-01-15T15:00:04+00:00",
"url": "https://www.pcworld.com/article/3022696/when-to-choose-2-0-over-2-1-speakers-sometimes-less-is-more.html"
},
{
"title": "Klay Thompson Can Finally End Father Mychal\u2019s Disappointment as LA Insider Revea...",
"snippet": "Mychal Thompson hoped to see his son, Klay Thompson, put on the Los Angeles Lakers jersey as he did ...",
"date": "2026-01-15T14:17:04+00:00",
"url": "https://sports.yahoo.com/articles/klay-thompson-finally-end-father-135453779.html"
},
{
"title": "Morocco beat Nigeria on penalties to reach Afcon final",
"snippet": "Chances were at even more of a premium after half-time, which might explain the huge appeals for a...",
"date": "2026-01-15T10:17:04+00:00",
"url": "https://sports.yahoo.com/articles/morocco-beat-nigeria-penalties-reach-225437846.html"
},
{
"title": "Crew-11 astronauts splash down off Southern California after historic medical...",
"snippet": "January 15, 2026 The early return was prompted by a medical concern affecting one crew member aboard...",
"date": "2026-01-15T13:17:04+00:00",
"url": "https://www.yahoo.com/news/articles/crew-11-astronauts-splash-down-133608113.html"
}
],
"assessment": "The technology offered by imaging and Space presents a strong fit for the capability gap of improving Space Domain Awareness beyond the diffraction limit. This advanced imaging system, with its innovative optics, signal processing, and machine learning algorithms, has the potential to significantly enhance our ability to detect and track objects in space that were previously undetectable using traditional optical methods. The company's extensive experience in imaging and space technologies further strengthens their position as a viable partner for this endeavor.",
"risk_factors": [
"The technology is still at TRL 7, which means there may be some unknowns or challenges during the transition to full-scale production and deployment.",
"There is no contract history with government agencies, indicating potential uncertainties in navigating procurement processes and meeting specific agency requirements.",
"The company's headquarters and founding date are unknown, which could pose risks related to their stability, track record, and ability to withstand market fluctuations."
],
"recommendation": "CONSIDER: While the technology shows great promise in addressing the capability gap, the lack of contract history and unknown company background warrant a cautious approach. It is recommended that further due diligence be conducted to assess the company's capabilities, capacity, and commitment before proceeding with a partnership.",
"duration_seconds": 40.492849,
"success": true,
"error": null
}

View File

@ -0,0 +1,167 @@
{
"id": "3bd8aaec",
"candidate_id": "",
"organization": "Unknown",
"timestamp": "2026-01-13T12:29:50.044077",
"company_profile": {
"name": "Unknown",
"description": "Video game developer based in San Francisco, best known for the Natural Selection and Subnautica series.",
"website": null,
"headquarters": "San Francisco",
"employee_count": null,
"founded": null,
"leadership": [
{
"name": null,
"title": null
}
]
},
"technology_profile": {
"name": "BlackSky Technology Inc.'s Gen-2 Space Domain Awareness",
"description": "Gen-2 space domain awareness technology provides fully-automated low-latency non-Earth imaging (NEI) services for defense, intelligence and commercial customers. This technology improves Space Domain Awareness by providing high-resolution images of objects beyond the diffraction limit.",
"technical_approach": "BlackSky Technology Inc.'s Gen-2 space domain awareness technology uses advanced sensors and processing algorithms to capture high-resolution images of objects in space. The technology is designed to provide low-latency imaging services, allowing for real-time monitoring and tracking of objects in space.",
"trl_assessment": 6,
"key_capabilities": [
"High-resolution imaging capabilities beyond the diffraction limit",
"Fully-automated processing and analysis"
],
"limitations": [
"Limited scalability due to high computational requirements",
"Dependence on advanced sensors and algorithms may lead to technical obsolescence"
],
"competitive_advantage": "BlackSky Technology Inc.'s Gen-2 space domain awareness technology stands out from competitors by providing a fully-automated solution that can capture high-resolution images of objects beyond the diffraction limit. This capability is critical for defense, intelligence, and commercial customers seeking to improve their Space Domain Awareness.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "12 Effective Ways to Market Unknown Products - Involve.me",
"description": "Rating 4.7 (452) \u00b7 $0.00 to $129.00 \u00b7 Business/Productivity 12 Effective Ways to Market Unknown Products \u00b7 1. Product Recommendation Quiz \u00b7 2. Limited-time Offers \u00b7 3. User-Generated Content \u00b7 4. Influencer Marketing \u00b7 5.",
"url": "https://www.involve.me/blog/12-effective-ways-to-market-unknown-products"
},
{
"title": "Unknown Shopper | Fiserv",
"description": "Unknown Shopper Transform payment data into actionable insights. Unknown Shopper from Fiserv helps you securely and compliantly connect card activity to customer profiles, so you can personalize more experiences for your customers. Backed by Fiserv's unmatched visibility into the payments ecosystem, Unknown Shopper helps merchant acquirers, marketing agencies and their retail, grocery and ...",
"url": "https://www.fiserv.com/en/lp/unknown-shopper.html"
},
{
"title": "10 Game-Changing Tactics to Market Unknown Products in 2025",
"description": "In 2025, marketing an unknown product requires a blend of creativity, strategic thinking, and cutting-edge digital tools. Let's dive into 10 game-changing tactics that will help you create buzz and drive demand for your innovative offering .",
"url": "https://cdmsuite.com/blog/10-game-changing-tactics-market-unknown-products-2025"
},
{
"title": "Navigating the Unknown: Balancing Customer-Centric Marketing with ...",
"description": "The Innovation-Driven Approach In contrast, the innovation-driven approach involves introducing novel products or services that challenge the status quo.",
"url": "https://www.linkedin.com/pulse/navigating-unknown-balancing-customer-centric-mark-wabler-mba-xufdc"
},
{
"title": "Master - Unknown Solutions",
"description": "This program knows what your journey as a start-up founder has been like, and facilitates both you and your business to take the next step in gaining more traction in new markets and segments and expanding your portfolio of services and products .",
"url": "https://solutions.unknowngroup.com/programs/master/"
},
{
"title": "UNKNOWN Parts and Products - K+S Services",
"description": "UNKNOWN parts and UNKNOWN products in our current inventory. . K+S Services stocks over $5 million of remanufactured surplus inventory to support older or obsolete equipment.",
"url": "https://www.k-and-s.com/product-category/commodity/unknown"
},
{
"title": "Navigating the unknown terrain of digital products & services monetization - Capgemini",
"description": "Feb 6, 2025 \u00b7 Monetization Jungle Navigating the unknown terrain of digital products & services monetization ... services and platform-based solutions.",
"url": "https://www.capgemini.com/no-no/insights/expert-perspectives/navigating-the-unknown-terrain-of-digital-products-services-monetization/"
},
{
"title": "13 Paid Search Ad Techniques To Try For Relatively Unknown Products | Granular",
"description": "Mar 4, 2021 \u00b7 Well, they offer a service that's fairly unknown in their industry \u2013 a certification for a new technique that gives higher success rates ...",
"url": "https://granularmarketing.com/blog/paid-search-ad-techniques-unknown-products/"
},
{
"title": "Unsought Products: Definition and How To Sell - Shopify",
"description": "Mar 21, 2023 \u00b7 Unsought products are goods and services that consumers don't regularly seek out and buy because they're unknown, unpleasant, or unnecessary to them at a given ...",
"url": "https://www.shopify.com/blog/unsought-products"
},
{
"title": "Unified Communications (UCaaS) and Carrier Solutions ...",
"description": "We will discover unknown products, identify services, and confirm existing infrastructure. Recommend Unified Solution. Tailored to your organization, our ...",
"url": "https://questsys.com/services/managed-and-cloud-services/communication-services/UCCS-Conversation/"
}
],
"news_mentions": [
{
"title": "'A Complete Unknown' Reviews: Are Critics In Tune With Bob Dylan Film?",
"snippet": "A Complete Unknown\u2014starring Timoth\u00e9e Chalamet as Bob Dylan\u2014is new in theaters. How are critics responding to the biopic about the movie icon? A Complete Unknown\u2014a title inspired by the lyrics of Dylan's classic hit Like a Rolling Stone\u2014opens in ...",
"date": "2024-12-25T20:18:00+00:00",
"url": "https://www.forbes.com/sites/timlammers/2024/12/25/a-complete-unknown-reviews-are-critics-in-tune-with-bob-dylan-film/"
},
{
"title": "Netflix, Story Syndicate Team On Four-Part Docuseries 'Unknown' Telling Tales Of \"Adventure And Exploration\" In \"Uncharted Territories\"; Premiere Date Set",
"snippet": "EXCLUSIVE: Netflix has set a July 3rd global premiere for Unknown, a new four-part docuseries on which it's partnered with Liz Garbus and Dan Cogan's esteemed production company Story Syndicate that will have new films debuting weekly. Unknown is said ...",
"date": "2023-05-18T08:00:00+00:00",
"url": "https://deadline.com/2023/05/unknown-docuseries-netflix-story-syndicate-premiere-date-1235370459/"
},
{
"title": "Unknown 9 franchise cancelled as developer admits game \"didn't come near\" expectations, series \"didn't warrant any further exploration\"",
"snippet": "The studio behind bold Assassin's Creed-meets-Tomb Raider transmedia attempt Unknown 9 has signalled an end to the franchise, following the poor performance of last year's initial video game. Unknown 9: Awakening, a generic globe-trotting adventure ...",
"date": "2025-01-21T00:00:00+00:00",
"url": "https://www.eurogamer.net/unknown-9-franchise-cancelled-as-developer-admits-game-didnt-come-near-expectations-series-didnt-warrant-any-further-exploration"
},
{
"title": "James Mangold's 'A Complete Unknown': Everything We Know About The Bob Dylan Biopic",
"snippet": "With Timoth\u00e9e Chalamet's next big film A Complete Unknown which arrived in theaters Christmas Day, many may be curious about the actors work and preparation for portraying musician Bob Dylan in the film as well as the film's story parameters.",
"date": "2025-03-18T16:08:00+00:00",
"url": "https://deadline.com/feature/bob-dylan-biopic-everything-we-know-1236196762/"
},
{
"title": "Star Trek Voyager: Across the Unknown adds Switch 2 version, launches February...",
"snippet": "Survival strategy game Star Trek Voyager: Across the Unknown will launch for PlayStation 5, Xbox Ser...",
"date": "2026-01-13T14:29:41+00:00",
"url": "https://www.gematsu.com/2026/01/star-trek-voyager-across-the-unknown-adds-switch-2-version-launches-february-18"
},
{
"title": "Unknown 9: Awakening review: don't sleep on this surprisingly intricate gem",
"snippet": "\"Why you can trust Digital Trends - We have a 20-year history of testing, reviewing, and rating products, services and apps to help you make a sound buying decision. Find out more about how we test and score products.\" After spending nearly 20 hours ...",
"date": "2024-11-09T00:00:00+00:00",
"url": "https://www.digitaltrends.com/gaming/unknown-9-awakening-review/"
},
{
"title": "'Unknown: Cave of Bones' Review: Making Us Human",
"snippet": "This Netflix documentary chronicles archaeological discoveries that shed light on an ancient human relative. By Brandon Yu When you purchase a ticket for an independently reviewed film through our site, we earn an affiliate commission. \"It challenges us ...",
"date": "2023-07-17T00:00:00+00:00",
"url": "https://www.nytimes.com/2023/07/17/movies/unknown-cave-of-bones-review.html"
},
{
"title": "Timothy Busfield\u2019s Location Remains Unknown, U.S. Marshals Step in to Assist Pol...",
"snippet": "NEED TO KNOW The U.S. Marshals Service has stepped in to help locate Timothy Busfield after a...",
"date": "2026-01-13T02:29:41+00:00",
"url": "https://www.yahoo.com/news/articles/timothy-busfield-location-remains-unknown-025618653.html"
},
{
"title": "St. Louis City has ceased its search for vervet monkeys",
"snippet": "ST. LOUIS \u2013 The St. Louis Department of Health has called off its search for an unknown number of mo...",
"date": "2026-01-13T17:29:41+00:00",
"url": "https://www.yahoo.com/news/articles/st-louis-city-ceased-search-170002866.html"
},
{
"title": "Boosting soldier ingenuity the focus of new Army-commissioned study",
"snippet": "You\u2019re on a two-day patrol mission near an unknown village that might be hostile when your transport...",
"date": "2026-01-13T18:13:41+00:00",
"url": "https://www.yahoo.com/news/articles/boosting-soldier-ingenuity-focus-army-181343115.html"
}
],
"assessment": "BlackSky Technology Inc. has a promising Gen-2 space domain awareness technology that addresses the capability gap of improving Space Domain Awareness for objects beyond the diffraction limit. Their technology uses advanced sensors and processing algorithms to capture high-resolution images, providing low-latency imaging services. While they have not had any contracts or SBIR awards in this area, their expertise as a video game developer may translate well to developing a space-based solution. However, there are some risks associated with partnering with BlackSky Technology Inc., including the lack of experience in this specific domain and the potential for technical challenges.",
"risk_factors": [
"Lack of experience in space domain awareness technology",
"Technical challenges in adapting sensors and algorithms for space-based applications",
"Potential competition from established players in the space industry"
],
"recommendation": "RECOMMEND: While there are some risks associated with partnering with BlackSky Technology Inc., their innovative approach and potential expertise in developing a space-based solution make them an attractive candidate to consider. With proper guidance and support, they may be able to overcome the challenges and deliver a high-quality solution that meets the capability gap.",
"duration_seconds": 29.635403,
"success": true,
"error": null
}

View File

@ -0,0 +1,173 @@
{
"id": "41e488f2",
"candidate_id": "",
"organization": "SES S.A.",
"timestamp": "2026-01-13T13:20:19.810367",
"company_profile": {
"name": "SES S.A.",
"description": "A Luxembourgish communications satellite operator supplying video and data connectivity worldwide.",
"website": null,
"headquarters": "Betzdorf, Luxembourg",
"employee_count": null,
"founded": 1985,
"leadership": [
{
"name": null,
"title": "CEO"
},
{
"name": null,
"title": "CTO"
}
]
},
"technology_profile": {
"name": "Diffraqtion",
"description": "A novel approach to unlock large constellations of low-cost, high-precision imaging platforms for space domain awareness, defense, and other applications.",
"technical_approach": "Diffraqtion leverages a combination of advanced optics, innovative sensor technologies, and sophisticated data processing algorithms. It enables high-resolution imaging beyond the diffraction limit by utilizing a unique approach that involves diffractive optics and computational imaging techniques.",
"trl_assessment": 7,
"key_capabilities": [
"Enables high-resolution imaging of objects beyond the diffraction limit",
"Allows for large constellations of low-cost, high-precision imaging platforms in space",
"Improves space domain awareness by providing enhanced tracking and identification capabilities"
],
"limitations": [
"Requires advanced data processing capabilities to reconstruct high-resolution images from diffracted light",
"May be susceptible to atmospheric disturbances and other environmental factors that can affect image quality",
"Limited by the size, weight, and power constraints of space-based platforms"
],
"competitive_advantage": "Diffraqtion's unique combination of advanced optics, innovative sensor technologies, and sophisticated data processing algorithms enables it to provide high-resolution imaging capabilities beyond the diffraction limit. This allows for improved space domain awareness and enhanced tracking and identification of objects in orbit.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "SES (company) - Wikipedia",
"description": "SES SA is a Luxembourgish communications satellite operator supplying video and data connectivity worldwide to broadcasters, content and internet service ...",
"url": "https://en.wikipedia.org/wiki/SES_(company)"
},
{
"title": "SES | Satellite Communication Service Provider",
"description": "Media & Broadcasters. Take your business to the next level with our innovative hybrid and cloud-based broadcast solutions ... \u00a9 2026 SES S.A. All rights reserved. Missing: offerings | Show results with: offerings",
"url": "https://www.ses.com/"
},
{
"title": "Find a Service - SES",
"description": "Oct 14, 2024 \u00b7 ... solutions that enable shared experiences in the world of media broadcast and data connectivity ... \u00a9 2026 SES S.A. All rights reserved. Legal menu. Missing: offerings | Show results with: offerings",
"url": "https://www.ses.com/find-service"
},
{
"title": "Satellite Broadcasting Services & Solutions |SES",
"description": "Expand your content distribution with our broadcast solution. Offering ... \u00a9 2026 SES S.A. All rights reserved. Legal menu. Legal Links. Privacy Policy ... Missing: products | Show results with: products",
"url": "https://www.ses.com/find-service/media-broadcasters"
},
{
"title": "SES - ABI Research",
"description": "SES S.A. offers a portfolio of enterprise and government-grade broadband solutions primarily through its 54-strong GEO wide beam satellite fleet, including ...",
"url": "https://www.abiresearch.com/companies/ses"
},
{
"title": "How SES's differentiated solutions are empowering customers | SES",
"description": "Sep 14, 2017 \u00b7 Explore our video broadcast and data connectivity services by industry. ... \u00a9 2025 SES S.A. All rights reserved. Legal menu. Legal Links. Privacy ... Missing: products | Show results with: products",
"url": "https://www.ses.com/whitepaper/TransformingVideoServices"
},
{
"title": "Connecting Enterprises with Satellite Broadband | SES",
"description": "Find out more about our comprehensive portfolio of Enterprise services enabled by our multi-orbit satellite fleet. ... \u00a9 2026 SES S.A. All rights reserved. Legal ...",
"url": "https://www.ses.com/find-service/telco-mno/enterprise"
},
{
"title": "SES Launches Global Maritime+ Solution to Deliver High-Speed ...",
"description": "Sep 14, 2016 \u00b7 SES Launches Global Maritime+ Solution to Deliver High-Speed Connectivity to Vessels Traversing Oceans ... SES S.A. (Euronext Paris and Luxembourg ...",
"url": "https://spacenews.com/ses-launches-global-maritime-solution-to-deliver-high-speed-connectivity-to-vessels-traversing-oceans/"
},
{
"title": "SES S.A.: history, ownership, mission, how it works & makes money",
"description": "Feb 20, 2025 \u00b7 SES S.A. is a global satellite operator headquartered in Luxembourg, providing satellite communications and broadcasting services. The company ...",
"url": "https://dcfmodeling.com/blogs/history/sesgpa-history-mission-ownership?srsltid=AfmBOoo8ExN9St1j-MQUod_S8lfi3K2fF7CPka5EumvNBnezF6hqDH51"
},
{
"title": "What are Mission Vision & Core Values of SES Company?",
"description": "Dec 5, 2025 \u00b7 They guide decisions, unify corporate identity, and signal strategic intent to stakeholders. SES S.A., a global satellite communications leader, ...",
"url": "https://matrixbcg.com/blogs/mission/ses"
}
],
"news_mentions": [
{
"title": "SES AI Announces its January 2026 Event Calendar",
"snippet": "NASA Aerospace Battery Workshop Date: January 20-22, 2026 Location: NASA Johnson Space Center, 2101 E. NASA Parkway Houston, TX, USA To schedule a meeting during NASA Workshop, please contact: ...",
"date": "2026-01-05T19:20:08+00:00",
"url": "https://www.tmcnet.com/usubmit/2026/01/05/10310776.htm"
},
{
"title": "Brigitte Bardot, French Film Icon And Animal Rights Activist, Passes Away At 91",
"snippet": "French actress and animal rights activist Brigitte Bardot (real name Brigitte Anne-Marie Bardot) passed away at the age of 91 on Sunday (December 28, 2025). The death was confirmed in a statement ...",
"date": "2025-12-29T06:00:00+00:00",
"url": "https://www.msn.com/en-in/entertainment/bollywood/brigitte-bardot-french-film-icon-and-animal-rights-activist-passes-away-at-91/ar-AA1TbVLk?ocid=BingNewsVerp"
},
{
"title": "Top Growth Companies With Insider Ownership January 2026",
"snippet": "As the U. S . stock market navigates a period of cautious optimism following recent inflation data and...",
"date": "2026-01-13T17:20:08+00:00",
"url": "https://finance.yahoo.com/news/top-growth-companies-insider-ownership-173640098.html"
},
{
"title": "Credo Technology Group Holding And 2 Insider Picks For Strong Growth",
"snippet": "As the U. S . stock market celebrates record highs with major indexes like the Dow and S &P 500 closing...",
"date": "2026-01-12T19:20:08+00:00",
"url": "https://finance.yahoo.com/news/credo-technology-group-holding-2-113540630.html"
},
{
"title": "SpaceX launches another batch of Starlink satellites: Watch again",
"snippet": "SpaceX Starship' s second launch attempt (SpaceX) What is SpaceX? The backstory...Space Force...",
"date": "2026-01-12T19:20:08+00:00",
"url": "https://tech.yahoo.com/science/articles/spacex-gears-launch-another-30-131554613.html"
},
{
"title": "SpaceX set for Falcon 9 rocket launch Monday from Florida",
"snippet": "The launch will take place from Space Launch Complex 40 and marks the first stage booster\u2019 s 25th fli...",
"date": "2026-01-12T19:20:08+00:00",
"url": "https://tech.yahoo.com/science/articles/spacex-set-falcon-9-rocket-134820762.html"
},
{
"title": "January 2026's Top Insider-Owned Growth Stocks",
"snippet": "As the U. S . markets navigate a complex landscape marked by mixed stock index performances and unprecedented highs in gold and silver prices, investors...",
"date": "2026-01-12T19:20:08+00:00",
"url": "https://finance.yahoo.com/news/january-2026s-top-insider-owned-173608583.html"
},
{
"title": "After scrapping it in 2025, the Trump administration is reinstating awards...",
"snippet": "In a Jan. 5 memo, Office of Personnel Management Director Scott...servants who have exhibited...",
"date": "2026-01-08T19:20:08+00:00",
"url": "https://www.govexec.com/management/2026/01/after-scrapping-it-2025-trump-administration-reinstating-awards-program-senior-executives/410562/"
},
{
"title": "Better Home & Finance Holding Among 3 High Growth Stocks With Strong Insider...",
"snippet": "As the S &P 500 and Dow Jones Industrial Average reach new highs, investors are demonstrating...",
"date": "2026-01-13T11:20:08+00:00",
"url": "https://finance.yahoo.com/news/better-home-finance-holding-among-113545840.html"
},
{
"title": "Wind tunnel tested: Can China's X-Lab AD9 really mix it with the WordTour's best...",
"snippet": "The race bike of choice of the XDS Astana WorldTour team, the X-Lab AD9 represents somewhat of a ...",
"date": "2026-01-13T11:20:08+00:00",
"url": "https://www.cyclingnews.com/bikes/wind-tunnel-tested-x-lab-ad9/"
}
],
"assessment": "Diffraqtion's innovative technology could significantly enhance SES S.A.'s Space Domain Awareness capabilities, filling the identified capability gap. Its advanced optics and computational imaging techniques enable high-resolution imaging beyond the diffraction limit, allowing for better tracking and monitoring of objects in orbit. This would be particularly beneficial for SES, given its global communications satellite network and the need to maintain awareness of potential debris or interference sources. Moreover, partnering with Diffraqtion could provide SES with a competitive edge by offering improved services and increased safety measures to its clients.",
"risk_factors": [
"The technology is still in development (TRL:7), which may lead to delays or unexpected issues during integration with SES's existing systems.",
"The success of the partnership relies heavily on Diffraqtion's ability to deliver on their technological promises, and any shortfalls could negatively impact SES's reputation.",
"Regulatory and licensing hurdles related to space-based technologies and data processing could pose additional risks."
],
"recommendation": "RECOMMEND: While there are risks associated with partnering with a startup like Diffraqtion, the potential benefits in terms of improved Space Domain Awareness and competitive advantage outweigh these concerns. SES should proceed with caution, conducting thorough due diligence and risk assessments before committing to a partnership.",
"duration_seconds": 32.681408,
"success": true,
"error": null
}

View File

@ -0,0 +1,174 @@
{
"id": "4ae705ec",
"candidate_id": "",
"organization": "Palantir Technologies",
"timestamp": "2026-01-13T13:16:29.321900",
"company_profile": {
"name": "Palantir Technologies",
"description": "Palantir Technologies is an American software company specializing in big data analytics.",
"website": null,
"headquarters": "Denver, Colorado",
"employee_count": 4164,
"founded": 2003,
"leadership": [
{
"name": null,
"title": "CEO"
},
{
"name": null,
"title": "CTO"
}
]
},
"technology_profile": {
"name": "Palantir Technologies' AI-Powered Space Domain Awareness Solution",
"description": "An artificial intelligence-driven system designed to enhance space domain awareness by analyzing and predicting the behavior of objects beyond the diffraction limit.",
"technical_approach": "Palantir's technology leverages advanced machine learning algorithms, data fusion techniques, and predictive analytics to improve tracking and understanding of objects in orbit. It integrates data from various sources such as radar, telescopes, and satellite imagery to create a comprehensive view of the space domain. The system then employs AI to analyze this data, identify patterns, predict object trajectories, and detect anomalies or potential threats.",
"trl_assessment": 7,
"key_capabilities": [
"Advanced data fusion from multiple sources",
"AI-driven predictive analytics for object trajectory prediction",
"Anomaly detection and threat identification capabilities",
"Scalable and adaptable to handle large datasets and real-time updates"
],
"limitations": [
"Dependence on quality and availability of input data",
"Potential biases in AI algorithms due to insufficient or unrepresentative training data",
"Vulnerability to cyber threats and potential manipulation of AI systems"
],
"competitive_advantage": "Palantir's expertise in large-scale data integration, advanced analytics, and AI-driven insights provides a significant advantage in developing sophisticated space domain awareness solutions. Additionally, their partnership with Voyager Technologies allows for seamless integration with existing defense technology infrastructure.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "Palantir Technologies - Wikipedia",
"description": "1 day ago - Its software as a service (SaaS) is one of five offerings authorized for Mission Critical National Security Systems (IL5) by the U.S. Department of Defense . Palantir has been used for data integration and analysis by corporate clients such as Morgan Stanley, Merck KGaA, Airbus, Wejo, Lilium, ...",
"url": "https://en.wikipedia.org/wiki/Palantir_Technologies"
},
{
"title": "Palantir Technologies Inc Company Profile - Palantir Technologies Inc Overview - GlobalData",
"description": "The company's product platforms include Palantir Gotham, Plantir Apollo, Palantir Artificial Intelligence, and Palantir Foundry . Its Palantir Gotham platform allows users to identify patterns in datasets, ranging from signal intelligence sources to reports from confidential informants.",
"url": "https://www.globaldata.com/company-profile/palantir-technologies-inc/"
},
{
"title": "What Does Palantir Technologies Do?",
"description": "Palantir Technologies Inc. (NYSE: PLTR) is a publicly traded American software company specializing in big data analytics. The company is best known for its platforms that help organizations integrate, analyze, and make sense of vast amounts of data. With a focus on helping decision-makers gain insights from large datasets, Palantir has become a key player in industries like government, healthcare, and defense.",
"url": "https://graniteshares.com/institutional/us/en-us/research/what-does-palantir-technologies-do/"
},
{
"title": "Palantir Technologies | LinkedIn",
"description": "\"By combining the performance, scalability, and flexibility of Oracle Cloud Infrastructure with Palantir\u2019s leading data and AI services, we will help our customers win in any industry or environment,\" said Rand Waldron, VP at Oracle. Oracle\u2019s long history in defense and intelligence provides a depth of experience and technology critical to the success of high-stakes missions.",
"url": "https://www.linkedin.com/company/palantir-technologies"
},
{
"title": "Palantir Technologies, Inc.",
"description": "Launched in 2022, Apollo is like the orchestration engine for Palantir\u2019s platforms. It\u2019s designed to deploy, integrate, and manage platforms across all environments\u2014cloud, on-premises, classified networks, and edge devices (satellites, drones, and other disconnected battlefield systems). Apollo is designed for professionals who manage technical infrastructure, including information technology (IT) teams, systems administrators, and DevOps engineers\u2014specialists who combine software development with IT operations.",
"url": "https://www.britannica.com/money/Palantir-Technologies-Inc"
},
{
"title": "Palantir | Carahsoft",
"description": "Palantir Technologies is an American dual use technology company that builds solutions for data-driven operations and decision-making. We partner with government agencies, commercial institutions, and non-profit organizations to transform how they achieve their goals through digital modernization. Our products power the most mission-critical use cases across government today. *Each offering ...",
"url": "https://www.carahsoft.com/palantir"
},
{
"title": "Palantir Business Model | Think Insights",
"description": "What is known about those deals is that Palantir offers its analytic programs, plus support and tech specialists, but each contract is unique because the company model adapts to its clients' needs. The U.S. Intelligence and Military sectors are the main customers of Palantir services, but they also provide its software to civil organizations, such as the Centers for Disease Control and Prevention (CDC) and the United Nations initiative World Food Program.",
"url": "https://thinkinsights.net/digital/palantir-business-model"
},
{
"title": "Palantir commands 0.1% market share in Analytics",
"description": "Customize Palantir users by location, employees, revenue, industry, and more. Get list of companies that use Palantir \u00b7 We use the best indexing techniques combined with advanced data science to monitor the market share of over 15,000 technology products, including Analytics.",
"url": "https://enlyft.com/tech/products/palantir"
},
{
"title": "Palantir Technologies - Crunchbase Company Profile & Funding",
"description": "Palantir Technologies is a software ... Technologies, Inc. ... Palantir Technologies offers a suite of software applications for integrating, visualizing, and analyzing information ....",
"url": "https://www.crunchbase.com/organization/palantir-technologies"
},
{
"title": "Palantir Technologies Inc | AFSC Investigate",
"description": "Foundry: A complementary product that was developed primarily for civilian and commercial uses. A military could use Foundry for big-picture planning and logistics, like predicting equipment failures, analyzing and optimizing complex supply chains, etc. GAIA: Palantir's geospatial platform, which integrates with its other products and visualizes their data on a real-time map.",
"url": "https://investigate.afsc.org/company/palantir-technologies"
}
],
"news_mentions": [
{
"title": "Palantir Technologies (NASDAQ: PLTR) Price Prediction and Forecast 2026-2030 for January 12",
"snippet": "Demand for Big Data services is increasing. Palantir, a leader in the field, should benefit. Here are the forecasts and price predictions for PLTR stock.",
"date": "2026-01-12T15:59:00+00:00",
"url": "https://247wallst.com/forecasts/2026/01/12/palantir-technologies-pltr-price-prediction-and-forecast-2025-2030/"
},
{
"title": "Jim Cramer Says He Believes in Palantir (PLTR)\u2019s Management",
"snippet": "We recently published 9 Stocks on Jim Cramer\u2019s Radar. Palantir Technologies Inc. (NASDAQ:PLTR) is on...",
"date": "2026-01-13T16:16:19+00:00",
"url": "https://finance.yahoo.com/news/jim-cramer-says-believes-palantir-163436423.html"
},
{
"title": "Nvidia and Palantir Stocks: Wall Street Says to Buy 1 and Avoid the Other for...",
"snippet": "Key Points Nvidia's GPUs are powering AI workloads. Palantir 's AI software is seeing huge adoption...",
"date": "2026-01-11T19:16:19+00:00",
"url": "https://finance.yahoo.com/news/nvidia-palantir-stocks-wall-street-065000212.html"
},
{
"title": "Cathie Wood Invest Dumps Over $10 Million Of Palantir Stock Amid Talk Of 'Cramer...",
"snippet": "On Thursday, Cathie Wood-led Ark Invest made significant trades involving Palantir Technologies Inc....",
"date": "2026-01-10T19:16:19+00:00",
"url": "https://finance.yahoo.com/news/cathie-wood-invest-dumps-over-203125995.html"
},
{
"title": "Palantir Co-Founder Lonsdale to Invest in Nigerian Drone Maker",
"snippet": "Palantir Technologies Inc. co-founder Joe Lonsdale led investors betting on a little-known Nigerian ...",
"date": "2026-01-12T19:16:19+00:00",
"url": "https://www.bloomberg.com/news/articles/2026-01-12/palantir-co-founder-lonsdale-to-invest-in-nigerian-drone-maker"
},
{
"title": "Jim Cramer Says He Believes in Palantir (PLTR)'s Management",
"snippet": "We recently published 9 Stocks on Jim Cramer's Radar. Palantir Technologies Inc. (NASDAQ:PLTR) is one of the stocks on Jim Cramer's radar. Analytics firm Palantir Technologies Inc. (NASDAQ:PLTR)'s shares are among the top performers in the stock market.",
"date": "2026-01-13T16:55:00+00:00",
"url": "https://www.msn.com/en-us/money/companies/jim-cramer-says-he-believes-in-palantir-pltr-s-management/ar-AA1U8lKa"
},
{
"title": "Why Palantir Technologies surged 135% in 2025, and why it could go even higher",
"snippet": "Shares of Palantir Technologies (NASDAQ: PLTR) took flight in 2025, soaring 135% for the year. The dawn of generative AI represented a singular opportunity, and the company tapped into its vast experience to help usher businesses into the 21st century.",
"date": "2026-01-07T09:05:00+00:00",
"url": "https://www.msn.com/en-us/technology/artificial-intelligence/why-palantir-technologies-surged-135-in-2025-and-why-it-could-go-even-higher/ar-AA1TJpCA"
},
{
"title": "Palantir's stock could benefit from this 'supercycle' that turbocharges growth",
"snippet": "Palantir's U.S. commercial business is on fire thanks to AI and could help fuel a further reacceleration of growth, beyond the impressive performance the company has posted recently.",
"date": "2026-01-12T17:42:00+00:00",
"url": "https://www.msn.com/en-us/money/topstocks/palantir-s-stock-could-benefit-from-this-supercycle-that-turbocharges-growth/ar-AA1U4AmD"
},
{
"title": "Palantir Technologies Inc. (PLTR) is attracting investor attention: Here is what you should know",
"snippet": "Palantir Technologies Inc. (PLTR) has been one of the most searched-for stocks on Zacks.com lately. So, you might want to look at some of the facts that could shape the stock's performance in the near term.",
"date": "2026-01-06T14:00:03+00:00",
"url": "https://www.msn.com/en-us/money/topstocks/palantir-technologies-inc-pltr-is-attracting-investor-attention-here-is-what-you-should-know/ar-AA1TGgmJ"
},
{
"title": "How Does Trump's Potential $1.5 Trillion Defense Budget Impact Palantir Stock",
"snippet": "Palantir stock reacts as geopolitical tensions rise and Trump calls for a $1.5 trillion defense budget, reshaping U.S. military spending priorities.",
"date": "2026-01-08T16:53:00+00:00",
"url": "https://www.benzinga.com/markets/tech/26/01/49793114/how-does-trumps-potential-1-5-trillion-defense-budget-impact-palantir-stock"
}
],
"assessment": "Palantir Technologies' AI-driven space domain awareness system is well-suited to address the identified capability gap. Their technology, currently at TRL 7, demonstrates a mature approach that integrates diverse data sources and employs advanced machine learning algorithms for predictive analytics. This could significantly enhance tracking and understanding of objects beyond the diffraction limit. However, Palantir's lack of experience in space-related contracts and their focus on big data analytics for various industries might pose some challenges in adapting to the unique requirements of space domain awareness.",
"risk_factors": [
"Limited experience in space-related projects",
"Potential cultural fit issues due to diverse industry backgrounds",
"Dependence on third-party data sources, which may have limitations or restrictions"
],
"recommendation": "CONSIDER: While Palantir's technology shows promise in addressing the capability gap, their lack of space-related experience and potential cultural fit issues warrant a cautious approach. It is recommended to engage with Palantir for further discussions and assessments before making a final decision.",
"duration_seconds": 31.690589,
"success": true,
"error": null
}

View File

@ -0,0 +1,162 @@
{
"id": "5954b763",
"candidate_id": "",
"organization": "BlackSky Technology Inc.",
"timestamp": "2026-01-13T12:55:54.980477",
"company_profile": {
"name": "BlackSky Technology Inc.",
"description": "Provider of real-time geospatial intelligence, delivering on-demand, high-frequency imagery, monitoring, and analytics.",
"website": "blacksky.com",
"headquarters": "2411 Dulles Corner Park Suite 300, Herndon, United States",
"employee_count": 279,
"founded": null,
"leadership": []
},
"technology_profile": {
"name": "BlackSky Technology's Gen-2 Space Domain Awareness",
"description": "BlackSky Technology Inc.'s Gen-2 space domain awareness technology is designed to provide fully-automated low-latency non-Earth imaging (NEI) services for defense, intelligence, and commercial customers. This technology enables the detection of objects beyond the diffraction limit, improving Space Domain Awareness.",
"technical_approach": "The Gen-2 technology uses advanced sensors and processing algorithms to capture high-resolution images of objects in space, including satellites, debris, and other celestial bodies. The system is designed to provide real-time data and analytics to support decision-making and situational awareness.",
"trl_assessment": 6,
"key_capabilities": [
"Fully-automated low-latency non-Earth imaging (NEI) services",
"Detection of objects beyond the diffraction limit"
],
"limitations": [
"Limited by atmospheric conditions and sensor resolution",
"Dependent on satellite positioning and orbit"
],
"competitive_advantage": "BlackSky Technology's Gen-2 space domain awareness technology stands out due to its ability to provide real-time, high-resolution imaging capabilities beyond the diffraction limit. This unique combination of features sets it apart from other space-based surveillance technologies.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "BlackSky Wins More Than $30 Million Multi-Year Contract to Integrate ...",
"description": "HERNDON, Va.-- (BUSINESS WIRE)-- BlackSky Technology Inc. (NYSE: BKSY) won a more than $30 million multi-year contract to integrate Gen-3 high-cadence tactical ISR services into a strategic ...",
"url": "https://www.businesswire.com/news/home/20251104688346/en/BlackSky-Wins-More-Than-$30-Million-Multi-Year-Contract-to-Integrate-Gen-3-Tactical-ISR-Services-into-International-Customers-Secure-Environment"
},
{
"title": "BlackSky Technology Inc. - Investor Relations",
"description": "BlackSky is a real-time, space-based intelligence company that delivers on-demand, high-frequency imagery, analytics and monitoring of the most critical and strategic locations, economic assets and events in the world. BlackSky owns and operates one of the industry's most advanced, purpose-built, commercial real-time intelligence systems that combines the power of the BlackSky Spectra ...",
"url": "https://ir.blacksky.com/overview/"
},
{
"title": "Blacksky Technology (BKSY) Company Profile, History, Products & Services",
"description": "Company Overview BlackSky Technology Inc. is a real-time geospatial intelligence company that provides satellite imagery, analytics, and monitoring services to government and commercial customers.",
"url": "https://www.financecharts.com/stocks/BKSY/profile"
},
{
"title": "BlackSky Technology (BKSY.WS) Company Profile & Description",
"description": "BlackSky Technology Inc. operates as a space-based intelligence company in North America, the Middle East, the Asia Pacific, and internationally. The company provides geospatial intelligence, imagery, and related data analytic products and services that include the development, integration, and operation of satellites and software platforms ...",
"url": "https://stockanalysis.com/stocks/bksy.ws/company/"
},
{
"title": "BKSY - BlackSky Technology Inc. | Company Profile | OTC Markets",
"description": "BlackSky Technology Inc. provides geospatial intelligence, imagery and related data analytic products and services , and mission systems that include the development, integration, and operation of satellite and ground systems for government and commercial customers in North America, the Middle East, the Asia Pacific, and internationally.",
"url": "https://www.otcmarkets.com/stock/BKSY/profile"
},
{
"title": "BlackSky Technology Inc. (BKSY) Company Profile & Facts - Yahoo Finance",
"description": "BlackSky Technology Inc. operates as a space-based intelligence company in North America, the Middle East, the Asia Pacific, and internationally. The company provides geospatial intelligence, imagery, and related data analytic products and services that include the development, integration, and operation of satellites and software platforms ...",
"url": "https://beta.finance.yahoo.com/quote/BKSY/profile/"
},
{
"title": "BlackSky Technology Inc - Company Profile and News",
"description": "BlackSky Technology Inc. provides real-time geospatial intelligenc solutions . The Company processes observations from space, air, environmental sensors, asset tracking sensors, industrial IoT, and ...",
"url": "https://www.bloomberg.com/profile/company/BKSY:US"
},
{
"title": "BlackSky Technology Inc. - BlackSky Wins More Than $30 Million Multi ...",
"description": "Solution accelerates sovereign space-based intelligence capabilities, leveraging proven commercial technology for high-frequency, low-latency Gen-3 tasking and AI-enabled analytics BlackSky Technology Inc. (NYSE: BKSY ) won a more than $30 million multi-year contract to integrate Gen-3 high-cadence tactical ISR services into a strategic international defense customer's secure environment ...",
"url": "https://ir.blacksky.com/news-events/press-releases/news-details/2025/BlackSky-Wins-More-Than-30-Million-Multi-Year-Contract-to-Integrate-Gen-3-Tactical-ISR-Services-into-International-Customers-Secure-Environment/default.aspx"
},
{
"title": "BlackSky - Talk About Future",
"description": "BlackSky Technology Inc. is a leading provider of real-time geospatial intelligence, offering high-frequency satellite imagery, analytics, and monitoring services .",
"url": "https://talkaboutfuture.com/company-stories/blacksky/"
},
{
"title": "BlackSky wins seven-figure contract for advanced space domain ...",
"description": "Oct 8, 2024 \u00b7 (October 8, 2024) \u2014 BlackSky Technology Inc. (NYSE: BKSY) won a seven-figure contract to deliver non-Earth Imaging (NEI) services to support ... Missing: products | Show results with: products",
"url": "https://blacksky.com/press-releases/blacksky-wins-seven-figure-contract-for-advanced-space-domain-awareness-solutions-2/"
}
],
"news_mentions": [
{
"title": "Why BlackSky Technology Inc.'s (BKSY) Stock Is Up 7.15%",
"snippet": "As of Friday, January 02, BlackSky Technology Inc.'s BKSY share price has surged by 7.15%, which has investors questioning if this is right time to sell.",
"date": "2026-01-04T21:52:00+00:00",
"url": "https://www.aaii.com/investingideas/article/402863-why-blacksky-technology-inc8217s-bksy-stock-is-up-715"
},
{
"title": "Why BlackSky Technology Inc. (BKSY) Is Skyrocketing So Far in 2025",
"snippet": "We recently compiled a list of the Why These 15 Hardware Stocks Are Skyrocketing So Far in 2025. In this article, we are going to take a look at where BlackSky Technology Inc. (NYSE:BKSY) stands against the other hardware stocks. The hardware industry is ...",
"date": "2025-02-16T14:58:00+00:00",
"url": "https://www.insidermonkey.com/blog/why-blacksky-technology-inc-bksy-is-skyrocketing-so-far-in-2025-1454306/"
},
{
"title": "BlackSky Technology (BKSY) launches third Gen-3 satellite for real-time, AI-powered geospatial intelligence",
"snippet": "BlackSky Technology Inc. (NYSE:BKSY) ranks among the best AI stocks to buy according to analysts. On December 17, BlackSky Technology Inc. (NYSE:BKSY) stated that it had successfully brought its third Gen-3 satellite into commercial operations,",
"date": "2026-01-02T14:10:25+00:00",
"url": "https://www.msn.com/en-us/money/technology/blacksky-technology-bksy-launches-third-gen-3-satellite-for-real-time-ai-powered-geospatial-intelligence/ar-AA1Tsxei"
},
{
"title": "BlackSky Technology Inc. (BKSY) Secures Defense Contract to Advance AI-Powered Space Intelligence",
"snippet": "We recently compiled a list of the Top 10 Trending AI News Updates That Investors Likely Missed. In this article, we are going to take a look at where BlackSky Technology Inc. (NYSE:BKSY) stands against the other AI stocks. Just as the AI industry was ...",
"date": "2025-02-26T07:43:00+00:00",
"url": "https://www.insidermonkey.com/blog/blacksky-technology-inc-bksy-secures-defense-contract-to-advance-ai-powered-space-intelligence-1464815/"
},
{
"title": "BlackSky Technology is the latest space stock to grab investor attention \u2014 Jefferies expects sales to double in a few years",
"snippet": "The analyst cited BlackSky's unique space-based imagery offering and a refreshed constellation by the end of 2026. \u30fbJefferies expects these to contribute to the company's topline at about 25% per year.",
"date": "2025-12-22T14:23:13+00:00",
"url": "https://www.msn.com/en-us/money/topstocks/blacksky-technology-is-the-latest-space-stock-to-grab-investor-attention-jefferies-expects-sales-to-double-in-a-few-years/ar-AA1SPTi5"
},
{
"title": "BlackSky Technology Inc. (BKSY) Reports Q4 Loss, Lags Revenue Estimates",
"snippet": "BlackSky Technology Inc. (BKSY) came out with a quarterly loss of $0.39 per share versus the Zacks Consensus Estimate of a loss of $0.28. This compares to loss of $0.40 per share a year ago. These figures are adjusted for non-recurring items. This ...",
"date": "2025-03-06T13:10:00+00:00",
"url": "https://www.nasdaq.com/articles/blacksky-technology-inc-bksy-reports-q4-loss-lags-revenue-estimates"
},
{
"title": "Stonegate Updates Coverage on BlackSky Technology, Inc. (BKSY) 4Q24",
"snippet": "Dallas, Texas--(Newsfile Corp. - March 7, 2025) - BlackSky Technology, Inc. (BKSY): Stonegate Capital Partners updates their coverage on BlackSky Technology, Inc.. BKSY reported revenue, adj EBITDA, and EPS of $30.4M, $7.4M, and ($1.01), respectively.",
"date": "2025-03-07T14:16:00+00:00",
"url": "https://seekingalpha.com/pr/20027257-stonegate-updates-coverage-on-blacksky-technology-inc-bksy-4q24"
},
{
"title": "BlackSky Technology Inc. - Equity Warrant (BKSY.WS) Price Target Decreased by 23.02% to 0.15",
"snippet": "The average one-year price target for BlackSky Technology Inc. - Equity Warrant (NYSE:BKSY.WS) has been revised to $0.15 / share. This is a decrease of 23.02% from the prior estimate of $0.19 dated December 5, 2025. The price target is an average of many ...",
"date": "2025-12-21T00:00:00+00:00",
"url": "https://www.nasdaq.com/articles/blacksky-technology-inc-equity-warrant-bksyws-price-target-decreased-2302-015"
},
{
"title": "BlackSky Technology Inc.",
"snippet": "Blacksky Technology, Inc. is a space-based intelligence company, which engages in the business of delivering real-time imagery, analytics, and high-frequency monitoring of most critical and strategic locations, economic assets, and events. The firm is also ...",
"date": "2025-11-10T02:04:00+00:00",
"url": "https://www.barrons.com/market-data/stocks/bksy/research-ratings?gaa_ts=68e2f7a7&gaa_sig=iMhrC23WOowuDB6c1nS5HtV443aM86KjGxher5PjWZYRZ1gqU9zSJauiTKboeaS0U4PLsDPGebHO9QYMfvIj1w=="
},
{
"title": "BlackSky Technology Stock Tumbled On Tuesday: What Happened?",
"snippet": "BlackSky Technology Inc. (NYSE:BKSY) shares fell nearly 10% on Tuesday after Canaccord Genuity cut its price target on the stock. What To Know: Canaccord Genuity analyst Austin Moeller maintained a Buy rating on BlackSky, but flagged reduced financial ...",
"date": "2025-07-22T18:24:00+00:00",
"url": "https://www.benzinga.com/trading-ideas/movers/25/07/46561577/blacksky-technology-stock-tumbled-on-tuesday-what-happened"
}
],
"assessment": "BlackSky Technology Inc. is a strong contender to address the capability gap in Space Domain Awareness, particularly for objects beyond the diffraction limit. Their Gen-2 technology has demonstrated significant advancements in automated low-latency non-Earth imaging (NEI) services, showcasing its potential to provide real-time data and analytics for defense, intelligence, and commercial customers. While there are some risks associated with partnering with BlackSky, such as the lack of contract history and SBIR awards, their innovative approach and TRL 6 technology make them a promising candidate.",
"risk_factors": [
"Risk 1: Limited contract history and SBIR awards may raise concerns about scalability and market demand",
"Risk 2: Gen-2 technology's reliance on advanced sensors and processing algorithms may introduce complexity and potential technical challenges",
"Risk 3: Competition from other companies in the geospatial intelligence space may impact BlackSky's market share"
],
"recommendation": "RECOMMEND: While there are some risks associated with partnering with BlackSky, their innovative technology and demonstrated advancements in NEI services make them a strong contender to address the capability gap. A thorough evaluation of their capabilities, contract history, and market demand is recommended before making a final decision.",
"duration_seconds": 27.678336,
"success": true,
"error": null
}

View File

@ -0,0 +1,164 @@
{
"id": "bc325f0e",
"candidate_id": "",
"organization": "imaging and Space",
"timestamp": "2026-01-15T09:29:43.713540",
"company_profile": {
"name": "imaging and Space",
"description": "Optech Inc is known for its association with Phoenix, a spacecraft launched for Mars in 2007. The company is active in the markets of airborne laser terrain mapping systems, airborne laser bathymetry, industrial and 3D imaging, and space lidar solutions.",
"website": null,
"headquarters": null,
"employee_count": null,
"founded": null,
"leadership": []
},
"technology_profile": {
"name": "Imaging and Space Domain Awareness (SDA) Capabilities",
"description": "A technology developed by Imaging and Space that enables improved space domain awareness for objects beyond the diffraction limit, bypassing traditional optical limits.",
"technical_approach": "The technology employs advanced imaging techniques and algorithms to enhance resolution and detection capabilities. It leverages non-traditional imaging methods that operate beyond the typical optical diffraction limit, allowing it to detect and track smaller and fainter objects in space.",
"trl_assessment": 7,
"key_capabilities": [
"Enhanced resolution for detecting small and faint objects",
"Bypasses traditional optical limits for improved Space Domain Awareness (SDA)",
"Potential for real-time tracking and monitoring of objects"
],
"limitations": [
"Current collaboration phase may limit widespread adoption and validation",
"Dependence on advanced algorithms and processing power could introduce latency or complexity",
"May require significant investment in infrastructure and resources for full implementation"
],
"competitive_advantage": "The technology's ability to bypass traditional optical limits sets it apart from conventional imaging systems, offering improved space domain awareness capabilities.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "SIIS SI Imaging Services | The World-Leading Earth Observation Solutions Provider",
"description": "From government agencies to private companies and research institutions, SpaceEye-T enables smarter decision-making with highly precise and comprehensive data. At SI Imaging Services, we advance our mission of \"Fair Access to Space\" by making high-quality satellite data accessible to all who need it.",
"url": "https://www.si-imaging.com/"
},
{
"title": "European Space Imaging | Your Satellite Imagery Solution",
"description": "... Giving unrivaled perspective of events on the ground and at sea, our satellite imagery offers the resolution, frequency, spectral bands, accuracy and historical archive to drive innovation and solve problems.",
"url": "https://www.euspaceimaging.com/"
},
{
"title": "Spaceview\u2122 Small Satellite Imaging Solutions",
"description": "In the past, satellite solutions with sufficient imaging capabilities have been cost prohibitive for many industries and did not provide the persistent coverage required to be truly useful. L3Harris, which has long produced some of the most trusted \u201ceyes\u201d in space, has addressed this need by re-engineering its high-end optics, patented structures and outstanding image quality offerings to produce the SpaceView line of high-performance imaging payloads.",
"url": "https://www.l3harris.com/all-capabilities/spaceview-small-satellite-imaging-solutions"
},
{
"title": "Simera Sense | Satellite Imaging Cameras & Payload Solutions",
"description": "January 13, 2025 - You can extract optimal value from the high quality and consistent image products. ... Simera Sense and Zaitra Partner to enhance Earth observation efficiency with Edge Suite for On-Orbit Intelligence ... Infinite Orbits selects Simera Sense to supply Space-based Space Situational Awareness payload with Orbit Guard\u2122 Mission as part of the CNES and France 2030 program.",
"url": "https://simera-sense.com/"
},
{
"title": "Satellite Imagery Services | L3Harris\u00ae Fast. Forward.",
"description": "L3Harris has global partnerships with satellite data suppliers, maintains a vast internal archive of products and offers flexible licensing options. Learn more \u00b7 Defense \u00b7 Commercial \u00b7 Civil \u00b7 Land \u00b7 Sea \u00b7 Multi-Domain \u00b7 Space & Airborne Systems \u00b7 Missile Warning and Defense \u00b7 United States \u00b7 C4I \u00b7 EO/IR Airborne Sensor Solutions \u00b7 EO/IR Land Sensor Solutions \u00b7 EO/IR Maritime Sensor Solutions \u00b7 Geospatial \u00b7 ISR \u00b7 Small Satellite Imaging Solutions \u00b7",
"url": "https://www.l3harris.com/all-capabilities/satellite-imagery-services"
},
{
"title": "Space Imaging | LinkedIn",
"description": "Space Imaging supplied visual ... company\u2019s suite of offerings included imagery from satellite, aerial, and radar sources, as well as vector layers and digital terrain models ....",
"url": "https://www.linkedin.com/company/space-imaging-llc"
},
{
"title": "Pixxel | Hyperspectral Imaging for Earth Observation",
"description": "Pixxel\u2019s hyperspectral data offers a richer view of the planet, helping industries make smarter decisions, optimise resources, and strengthen resilience where it matters most. ... Access cutting-edge hyperspectral imagery and intuitive analytics to move faster, solve complex challenges, and drive smarter outcomes. ... Discover how Pixxel\u2019s Earth Observation solutions drive real-world impact.",
"url": "https://www.pixxel.space"
},
{
"title": "Satellite Data Services Companies - Top Companies List of Satellite Data Services Industry",
"description": "Planet Labs, PBC, known as Planet Labs, is a leading manufacturer of microsatellites and provider of satellite-based information services, offering high-resolution imagery and analytics-based solutions. With a robust satellite constellation comprising over 351 satellites, including Dove, SkySat, and Rapid Eye, the company operates a vast network in space.",
"url": "https://www.marketsandmarkets.com/ResearchInsight/satellite-data-service-market.asp"
},
{
"title": "HEO | Non-Earth Imaging",
"description": "Our imaging solutions harness advanced sensor networks and automated software to deliver space-based imagery critical for anomaly detection, operational awareness, and risk mitigation .",
"url": "https://www.heospace.com/"
},
{
"title": "Commercial Imaging Payloads | L3Harris\u00ae Fast. Forward.",
"description": "Scanning at 20,000 lines per second for panchromatic, the L3Harris imaging payloads can provide a continuous image that spans from New York City to Washington D.C. in just 45 seconds. This feature is key to users who need to understand what is happening over a long distance as soon as possible. ... The Nancy Grace Roman Space Telescope is designed to provide data that might settle some of the most enduring mysteries of the universe \u2013 dark energy, dark matter, exoplanets and undiscovered galaxies. ... Solutions that solve our customers' toughest challenges.",
"url": "https://www.l3harris.com/all-capabilities/commercial-imaging-payloads"
}
],
"news_mentions": [
{
"title": "Trump wants to control Greenland. See inside its sole US military base.",
"snippet": "Pituffik Space Base in Greenland.Ritzau Scanpix/Thomas Traasdahl via REUTERS Pituffik Space Base was...",
"date": "2026-01-15T13:29:32+00:00",
"url": "https://www.yahoo.com/news/articles/see-inside-greenlands-sole-us-200435054.html"
},
{
"title": "What is ICE and what powers do its agents have to use force?",
"snippet": "However, its powers are different to those of the average local police department in the US. Its...",
"date": "2026-01-15T10:29:32+00:00",
"url": "https://www.yahoo.com/news/articles/ice-powers-agents-force-183155688.html"
},
{
"title": "'We're trying to move away from No Mow May'",
"snippet": "He was told that land that the council was responsible for maintaining included sports pitches and bowling greens, with 1% equating to 190,000 sq m of...",
"date": "2026-01-15T15:17:32+00:00",
"url": "https://www.yahoo.com/news/articles/were-trying-move-away-no-220324561.html"
},
{
"title": "Sick astronaut, rest of crew splash down in Pacific after undocking from ISS",
"snippet": "The NASA International Space Station (ISS) crew that included a sick astronaut splashed down in the...",
"date": "2026-01-15T08:29:32+00:00",
"url": "https://www.yahoo.com/news/articles/sick-astronaut-rest-crew-undock-171625783.html"
},
{
"title": "Innodata Rallies 24.5% in a Month: Should You Hold or Fold the Stock?",
"snippet": "Innodata Inc. INOD has been one of the stronger performers in the small-cap AI services space over...",
"date": "2026-01-15T14:29:32+00:00",
"url": "https://finance.yahoo.com/news/innodata-rallies-24-5-month-140300717.html"
},
{
"title": "Yes, You Can Grow Kiwi Indoors\u2014Here's How Experts Say to Do It",
"snippet": "\u201cIt requires significant space , a very large root system, and full sun to flower and set fruit. Even...",
"date": "2026-01-15T14:29:32+00:00",
"url": "https://shopping.yahoo.com/home-garden/gardening/articles/yes-grow-kiwi-indoors-heres-140000673.html"
},
{
"title": "The US State That's Home To The World's Largest Pizzeria",
"snippet": "After perfecting the all-important dough recipe and tomato sauce, growth accelerated, leading to...",
"date": "2026-01-15T15:04:32+00:00",
"url": "https://www.yahoo.com/lifestyle/articles/us-state-thats-home-worlds-150500502.html"
},
{
"title": "Morocco beat Nigeria on penalties to reach Afcon final",
"snippet": "Chances were at even more of a premium after half-time, which might explain the huge appeals for a...",
"date": "2026-01-15T10:29:32+00:00",
"url": "https://sports.yahoo.com/articles/morocco-beat-nigeria-penalties-reach-225437846.html"
},
{
"title": "Crew-11 astronauts splash down off Southern California after historic medical...",
"snippet": "January 15, 2026 The early return was prompted by a medical concern affecting one crew member aboard...",
"date": "2026-01-15T13:29:32+00:00",
"url": "https://www.yahoo.com/news/articles/crew-11-astronauts-splash-down-133608113.html"
},
{
"title": "Klay Thompson Can Finally End Father Mychal\u2019s Disappointment as LA Insider Revea...",
"snippet": "Mychal Thompson hoped to see his son, Klay Thompson, put on the Los Angeles Lakers jersey as he did ...",
"date": "2026-01-15T13:29:32+00:00",
"url": "https://sports.yahoo.com/articles/klay-thompson-finally-end-father-135453779.html"
}
],
"assessment": "Imaging and Space Optech Inc's technology, with its advanced imaging techniques and algorithms operating beyond the typical optical diffraction limit, presents a strong fit for improving space domain awareness in tracking smaller and fainter objects. This capability gap is crucial for enhancing situational awareness and ensuring safety of operations in space. The company's experience in space lidar solutions and association with successful missions like Phoenix further underscores their credibility.",
"risk_factors": [
"The technology is at TRL 7, which means there might be some unknowns remaining before it reaches full operational capability (TRL 9).",
"There is no contract history provided, indicating potential challenges in integrating this technology into existing systems or processes.",
"The company's headquarters and founding year are unknown, which could pose risks related to their stability, track record, or regulatory compliance."
],
"recommendation": "CONSIDER: While the technology shows promise in addressing the capability gap, there are several unknowns and risks that warrant further investigation before proceeding with a full recommendation. It is advised to conduct thorough due diligence, including technical assessments, financial analysis, and market validation.",
"duration_seconds": 40.380887,
"success": true,
"error": null
}

View File

@ -0,0 +1,165 @@
{
"id": "c0b15ddc",
"candidate_id": "",
"organization": "Unknown",
"timestamp": "2026-01-13T12:33:48.807736",
"company_profile": {
"name": "Unknown",
"description": null,
"website": null,
"headquarters": [
"New York",
"Portland"
],
"employee_count": null,
"founded": 2005,
"leadership": []
},
"technology_profile": {
"name": "DARC Radar System",
"description": "The DARC radar system is a powerful technology designed to track multiple small moving objects in geosynchronous orbit, providing real-time Space Domain Awareness (SDA) for objects beyond the diffraction limit.",
"technical_approach": "The DARC radar system uses advanced radar technology to detect and track small moving objects in geosynchronous orbit. The system is capable of detecting objects as small as a few centimeters in size, and can track multiple objects simultaneously. The technology uses a combination of advanced signal processing and machine learning algorithms to improve the accuracy and reliability of object detection.",
"trl_assessment": 6,
"key_capabilities": [
"Real-time tracking of multiple small moving objects in geosynchronous orbit",
"Detection of objects as small as a few centimeters in size"
],
"limitations": [
"Limited to detecting objects in geosynchronous orbit, may not be effective for objects at other altitudes or orbits",
"May require significant computational resources and data storage for processing and storing large amounts of radar data"
],
"competitive_advantage": "The DARC radar system's ability to detect small moving objects in geosynchronous orbit makes it a unique solution for improving Space Domain Awareness. The technology's use of advanced signal processing and machine learning algorithms also provides a competitive advantage by enabling real-time tracking and improved accuracy.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "12 Effective Ways to Market Unknown Products - involve.me",
"description": "Sep 11, 2025 \u00b7 At some point, these products might be produced, posing a challenge for marketing teams tasked with promoting unknown items . Here is a list of creative ideas for marketing new products that goes beyond traditional press releases and email campaigns:",
"url": "https://www.involve.me/blog/12-effective-ways-to-market-unknown-products"
},
{
"title": "Unsought Products: Definition and How To Sell - Shopify Unknown Manufacturer Solutions: Find Verified Global Suppliers Navigating the Unknown: Balancing Customer-Centric Marketing ... Unsought Products : Definition and How To Sell - Shopify 12 Effective Ways to Market Unknown Products | involve.me 12 Effective Ways to Market Unknown Products | involve.me Selling and Marketing Unsought Products - Draft.dev",
"description": "Unsought products are goods that consumers do not actively seek out or consider purchasing regularly, often due to a lack of awareness or immediate need. Examples include life insurance or emergency medical supplies. Effective unsought product marketing strategies include informative advertising that emphasizes product benefits and limited-time off... See full list on shopify.com Unsought products or services are necessary, even if they aren\u2019t regularly bought by the individual. Fire alarms and smoke detectors are examples of unsought products that might be helpful if disaster strikes, but don\u2019t provide any benefit immediately\u2014if ever. As a result, consumers balk at buying them, even if the purchase might save them (or thei... See full list on shopify.com Selling unsought products usually involves confronting four main challenges: 1. Lack of motivation.People don\u2019t go out of their way to search for unsought products and services . Because consumers don\u2019t plan to buy an unsought product, you\u2019ll have to build their interest by educating them about the product and why they need it. 2. Lack of awareness.... See full list on shopify.com Consumers don\u2019t regularly choose to buy unsought products , but that doesn\u2019t mean they won\u2019t do extensive research and comparison shop before making a purchase. Small companies that create or sell unsought products need to think about building product awareness, demonstrating benefits, and making sure their brand is top of mind or comes highly recom... See full list on shopify.com Aug 5, 2025 \u00b7 Need an unknown manufacturer for custom products ? Discover trusted suppliers worldwide offering OEM services and quality assurance. Click to connect with top manufacturers today! Oct 25, 2024 \u00b7 In contrast, the innovation-driven approach involves introducing novel products or services that challenge the status quo. Marketers who embrace this strategy aim to create something entirely... How do small companies market unsought products? Small companies that create or sell unsought products need to think about building product awareness, demonstrating benefits, and making sure their brand is top of mind or comes highly recommended. Unsought product marketing might employ a variety of marketing strategies, including: Targeted marketing campaigns . How do I get my unknown product into search results? Finding keywords to get your unknown product into the search results is a challenge. Here's how you can tackle it: Extract seed keywords from your product description. These could be nouns, verbs, or phrases that capture the essence of your product. Research competitors or products in a similar category using search tools. How do you tell a story about an unknown product? Build a narrative around your unknown product that centers on its unique value proposition and how it addresses a specific problem. Here's how to tell the story of your unknown brand: Give your brand a personality . Use this character to narrate your story and engage your audience. Oct 14, 2021 \u00b7 For businesses, marketing the products that people already want is simple, but what about products people don\u2019t know they need? These are called unsought products , and their marketing strategies cost a great deal of time and money to execute.",
"url": "https://www.shopify.com/blog/unsought-products"
},
{
"title": "Unknown Shopper | Fiserv",
"description": "Unknown Shopper Transform payment data into actionable insights. Unknown Shopper from Fiserv helps you securely and compliantly connect card activity to customer profiles, so you can personalize more experiences for your customers. Backed by Fiserv\u2019s unmatched visibility into the payments ecosystem, Unknown Shopper helps merchant acquirers, marketing agencies and their retail, grocery and ...",
"url": "https://www.fiserv.com/en/lp/unknown-shopper.html"
},
{
"title": "10 Game-Changing Tactics to Market Unknown Products in 2025",
"description": "Apr 20, 2025 \u00b7 In 2025, marketing an unknown product requires a blend of creativity, strategic thinking, and cutting-edge digital tools. Let's dive into 10 game-changing tactics that will help you create buzz and drive demand for your innovative offering .",
"url": "https://cdmsuite.com/blog/10-game-changing-tactics-market-unknown-products-2025"
},
{
"title": "Unknown Manufacturer Solutions: Find Verified Global Suppliers",
"description": "Aug 5, 2025 \u00b7 Need an unknown manufacturer for custom products ? Discover trusted suppliers worldwide offering OEM services and quality assurance. Click to connect with top manufacturers today!",
"url": "https://www.accio.com/supplier/unknown-manufacturer"
},
{
"title": "Navigating the Unknown: Balancing Customer-Centric Marketing ...",
"description": "Oct 25, 2024 \u00b7 In contrast, the innovation-driven approach involves introducing novel products or services that challenge the status quo. Marketers who embrace this strategy aim to create something entirely...",
"url": "https://www.linkedin.com/pulse/navigating-unknown-balancing-customer-centric-mark-wabler-mba-xufdc"
},
{
"title": "Selling and Marketing Unsought Products - Draft.dev",
"description": "Oct 14, 2021 \u00b7 For businesses, marketing the products that people already want is simple, but what about products people don\u2019t know they need? These are called unsought products , and their marketing strategies cost a great deal of time and money to execute.",
"url": "https://draft.dev/learn/selling-and-marketing-unsought-products"
},
{
"title": "Navigating the unknown terrain of digital products & services monetization - Capgemini",
"description": "Feb 6, 2025 \u00b7 Monetization Jungle Navigating the unknown terrain of digital products & services monetization ... services and platform-based solutions.",
"url": "https://www.capgemini.com/no-no/insights/expert-perspectives/navigating-the-unknown-terrain-of-digital-products-services-monetization/"
},
{
"title": "13 Paid Search Ad Techniques To Try For Relatively Unknown Products | Granular",
"description": "Mar 4, 2021 \u00b7 Well, they offer a service that's fairly unknown in their industry \u2013 a certification for a new technique that gives higher success rates ...",
"url": "https://granularmarketing.com/blog/paid-search-ad-techniques-unknown-products/"
},
{
"title": "Unified Communications (UCaaS) and Carrier Solutions ...",
"description": "We will discover unknown products, identify services, and confirm existing infrastructure. Recommend Unified Solution. Tailored to your organization, our ...",
"url": "https://questsys.com/services/managed-and-cloud-services/communication-services/UCCS-Conversation/"
}
],
"news_mentions": [
{
"title": "Is 'A Complete Unknown' streaming? Here's how to watch the Oscar-nominated movie",
"snippet": "The Bob Dylan biopic \"A Complete Unknown\" earned eight nominations at the 2025 Oscars and will soon be available to stream on Hulu. The film about the singer-songwriter's sudden rise to fame in 1960s New York earned nominations across awards shows ...",
"date": "2025-01-27T01:40:00+00:00",
"url": "https://www.today.com/popculture/movies/how-to-watch-a-complete-unknown-rcna188927"
},
{
"title": "'A Complete Unknown' Reviews: Are Critics In Tune With Bob Dylan Film?",
"snippet": "A Complete Unknown\u2014starring Timoth\u00e9e Chalamet as Bob Dylan\u2014is new in theaters. How are critics responding to the biopic about the movie icon? A Complete Unknown\u2014a title inspired by the lyrics of Dylan's classic hit Like a Rolling Stone\u2014opens in ...",
"date": "2024-12-25T20:18:00+00:00",
"url": "https://www.forbes.com/sites/timlammers/2024/12/25/a-complete-unknown-reviews-are-critics-in-tune-with-bob-dylan-film/"
},
{
"title": "Netflix, Story Syndicate Team On Four-Part Docuseries 'Unknown' Telling Tales Of \"Adventure And Exploration\" In \"Uncharted Territories\"; Premiere Date Set",
"snippet": "EXCLUSIVE: Netflix has set a July 3rd global premiere for Unknown, a new four-part docuseries on which it's partnered with Liz Garbus and Dan Cogan's esteemed production company Story Syndicate that will have new films debuting weekly. Unknown is said ...",
"date": "2023-05-18T08:00:00+00:00",
"url": "https://deadline.com/2023/05/unknown-docuseries-netflix-story-syndicate-premiere-date-1235370459/"
},
{
"title": "James Mangold's 'A Complete Unknown': Everything We Know About The Bob Dylan Biopic",
"snippet": "With Timoth\u00e9e Chalamet's next big film A Complete Unknown which arrived in theaters Christmas Day, many may be curious about the actors work and preparation for portraying musician Bob Dylan in the film as well as the film's story parameters.",
"date": "2025-03-18T16:08:00+00:00",
"url": "https://deadline.com/feature/bob-dylan-biopic-everything-we-know-1236196762/"
},
{
"title": "'A Complete Unknown' Comes to Digital, But When Will the Bob Dylan Movie 'A Complete Unknown' Be Streaming on Hulu?",
"snippet": "Discover What's Streaming On: With just days to go to the 2025 Oscars ceremony, A Complete Unknown, aka the Bob Dylan movie, is coming to digital platforms to buy and rent. Another win for Timoth\u00e9e Chalamet's airtight awards campaign! Directed by ...",
"date": "2025-02-24T00:00:00+00:00",
"url": "https://decider.com/2025/02/24/a-complete-unknown-streaming-release-date-hulu-bob-dylan-movie-streaming/"
},
{
"title": "Unknown 9 franchise cancelled as developer admits game \"didn't come near\" expectations, series \"didn't warrant any further exploration\"",
"snippet": "The studio behind bold Assassin's Creed-meets-Tomb Raider transmedia attempt Unknown 9 has signalled an end to the franchise, following the poor performance of last year's initial video game. Unknown 9: Awakening, a generic globe-trotting adventure ...",
"date": "2025-01-21T00:00:00+00:00",
"url": "https://www.eurogamer.net/unknown-9-franchise-cancelled-as-developer-admits-game-didnt-come-near-expectations-series-didnt-warrant-any-further-exploration"
},
{
"title": "'A Complete Unknown' review: Timoth\u00e9e Chalamet infuriates as Bob Dylan",
"snippet": "All products featured here are independently selected by our editors and writers. If you buy something through links on our site, Mashable may earn an affiliate commission. Elle Fanning and Timoth\u00e9e Chalamet star as young lovers in \"A Complete Unknown.",
"date": "2024-12-10T17:36:00+00:00",
"url": "https://mashable.com/article/a-complete-unknown-review"
},
{
"title": "\u2018Scary Movie\u2019 actress\u2019 cause of death still unknown",
"snippet": "According to New York Daily News, Trcka\u2019s cause of death remains unknown as of the publishing of this report. Her son ...",
"date": "2026-01-07T18:33:39+00:00",
"url": "https://www.msn.com/en-us/entertainment/news/scary-movie-actress-cause-of-death-still-unknown/ar-AA1THtad?ocid=BingNewsVerp"
},
{
"title": "Star Trek: Voyager - Across The Unknown Beams Onto Switch 2 Next Month",
"snippet": "Publisher Daedalic Entertainment has today announced that Star Trek: Voyager - Across The Unknown will launch on the Switch 2 ...",
"date": "2026-01-09T18:33:39+00:00",
"url": "https://www.nintendolife.com/news/2026/01/star-trek-voyager-across-the-unknown-beams-onto-switch-2-next-month"
},
{
"title": "'The Unknown' is the best part of the disastrous Willy Wonka house",
"snippet": "You're currently following this author! Want to unfollow? Unsubscribe via the link in your email. Follow Katie Notopoulos Every time Katie publishes a story, you'll get an alert straight to your inbox! Enter your email By clicking \"Sign up\", you ...",
"date": "2024-02-29T20:58:00+00:00",
"url": "https://www.businessinsider.com/willy-wonka-experience-house-glasgow-who-is-the-unknown-2024-2"
}
],
"assessment": "The company's DARC radar system shows great promise in addressing the capability gap of improving Space Domain Awareness for objects beyond the diffraction limit. The technology's advanced signal processing and machine learning algorithms demonstrate a high level of maturity, with a TRL of 6. However, the lack of contract history and SBIR awards raises some concerns about the company's ability to translate its technology into real-world applications. Overall, this is an exciting opportunity that warrants further exploration.",
"risk_factors": [
"Risk 1: Limited contract history and SBIR awards may indicate challenges in commercializing the technology",
"Risk 2: The company's headquarters location in New York or Portland may impact access to key government agencies and funding sources",
"Risk 3: The complexity of the DARC radar system may require significant investment in training and support for users"
],
"recommendation": "RECOMMEND: While there are some risks associated with this opportunity, the company's innovative technology and high TRL make it an attractive candidate to address the capability gap. Further evaluation is necessary to fully assess the company's capabilities and potential for success.",
"duration_seconds": 27.392119,
"success": true,
"error": null
}

View File

@ -0,0 +1,176 @@
{
"id": "c6a6e4f5",
"candidate_id": "",
"organization": "Unknown",
"timestamp": "2026-01-13T12:19:49.637777",
"company_profile": {
"name": "Unknown",
"description": "Digital marketing and branding agency",
"website": null,
"headquarters": [
{
"location": "New York"
},
{
"location": "Staffordshire, England"
}
],
"employee_count": null,
"founded": [
{
"year": 2005
},
{
"year": 2018
}
],
"leadership": []
},
"technology_profile": {
"name": "BlackSky Technology Inc.'s Gen-2 Space Domain Awareness",
"description": "Gen-2 space domain awareness technology provides fully-automated low-latency non-Earth imaging (NEI) services for defense, intelligence and commercial customers. It offers improved Space Domain Awareness for objects beyond the diffraction limit.",
"technical_approach": "The technology uses advanced sensors and processing algorithms to capture high-resolution images of objects in space, including satellites, debris, and other celestial bodies. The system is designed to provide real-time data and analytics to support situational awareness and decision-making.",
"trl_assessment": 6,
"key_capabilities": [
"Improved Space Domain Awareness for objects beyond the diffraction limit",
"Fully-automated low-latency non-Earth imaging (NEI) services"
],
"limitations": [
"Limited to detecting objects in space, may not be effective for detecting objects on Earth or in other environments",
"Dependence on advanced sensors and processing algorithms may introduce technical risks"
],
"competitive_advantage": "BlackSky Technology Inc.'s Gen-2 Space Domain Awareness technology offers a unique combination of automated imaging capabilities and real-time data analytics, providing customers with a competitive advantage in terms of situational awareness and decision-making.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "12 Effective Ways to Market Unknown Products - involve.me",
"description": "Sep 11, 2025 \u00b7 At some point, these products might be produced, posing a challenge for marketing teams tasked with promoting unknown items . Here is a list of creative ideas for marketing new products that goes beyond traditional press releases and email campaigns:",
"url": "https://www.involve.me/blog/12-effective-ways-to-market-unknown-products"
},
{
"title": "Unsought Products: Definition and How To Sell - Shopify Unknown Manufacturer Solutions: Find Verified Global Suppliers Navigating the Unknown: Balancing Customer-Centric Marketing ... Selling and Marketing Unsought Products - Draft.dev Unsought Products : Definition and How To Sell - Shopify 12 Effective Ways to Market Unknown Products | involve.me 12 Effective Ways to Market Unknown Products | involve.me Berkeley Communications - Unknown Products",
"description": "Unsought products are goods that consumers do not actively seek out or consider purchasing regularly, often due to a lack of awareness or immediate need. Examples include life insurance or emergency medical supplies. Effective unsought product marketing strategies include informative advertising that emphasizes product benefits and limited-time off... See full list on shopify.com Unsought products or services are necessary, even if they aren\u2019t regularly bought by the individual. Fire alarms and smoke detectors are examples of unsought products that might be helpful if disaster strikes, but don\u2019t provide any benefit immediately\u2014if ever. As a result, consumers balk at buying them, even if the purchase might save them (or thei... See full list on shopify.com Selling unsought products usually involves confronting four main challenges: 1. Lack of motivation.People don\u2019t go out of their way to search for unsought products and services . Because consumers don\u2019t plan to buy an unsought product, you\u2019ll have to build their interest by educating them about the product and why they need it. 2. Lack of awareness.... See full list on shopify.com Consumers don\u2019t regularly choose to buy unsought products , but that doesn\u2019t mean they won\u2019t do extensive research and comparison shop before making a purchase. Small companies that create or sell unsought products need to think about building product awareness, demonstrating benefits, and making sure their brand is top of mind or comes highly recom... See full list on shopify.com Aug 5, 2025 \u00b7 Need an unknown manufacturer for custom products ? Discover trusted suppliers worldwide offering OEM services and quality assurance. Click to connect with top manufacturers today! Oct 25, 2024 \u00b7 In contrast, the innovation-driven approach involves introducing novel products or services that challenge the status quo. Marketers who embrace this strategy aim to create something entirely... Oct 14, 2021 \u00b7 For businesses, marketing the products that people already want is simple, but what about products people don\u2019t know they need? These are called unsought products , and their marketing strategies cost a great deal of time and money to execute. How do small companies market unsought products? Small companies that create or sell unsought products need to think about building product awareness, demonstrating benefits, and making sure their brand is top of mind or comes highly recommended. Unsought product marketing might employ a variety of marketing strategies, including: Targeted marketing campaigns . How do I get my unknown product into search results? Finding keywords to get your unknown product into the search results is a challenge. Here's how you can tackle it: Extract seed keywords from your product description. These could be nouns, verbs, or phrases that capture the essence of your product. Research competitors or products in a similar category using search tools. How do you tell a story about an unknown product? Build a narrative around your unknown product that centers on its unique value proposition and how it addresses a specific problem. Here's how to tell the story of your unknown brand: Give your brand a personality . Use this character to narrate your story and engage your audience. We offer new and refurbished storage and networking hardware and services to customize a solution for your business. Our products include: NetApp, Cisco, Symantec, Supermicro, VMware, EMC, Quantum, Foundry, and many others.",
"url": "https://www.shopify.com/blog/unsought-products"
},
{
"title": "10 Game-Changing Tactics to Market Unknown Products in 2025",
"description": "Apr 20, 2025 \u00b7 In 2025, marketing an unknown product requires a blend of creativity, strategic thinking, and cutting-edge digital tools. Let's dive into 10 game-changing tactics that will help you create buzz and drive demand for your innovative offering .",
"url": "https://cdmsuite.com/blog/10-game-changing-tactics-market-unknown-products-2025"
},
{
"title": "Unknown Manufacturer Solutions: Find Verified Global Suppliers",
"description": "Aug 5, 2025 \u00b7 Need an unknown manufacturer for custom products ? Discover trusted suppliers worldwide offering OEM services and quality assurance. Click to connect with top manufacturers today!",
"url": "https://www.accio.com/supplier/unknown-manufacturer"
},
{
"title": "Navigating the Unknown: Balancing Customer-Centric Marketing ...",
"description": "Oct 25, 2024 \u00b7 In contrast, the innovation-driven approach involves introducing novel products or services that challenge the status quo. Marketers who embrace this strategy aim to create something entirely...",
"url": "https://www.linkedin.com/pulse/navigating-unknown-balancing-customer-centric-mark-wabler-mba-xufdc"
},
{
"title": "Selling and Marketing Unsought Products - Draft.dev",
"description": "Oct 14, 2021 \u00b7 For businesses, marketing the products that people already want is simple, but what about products people don\u2019t know they need? These are called unsought products , and their marketing strategies cost a great deal of time and money to execute.",
"url": "https://draft.dev/learn/selling-and-marketing-unsought-products"
},
{
"title": "Berkeley Communications - Unknown Products",
"description": "We offer new and refurbished storage and networking hardware and services to customize a solution for your business. Our products include: NetApp, Cisco, Symantec, Supermicro, VMware, EMC, Quantum, Foundry, and many others.",
"url": "https://store.berkcom.com/Unknown/index.php"
},
{
"title": "13 Paid Search Ad Techniques To Try For Relatively Unknown Products | Granular",
"description": "Mar 4, 2021 \u00b7 Well, they offer a service that's fairly unknown in their industry \u2013 a certification for a new technique that gives higher success rates ...",
"url": "https://granularmarketing.com/blog/paid-search-ad-techniques-unknown-products/"
},
{
"title": "Navigating the unknown terrain of digital products & services monetization - Capgemini",
"description": "Feb 6, 2025 \u00b7 Monetization Jungle Navigating the unknown terrain of digital products & services monetization ... services and platform-based solutions.",
"url": "https://www.capgemini.com/us-en/insights/expert-perspectives/navigating-the-unknown-terrain-of-digital-products-services-monetization/"
},
{
"title": "Unknown Services - Microsoft Q&A",
"description": "Hello, I have an unknowns service running in Windows 10 : \"SenseService\", I have no idea what is it, and the manufacturer is also \"Unknown\".",
"url": "https://learn.microsoft.com/en-us/answers/questions/4247343/unknown-services"
}
],
"news_mentions": [
{
"title": "\u2018Scary Movie\u2019 actress\u2019 cause of death still unknown",
"snippet": "According to New York Daily News, Trcka\u2019s cause of death remains unknown as of the publishing of this report. Her son ...",
"date": "2026-01-07T18:19:41+00:00",
"url": "https://www.msn.com/en-us/entertainment/news/scary-movie-actress-cause-of-death-still-unknown/ar-AA1THtad?ocid=BingNewsVerp"
},
{
"title": "Star Trek: Voyager - Across The Unknown Beams Onto Switch 2 Next Month",
"snippet": "Publisher Daedalic Entertainment has today announced that Star Trek: Voyager - Across The Unknown will launch on the Switch 2 ...",
"date": "2026-01-10T18:19:41+00:00",
"url": "https://www.nintendolife.com/news/2026/01/star-trek-voyager-across-the-unknown-beams-onto-switch-2-next-month"
},
{
"title": "Star Trek Voyager: Across the Unknown adds Switch 2 version, launches February...",
"snippet": "Survival strategy game Star Trek Voyager: Across the Unknown will launch for PlayStation 5, Xbox Ser...",
"date": "2026-01-13T14:19:41+00:00",
"url": "https://www.gematsu.com/2026/01/star-trek-voyager-across-the-unknown-adds-switch-2-version-launches-february-18"
},
{
"title": "Simone Biles and Jonathan Owen\u2019s Friend Reveals Unknown Wedding Detail, Two Years After Marriage",
"snippet": "With insiders, curious fans, and armchair detectives online, celebrity weddings can feel like public affairs. So it was no ...",
"date": "2026-01-10T18:19:41+00:00",
"url": "https://www.yahoo.com/entertainment/celebrity/articles/simone-biles-jonathan-owen-friend-142334330.html"
},
{
"title": "Chloe Kim injures shoulder, status for Winter Games unknown",
"snippet": "Two-time Olympic gold medalist Chloe Kim said Thursday that she dislocated a shoulder in training and her status for the ...",
"date": "2026-01-09T18:19:41+00:00",
"url": "https://www.msn.com/en-us/sports/other/chloe-kim-injures-shoulder-status-for-winter-games-unknown/ar-AA1TQnke?ocid=BingNewsVerp"
},
{
"title": "Top U.S. Olympic star injures shoulder in \u2019silliest fall,\u2019 status for games unknown",
"snippet": "Snowboarding legend Chloe Kim took to social media, revealing that she dislocated her shoulder on \u201cthe silliest fall\u201d while ...",
"date": "2026-01-10T18:19:41+00:00",
"url": "https://sports.yahoo.com/articles/top-u-olympic-star-injures-170739510.html"
},
{
"title": "Story-driven strategy game Star Trek: Voyager - Across the Unknown beams down Switch 2 version and release date",
"snippet": "Before 2026 heats up, we've got several small and mid-sized game releases coming our way fast, but unexpected arrivals like ...",
"date": "2026-01-11T18:19:41+00:00",
"url": "https://www.eurogamer.net/story-driven-strategy-game-star-trek-voyager-across-the-unknown-beams-down-switch-2-version-and-release-date"
},
{
"title": "TikTok will broadcast some unknown portion of the 2026 World Cup live",
"snippet": "TikTok and FIFA are teaming up for World Cup matches. On Thursday, FIFA said its media partners will be able to broadcast ...",
"date": "2026-01-09T18:19:41+00:00",
"url": "https://www.msn.com/en-us/sports/soccer/tiktok-will-broadcast-some-unknown-portion-of-the-2026-world-cup-live/ar-AA1TQ2hU?ocid=BingNewsVerp"
},
{
"title": "Cause of plane crash unknown, says AAIB",
"snippet": "The cause of a plane crash that left a pilot with serious injuries was unable to be determined, an investigation has revealed ...",
"date": "2026-01-10T18:19:41+00:00",
"url": "https://www.msn.com/en-us/news/world/cause-of-plane-crash-unknown-says-aaib/ar-AA1TWkg8?ocid=BingNewsVerp"
},
{
"title": "Status of four Native Americans detained by ICE in Minneapolis still unknown, officials say",
"snippet": "Lt. Gov. Peggy Flanagan, the Minnesota Native American Caucus, condemn federal agents\u2019 actions against Native American ...",
"date": "2026-01-12T18:19:41+00:00",
"url": "https://www.inforum.com/news/minnesota/status-of-four-native-americans-detained-by-ice-in-minneapolis-still-unknown-officials-say"
}
],
"assessment": "This digital marketing and branding agency appears to be a mismatch for the capability gap. While they have demonstrated capabilities in their core business, there is no indication that they possess the necessary expertise or resources to develop and commercialize a Gen-2 space domain awareness technology. The company's focus on digital marketing and branding suggests that they may not have the technical depth or experience required to overcome the challenges associated with developing a complex technology like this.",
"risk_factors": [
"Risk of significant investment in an unproven technology",
"Lack of relevant expertise and resources within the company",
"Inability to scale up the technology to meet commercial demands"
],
"recommendation": "DO NOT RECOMMEND: Given the significant technical and resource requirements for developing a Gen-2 space domain awareness technology, it is unlikely that this digital marketing and branding agency would be able to successfully overcome these challenges. It may be more effective to explore partnerships with companies that have demonstrated expertise in this area.",
"duration_seconds": 28.350504,
"success": true,
"error": null
}

View File

@ -0,0 +1,167 @@
{
"id": "ddbd6d07",
"candidate_id": "",
"organization": "BlackSky Technology Inc.",
"timestamp": "2026-01-13T12:56:37.828196",
"company_profile": {
"name": "BlackSky Technology Inc.",
"description": "BlackSky Technology Inc. operates a proprietary constellation of low Earth orbit (LEO) satellites and the BlackSky Spectra platform, enabling rapid data collection and analysis for government and commercial clients worldwide.",
"website": null,
"headquarters": "Herndon, Virginia",
"employee_count": 340,
"founded": 2014,
"leadership": [
{
"name": null,
"title": null
}
]
},
"technology_profile": {
"name": "BlackSky Technology Inc.'s Gen-2 Space Domain Awareness",
"description": "BlackSky's Gen-2 technology is a space-based imaging system that provides fully-automated, low-latency non-Earth imaging (NEI) services for defense, intelligence, and commercial customers. It uses advanced sensors and processing algorithms to detect and track objects beyond the diffraction limit, improving Space Domain Awareness.",
"technical_approach": "BlackSky's Gen-2 technology employs a combination of advanced sensors and processing algorithms to detect and track objects in space. The system uses a high-resolution camera to capture images of objects in space, which are then processed using machine learning-based algorithms to identify and track the objects. The system also incorporates advanced data analytics and fusion capabilities to provide real-time insights and situational awareness.",
"trl_assessment": 6,
"key_capabilities": [
"High-resolution imaging capability",
"Low-latency processing for real-time insights"
],
"limitations": [
"Limited coverage of certain regions due to satellite orbit and sensor limitations",
"Dependence on advanced algorithms and data analytics may lead to errors or inaccuracies"
],
"competitive_advantage": "BlackSky's Gen-2 technology stands out from other space-based imaging systems due to its fully-automated, low-latency capabilities. The system's ability to detect and track objects beyond the diffraction limit provides a significant competitive advantage in terms of Space Domain Awareness.",
"related_patents": []
},
"contract_history": {
"total_contracts": 0,
"total_value": 0,
"primary_agencies": [],
"recent_contracts": [],
"sbir_awards": []
},
"other_offerings": [
{
"title": "BlackSky Technology (BKSY) Company Profile & Description",
"description": "BlackSky Technology Inc . (BKSY).Its products and services are used in national security, supply chain intelligence, crisis management, critical infrastructure monitoring, economic intelligence, and other applications.",
"url": "https://stockanalysis.com/stocks/bksy/company/"
},
{
"title": "Blacksky Technology Inc (BKSY) Quarterly and Annual... - CSIMarket",
"description": "Description of Blacksky Technology Inc 's Business Segments. BlackSky Technology Inc . is a company that operates primarily in the aerospace and geospatial intelligence sector, focusing on satellite technology and Earth observation capabilities.",
"url": "https://csimarket.com/stocks/segments.php?code=BKSY"
},
{
"title": "BlackSky Technology Inc . (BKSY) Stock Price... - Yahoo Finance",
"description": "Its products and services are used in national security, supply chain intelligence, crisis management, critical infrastructure monitoring, economic intelligence, and other applications. BlackSky Technology Inc . was founded in 2014 and is headquartered in Herndon, Virginia.",
"url": "https://finance.yahoo.com/quote/BKSY/"
},
{
"title": "blacksky 10k2024_withwrap",
"description": "Our Key Services and Products BlackSky generates revenue by selling On-Demand and Assured product and service offerings that support a broad range of applications including national security, supply chain intelligence, crisis management, critical infrastructure monitoring, economic...",
"url": "https://ir.blacksky.com/sec-filings/all-sec-filings/content/0001753539-24-000086/blacksky10k2024_withwrap.htm"
},
{
"title": "BlackSky Technology Inc . Stock Price: Quote, Forecast, Splits...",
"description": "Get the latest BlackSky Technology Inc . stock price (BKSY), historical data, earnings reports, stock split stock split history, analyst ratings, and forecasts from Perplexity Finance.",
"url": "https://www.perplexity.ai/finance/BKSY"
},
{
"title": "BlackSky Technology Inc (BKSY) Stock AI Rating & Analysis | Danelfin",
"description": "BlackSky Technology Inc (BKSY) AI stock analysis with rating, fundamental, technical & sentiment insights. BlackSky Technology Inc . is a company that specializes in the provision of geospatial intelligence, imagery and sophisticated data analytic products and services .",
"url": "https://danelfin.com/stock/BKSY"
},
{
"title": "BKSY | BlackSky Technology Inc . Stock Overview... | Barron's",
"description": "Blacksky Technology , Inc . is a space-based intelligence company, which engages in the business of delivering real-time imagery, analytics, and high-frequency monitoring of most critical and strategic locations, economic assets, and events.",
"url": "https://www.barrons.com/market-data/stocks/bksy"
},
{
"title": "BlackSky Technology (NYSE:BKSY) - Stock Analysis - Simply Wall St",
"description": "BlackSky Technology Inc . operates as a space-based intelligence company in North America, the Middle East, the Asia Pacific, and internationally. The company provides geospatial intelligence, imagery, and related data analytic products and services that include the development...",
"url": "https://simplywall.st/stocks/us/commercial-services/nyse-bksy/blacksky-technology"
},
{
"title": "BKSY - BlackSky Technology Inc Stock Price and Quote",
"description": "Blacksky Technology , Inc . is a space-based intelligence company, which engages in the business of delivering real-time imagery, analytics, and high-frequency monitoring of most critical and strategic locations, economic assets, and events.",
"url": "https://finviz.com/quote.ashx?t=BKSY"
},
{
"title": "BKSY Stock | BlackSky Technology Price, Quote... - TipRanks.com",
"description": "BlackSky Technology Inc . provides geospatial intelligence, imagery and related data analytic products and services , and mission systems that include the development, integration...",
"url": "https://www.tipranks.com/stocks/bksy"
}
],
"news_mentions": [
{
"title": "BlackSky Technology Inc (BKSY) Q3 2024 Earnings Report Preview: What To Expect",
"snippet": "BlackSky Technology Inc (NYSE:BKSY) is set to release its Q3 2024 earnings on Nov 7, 2024. The...",
"date": "2025-01-13T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/blacksky-technology-inc-bksy-q3-124421496.html"
},
{
"title": "BlackSky Technology Inc. (BKSY) Reports Q4 Loss, Tops Revenue Estimates",
"snippet": "BlackSky Technology Inc . (BKSY) delivered earnings and revenue surprises of 44.44% and 35.88%,...",
"date": "2024-01-14T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/blacksky-technology-inc-bksy-reports-133504990.html"
},
{
"title": "BlackSky Technology Inc. (NYSE:BKSY) Q4 2023 Earnings Call Transcript",
"snippet": "BlackSky Technology Inc . (NYSE:BKSY) Q4 2023 Earnings Call Transcript February 28, 2024 BlackSky ...",
"date": "2024-01-14T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/blacksky-technology-inc-nyse-bksy-145621196.html"
},
{
"title": "BlackSky Technology Inc. (BKSY): A Bull Case Theory",
"snippet": "We came across a bullish thesis on BlackSky Technology Inc . (BKSY) on Twitter by KevinLMak. In this article, we will summarize the bulls\u2019 thesis on BKSY....",
"date": "2025-01-13T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/blacksky-technology-inc-bksy-bull-145107083.html"
},
{
"title": "With 33% ownership in BlackSky Technology Inc. (NYSE:BKSY), institutional...",
"snippet": "Key Insights Institutions' substantial holdings in BlackSky Technology implies that they have...",
"date": "2025-02-17T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/33-ownership-blacksky-technology-inc-101144105.html"
},
{
"title": "BlackSky Technology Inc.",
"snippet": "Blacksky Technology, Inc. is a space-based intelligence company, which engages in the business of delivering real-time imagery, analytics, and high-frequency monitoring of most critical and strategic ...",
"date": "2025-12-20T06:00:00+00:00",
"url": "https://www.barrons.com/market-data/stocks/bksy/company-people?gaa_n=AWEtsqdjxNO1boSq2yn71CetU2-B5obRqccPlXgOTUXF5T6BeDyMf729bFwM&gaa_sig=oZO_b5enW4NJGDNP38XxJb-5FzOgZHyxXTzZ3yMGruRHeSLqw8dLq2BhJQZs95Nj8FZ3OZ5-h6WUTp2qP_mgjA%3D%3D"
},
{
"title": "BlackSky Technology Inc. (BKSY) Secures Defense Contract to Advance AI-Powered...",
"snippet": "We recently compiled a list of the Top 10 Trending AI News Updates That Investors Likely Missed. In...",
"date": "2025-02-17T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/blacksky-technology-inc-bksy-secures-124341918.html"
},
{
"title": "BlackSky Technology Inc. (BKSY): Among Stocks That Will Profit From AI",
"snippet": "We recently published a list of 10 Stocks That Will Profit From AI. In this article, we are going to...",
"date": "2025-04-18T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/blacksky-technology-inc-bksy-among-231506616.html"
},
{
"title": "BlackSky Technology Inc. (BKSY) Prepares to Launch First Gen-3 Satellite for...",
"snippet": "We recently compiled a list of the Top 10 Must-See AI News Updates for Investors. In this article,...",
"date": "2025-02-17T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/blacksky-technology-inc-bksy-prepares-174149374.html"
},
{
"title": "Why BlackSky Technology Inc. (BKSY) Is Skyrocketing So Far in 2025",
"snippet": "We recently compiled a list of the Why These 15 Hardware Stocks Are Skyrocketing So Far in 2025. In...",
"date": "2025-02-17T18:56:28+00:00",
"url": "https://finance.yahoo.com/news/why-blacksky-technology-inc-bksy-195859703.html"
}
],
"assessment": "BlackSky Technology Inc. is a strong candidate to address the capability gap in Space Domain Awareness for objects beyond the diffraction limit. Their Gen-2 technology, with a TRL of 6, demonstrates significant advancements in automated, low-latency non-Earth imaging services. The company's experience in providing rapid data collection and analysis for government and commercial clients worldwide suggests they have the necessary expertise to develop and integrate their technology into existing systems. However, further evaluation is needed to assess the scalability and reliability of their solution.",
"risk_factors": [
"Risk 1: Technical challenges in detecting and tracking objects beyond the diffraction limit",
"Risk 2: Limited contract history and revenue generation",
"Risk 3: Dependence on advanced sensors and processing algorithms, which may be subject to obsolescence or disruption"
],
"recommendation": "STRONGLY RECOMMEND: BlackSky Technology Inc. has demonstrated significant advancements in non-Earth imaging services, and their expertise in providing rapid data collection and analysis suggests they have the necessary capabilities to develop and integrate their technology into existing systems. While there are some risks associated with this partnership, we believe that BlackSky's Gen-2 technology has the potential to significantly improve Space Domain Awareness for objects beyond the diffraction limit.",
"duration_seconds": 29.711709,
"success": true,
"error": null
}

View File

@ -0,0 +1,804 @@
{
"id": "08b953e1",
"capability_gap": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"timestamp": "2026-01-13T12:10:11.647889",
"decomposition": {
"original_query": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability gap requires a technology that improves Space Domain Awareness (SDA) for objects beyond the diffraction limit, likely involving advanced imaging or sensing techniques to detect and track small or distant targets. This may involve novel optical or non-optical methods, such as super-resolution microscopy, compressive sensing, or machine learning-based image processing.",
"technical_domains": [
"Optics",
"Imaging",
"Sensing",
"Machine Learning",
"Signal Processing",
"Compressive Sensing"
],
"search_queries": [
"super resolution imaging for space domain awareness",
"compressive sensing algorithms for object detection beyond diffraction limit",
"machine learning-based image processing for small target tracking",
"novel optical techniques for improving space domain awareness",
"signal processing approaches for enhancing object detection in space"
],
"sbir_queries": [
"R&D on super-resolution microscopy for detecting small objects in space",
"Development of compressive sensing algorithms for real-time object tracking beyond diffraction limit",
"Machine learning-based image processing for improving SDA in space domain awareness applications"
],
"patent_queries": [
"Patent search: 'super resolution imaging' AND 'space domain awareness'",
"Patent search: 'compressive sensing' AND 'object detection' AND 'optics'"
],
"news_queries": [
"Recent advancements in super-resolution microscopy for space exploration",
"Machine learning-based image processing improves object tracking in space"
],
"keywords": [
"super resolution",
"compressive sensing",
"machine learning",
"image processing",
"signal processing"
],
"exclusions": [
"diffraction limit",
"optical telescopes",
"traditional imaging techniques"
],
"target_trl_range": [
4,
7
],
"success": true,
"error": null
},
"candidates": [
{
"id": "08b953e1-0",
"title": "Real-Time Target Detection Method Based on Lightweight Convolutional Neural Network - PMC",
"organization": "Unknown",
"description": "The traditional target detection process is as follows: first, multiple image regions with possible target objects are selected by sliding windows of different sizes; then, feature extraction methods such as SIFT (scale-invariant feature transform) and HOG (histogram of oriented gradient) are used to transform the information contained in the region into feature vectors and then classify them, commonly using the support vector machine (SVM) classifier.",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC9426345/",
"score": 0.6575,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-1",
"title": "AFOSR - Physical Sciences > WIN THE FUTURE > Display",
"organization": "Unknown",
"description": "... Space Force operations, from the perspective of sensing, characterizing, and managing the operational environment as well as developing advanced ...",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://www.afrl.af.mil/About-Us/Fact-Sheets/Fact-Sheet-Display/Article/2282129/afosr-physical-sciences/",
"score": 0.6575,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-2",
"title": "Adaptive quantum accelerated imaging for space domain awareness",
"organization": "Unknown",
"description": "February 12, 2024 - Especially, as the scene gets more complex, QAI shows consistent performance whereas DI tends to show performance degradation. Lastly, we present an initial successful result of QAI estimation of the scene with turbulence. Overall, our findings highlight the significant potential and superiority of QAI for high-precision astronomical imaging in space domain awareness.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/html/2402.08047v1",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-3",
"title": "[2402.08047] Adaptive quantum accelerated imaging for space domain awareness",
"organization": "Unknown",
"description": "February 12, 2024 - From: Hyunsoo Choi [view email] [v1] Mon, 12 Feb 2024 20:27:36 UTC (3,157 KB) ... View a PDF of the paper titled Adaptive quantum accelerated imaging for space domain awareness , by Hyunsoo Choi and 2 other authors",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/2402.08047",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-4",
"title": "[PDF] Photoacoustic imaging beyond the acoustic diffraction-limit with dynamic speckle illumination and sparse joint support recovery - arXiv",
"organization": "Unknown",
"description": "Here, we show that by adapting an advanced computational reconstruction algorithm based on a compressed-sensing framework it is possible to obtain an ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/pdf/1612.08278",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-5",
"title": "Deep learning-based lightweight radar target detection method | Journal of Real-Time Image Processing",
"organization": "Unknown",
"description": "May 27, 2023 - For target detection tasks in complicated backgrounds, a deep learning-based radar target detection method is suggested to address the problems of a high false alarm rate and the difficulties of achieving high-performance detection by conventional methods. Considering the issues of large parameter count and memory occupation of the deep learning-based target detection models, a lightweight target detection method based on improved YOLOv4-tiny is proposed.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/article/10.1007/s11554-023-01316-5",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-6",
"title": "\"Techniques for Improved Space Object Detection Performance",
"organization": "Unknown",
"description": "Becker, David J., \" Techniques for Improved Space Object Detection Performance from Ground-Based Telescope Systems Using Long and Short Exposure ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://scholar.afit.edu/etd/1915/",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-7",
"title": "Diffraqtion Secures $4.2 Million to Deploy Quantum Camera Constellations for SDA \u2013 SatNews",
"organization": "Unknown",
"description": "The capital will accelerate the development of the company\u2019s novel \u201c quantum camera \u201d technology, designed to provide high-resolution imaging and Space Domain Awareness (SDA) capabilities that bypass traditional optical limits.",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://news.satnews.com/2026/01/13/diffraqtion-secures-4-2-million-to-deploy-quantum-camera-constellations-for-sda/",
"score": 0.62,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-8",
"title": "(PDF) Adaptive quantum accelerated imaging for space domain awareness",
"organization": "Unknown",
"description": "August 1, 2024 - Our SSRI algorithm allows existing telescope-based optical/infrared imaging systems to overcome the extreme limit of sub-Rayleigh, low SNR source distributions , potentially impacting a wide range of fields, including passive thermal imaging, ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.researchgate.net/publication/382490635_Adaptive_quantum_accelerated_imaging_for_space_domain_awareness",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-9",
"title": "BlackSky secures HEO contract for Space Domain Awareness and Non-Earth Imaging",
"organization": "Unknown",
"description": "As part of the collaboration, BlackSky will provide high-resolution imagery from its mid-inclination orbit satellites to HEO . These capabilities will enhance NEI data collection, particularly over the middle latitudes of Earth.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.spacewar.com/reports/BlackSky_Secures_Contract_with_HEO_to_Enhance_Space_Domain_Awareness_and_Non_Earth_Imaging_999.html",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-10",
"title": "Compressive imaging beyond the sensor's physical resolution via coded exposure combined with time-delay integration - ScienceDirect",
"organization": "Unknown",
"description": "We propose a high-resolution compressive imaging framework that implements spatial encoding by combining coded exposure with time-delay integration.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/abs/pii/S0143816623000209",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-11",
"title": "Domain Ship Detection on Spaceborne Optical Image",
"organization": "Unknown",
"description": "However, most of the popular techniques for ship detection from optical spaceborne imageshave two shortcomings: 1) Compared with infrared and ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://matlabprojects.org/domain-ship-detection-on-spaceborne-optical-image/",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-12",
"title": "A Novel Technique for Realistic Uncertainty Characterization In",
"organization": "Unknown",
"description": "... applies established propagation methods without invoking extra computation resources, the technique is appropriate for application in realistic space ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://amostech.space/year/2025/a-novel-technique-for-realistic-uncertainty-characterization-in-dynamic-leo-environment/",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-13",
"title": "2024 Technical Papers - AMOS Conference",
"organization": "Unknown",
"description": "Passive Radio Frequency Techniques & Demonstration for Space Domain Awareness Zachary Leffke, Virginia Tech National Security Institute; Kevin ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://amostech.com/2024-technical-papers/",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-14",
"title": "How we track near-Earth asteroids",
"organization": "Unknown",
"description": "Early this year, a surprise space rock made headlines around the globe when the International Asteroid Warning Network sounded its highest alarm since...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.yahoo.com/news/articles/track-near-earth-asteroids-162011503.html",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-12-14T18:06:28+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-15",
"title": "Advancing Image Super-resolution Techniques in Remote Sensing: A Comprehensive Survey",
"organization": "Unknown",
"description": "May 29, 2025 - The MRSISR method [224] proposes a multi-frame super-resolution framework that uses temporal information to optimize video satellite image reconstruction. Some other examples are the Enlighten-GAN method [225] and recent work [226] which both integrate spatial image modality and frequency domain modality information, and optimize the RSISR algorithm by combining perceptual loss with pixel reconstruction loss.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/html/2505.23248v1",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-16",
"title": "SUPER-RESOLUTION OF MULTISPECTRAL SATELLITE IMAGES USING",
"organization": "Unknown",
"description": "VDSR to Pl\u00e9iades as well as SPOT images. Here again only \u00b7 three bands with an 8-bit depth are used, therefore discarding \u00b7 spectral information available from the near infrared band as \u00b7 well as the higher spatial resolution that the panchromatic band \u00b7 would be able to offer. In Lanaras et al. (2018) Sentinel-2 bands \u00b7 of resolution 20 m and 60 m are super-resolved to 10 m using",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/pdf/2002.00580",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-17",
"title": "Telescope imaging beyond the Rayleigh limit in extremely low SNR",
"organization": "Unknown",
"description": "January 17, 2024 - Our SSRI algorithm allows existing telescope-based optical/infrared imaging systems to overcome the extreme limit of sub-Rayleigh, low SNR source distributions, potentially impacting a wide range of fields, including passive thermal imaging, remote sensing, and space domain awareness. ... Traditional super-resolution techniques were developed for the field of microscopy where the sample/object to be imaged is accessible [1]. Thus, imaging resolution can be enhanced by labeling with unique light emitters [2, 3, 4], using patterned illumination sources, or engineering nano-scatterers in proximity to the object of interest [5] (e.g., metamaterials near the object [6, 7]).",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/html/2310.10633v2",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-18",
"title": "Object tracking in infrared images using a deep learning model and a target-attention mechanism | Complex & Intelligent Systems",
"organization": "Unknown",
"description": "September 17, 2022 - Then, a module that efficiently initializes the target model is integrated. Zhang et al. [16] suggested an RGB-infrared fusion tracking strategy using visible and infrared images. To this end, a fully convolutional network based on the Siamese Networks (SiamFT) was suggested. In the first step, infrared and visible images are processed by an infrared network and a visible network.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/article/10.1007/s40747-022-00872-w",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-19",
"title": "Ultimate resolution limits of speckle-based compressive imaging - Optica Publishing Group",
"organization": "Unknown",
"description": "Jan 25, 2021 \u00b7 Here we present fundamental resolution limits of noiseless compressive imaging via sparsity constraints, speckle illumination and single-pixel detection.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://opg.optica.org/abstract.cfm?uri=oe-29-3-3943",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-20",
"title": "Small Object Detection and Tracking: A Comprehensive Review | MDPI",
"organization": "Unknown",
"description": "August 3, 2023 - A convolutional long short-term memory network learns informative appearance change in the detection process, enabling correlation-based tracking over its output. Another approach was proposed by Marvasti-Zadeh et al. [60], which used a two-stream multitask network and an offline proposal approach to track aerial small objects. The network, aided by the proposed proposal generation strategy, leverages context information to learn a generalized target model and handle viewpoint changes and occlusions.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.mdpi.com/1424-8220/23/15/6887",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-21",
"title": "Full article: Using deep learning in an embedded system for real-time target detection based on images from an unmanned aerial vehicle: vehicle detection as a case study",
"organization": "Unknown",
"description": "The received image is quickly processed by the YOLOv2 algorithm to identify the target . The response speed of the algorithm for real-time tracking needs to be faster than that of traditional methods such that it can track the target without ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.tandfonline.com/doi/full/10.1080/17538947.2023.2187465",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-22",
"title": "Image Target Detection and Recognition Method Using Deep Learning - Sun - 2022 - Advances in Multimedia - Wiley Online Library",
"organization": "Unknown",
"description": "July 7, 2022 - Different from the traditional image detection methods, the target detection method based on R-CNN takes the simplest image as the target object . This method first needs to obtain candidate regions from the image to be detected and set all candidate ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://onlinelibrary.wiley.com/doi/10.1155/2022/4751196",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-23",
"title": "Object Tracking based on Deep Learning | Virgilio",
"organization": "Unknown",
"description": "GOTURN involves a convolution network based on the input of a pair of images using the ALOV300+ video sequence set and the ImageNet sensing data set, and generates the position change from the previous frame in the detection area to obtain the target's position on the current frame.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://virgili0.github.io/Virgilio/inferno/computer-vision/object-tracking.html",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-24",
"title": "AI Detection, Target Tracking, and Computational Imaging on Embedded Processors | OEM.FLIR.com",
"organization": "Unknown",
"description": "Pelee incorporates a new feature fusion block (FFB) based on the Path Aggregation Feature Pyramid Network (PANet). Designed with small target detection in mind, the new FFB adopts a late fusion strategy, which aims to ensure that each feature map of the output retains the detailed information learned from the shallow layers and acquires high-level semantic features.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://oem.flir.com/learn/discover/deploying-ai-object-detection--target-tracking-and-computational--imaging-algorithms-on-embedded-processors/",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-25",
"title": "Now You See Me Super-Resolution Microscopy",
"organization": "Unknown",
"description": "When single-molecule super-resolution microscopes were first commercialized some 15 years ago, they made headlines for their ability to resolve individual molecules and structures at the nanometer scale, well beyond the limits of traditional light microscopy.",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.genengnews.com/topics/translational-medicine/now-you-see-me-super-resolution-microscopy/",
"score": 0.45601657983840554,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-12-04T00:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-26",
"title": "Canada needs agency to manage public UFO sightings, says new federal report",
"organization": "Unknown",
"description": "Canada needs a transparent, public-facing agency in charge of managing reports of mystifying things...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.yahoo.com/news/canada-needs-agency-manage-public-122930138.html",
"score": 0.45601657983840554,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-07-17T18:06:28+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-27",
"title": "US8452176B2 - Reachability matrices spanning multiple domains",
"organization": "Unknown",
"description": "... optical networks, and more specifically relates to a method and apparatus for generating reachability matrices to aid in routing across multiple ...",
"source_type": "patent",
"source": "DuckDuckGo",
"url": "https://patents.google.com/patent/US8452176B2/en",
"score": 0.4475,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-28",
"title": "Super-resolution imaging via aperture modulation and intensity extrapolation | Scientific Reports",
"organization": "Unknown",
"description": "October 12, 2018 - SR technologies based on image reconstruction usually use a single or a sequence of low-resolution images to produce a high-resolution image. This kind of SR techniques attempt to retrieve the lost image details caused by insufficient sampling of imaging sensor, camera movement, ambient light, imperfect position of CCD camera, and so on13. Typically, this kind of SR methods can be divided into three groups: frequency domain methods, spatial domain methods and wavelet domain methods.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/s41598-018-33416-9",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-29",
"title": "Endo-microscopy beyond the Abbe and Nyquist limits | Light: Science & Applications",
"organization": "Unknown",
"description": "May 7, 2020 \u00b7 Compressive sensing enables signal acquisition with a large reduction in sampling for signals that have a sparse representation, vastly reducing ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/s41377-020-0308-x",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-30",
"title": "[PDF] CS-Video: Algorithms, Architectures, and Applications for Compressive Video Sensing - Computer Systems Laboratory",
"organization": "Unknown",
"description": "Part-based models have had remarkable success over the past decade in object detection and classification problems. The key enabler of part-based inference ... Missing: diffraction | Show results with: diffraction",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.csl.cornell.edu/~studer/papers/17SPMAG_videocs.pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-31",
"title": "Deep learning for compressive sensing: a ubiquitous systems perspective | Artificial Intelligence Review - Springer Link",
"organization": "Unknown",
"description": "Sep 7, 2022 \u00b7 Compressive sensing (CS) is a mathematically elegant tool for reducing the sensor sampling rate, potentially bringing context-awareness to a ... Missing: diffraction | Show results with: diffraction",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/article/10.1007/s10462-022-10259-5",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-32",
"title": "[PDF] Pitfalls and possibilities of radar compressive sensing",
"organization": "Unknown",
"description": "In this paper, we consider the application of compressive sensing (CS) to radar remote sensing applications. We survey a suite of practical system-level ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arrc.ou.edu/~goodman/pubs/AO_15_Pitfalls_possibilities_radar_CS.pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-33",
"title": "[PDF] Compressive Image Super-resolution",
"organization": "Unknown",
"description": "Abstract\u2014 This paper proposes a new algorithm to generate a super-resolution image from a single, low-resolution input without the use of a training data ... Missing: detection diffraction",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://web.ece.ucsb.edu/~psen/Papers/Asilomar09_CompressiveSuperRes.pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-34",
"title": "Multi-target detection and tracking based on CRF network and spatio-temporal attention for sports videos | Scientific Reports",
"organization": "Unknown",
"description": "February 25, 2025 - This enhances the robustness of object detection, especially in cases of varying illumination or high levels of image noise. We introduce a spatiotemporal attention mechanism within this framework, allowing the network to focus on time steps and spatial locations relevant to the current target. This reduces interference between objects, effectively handling occlusions and drift caused by interactions among objects. The rest of this article includes the following. \u201cRelated work\u201d presents target detection and machine learning methods, and \u201cProposed method\u201d presents the proposed method.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/s41598-025-89929-7",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-35",
"title": "AI in Pro AV: Here and Now",
"organization": "Unknown",
"description": "AI Scientists. It might be the hottest buzzword in Pro AV right now, but manufacturers have been incorporating AI in products and services for some time....",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.yahoo.com/tech/ai-pro-av-now-070316035.html",
"score": 0.4205554811831748,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2024-01-14T18:06:28+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-36",
"title": "Super-resolution imaging - Wikipedia",
"organization": "Unknown",
"description": "1 month ago - These methods use other parts of the low resolution images, or other unrelated images, to guess what the high-resolution image should look like. Algorithms can also be divided by their domain: frequency or space domain. Originally, super-resolution methods worked well only on grayscale images, but researchers have found methods to adapt them to color camera images.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/Super-resolution_imaging",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-37",
"title": "Low-resolution compressed sensing and beyond for communications and sensing: Trends and opportunities - ScienceDirect",
"organization": "Unknown",
"description": "This survey paper examines recent advancements in low-resolution signal processing, emphasizing quantized compressed sensing. Missing: diffraction | Show results with: diffraction",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0165168425001343",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-38",
"title": "High\u2010speed 4\u2010dimensional scanning transmission electron microscopy using compressive sensing techniques - Wiley Online Library",
"organization": "Unknown",
"description": "May 6, 2024 \u00b7 Here we show that compressive sensing allows 4-dimensional (4-D) STEM data to be obtained and accurately reconstructed with both high-speed ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://onlinelibrary.wiley.com/doi/10.1111/jmi.13315",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-39",
"title": "Explore Advanced Object Tracking in Computer Vision",
"organization": "Unknown",
"description": "August 26, 2025 - The tracking-by-detection method involves an independent detector that is applied to all image frames to obtain likely detections, and then a tracker, which is run on the set of detections .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://viso.ai/deep-learning/object-tracking/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-40",
"title": "(PDF) Multi-Scale Frequency-Aware Transformer for Pipeline Leak",
"organization": "Unknown",
"description": "... consists of four core components: a frequency-aware embedding layer that achieves joint representation learning of time-frequency dual- domain ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.researchgate.net/publication/396643311_Multi-Scale_Frequency-Aware_Transformer_for_Pipeline_Leak_Detection_Using_Acoustic_Signals",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-41",
"title": "AFSPC A5CS SSA Activities \u2013 AMOS Technical Library",
"organization": "Unknown",
"description": "The ever- growing population of resident space objects necessitates improved Space Situational Awareness (SSA) to ensure safety of flight and enable ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://amostech.space/year/2011/afspc-a5cs-ssa-activities/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-42",
"title": "CVPR 2023 Schedule",
"organization": "Unknown",
"description": "OmniLabel: Infinite label spaces for semantic understanding via natural language ... and Challenge on Computer Vision in the Built Environment for ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://cvpr.thecvf.com/virtual/2023/calendar",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-43",
"title": "Nebula Public Library | The knowledge bank of ESA\u2019s R&D",
"organization": "Unknown",
"description": "0- Space Situational Awareness ... 1- Space Situational Awareness ... 39- Space Situational Awareness",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://nebula.esa.int/advanced-filtering",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-44",
"title": "The 30 Best Work-From-Home Jobs in 2024",
"organization": "Unknown",
"description": "As more businesses continue to embrace a remote- work model, work-from-home job openings continue to increase. Plus, advances in generative AI technology...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.aol.com/30-best-home-jobs-2024-125700220.html",
"score": 0.3860165798384056,
"relevance_score": 0.0,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-01-13T18:06:28+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "08b953e1-45",
"title": "6 interesting facts about how web designers are using AI",
"organization": "Unknown",
"description": "AI technology has made web design more accessible than ever. But how has it changed the lives of the...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.yahoo.com/tech/6-interesting-facts-designers-using-144236867.html",
"score": 0.3860165798384056,
"relevance_score": 0.0,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-01-13T18:06:28+00:00",
"award_id": null,
"patent_number": null
}
],
"source_stats": {
"sbir": 0,
"patents": 0,
"contracts": 0,
"web": 20,
"news": 7
},
"total_results_found": 46,
"search_duration_seconds": 247.928989,
"success": true,
"error": null
}

View File

@ -0,0 +1,868 @@
{
"id": "5c750d1f",
"capability_gap": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"timestamp": "2026-01-13T12:46:22.301613",
"decomposition": {
"original_query": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability gap requires a technology that improves Space Domain Awareness (SDA) for objects beyond the diffraction limit, which is typically achieved through optical or non-optical means. This implies a need for innovative sensing or imaging techniques to detect and track objects at very small scales.",
"technical_domains": [
"Optics",
"Photonics",
"Imaging",
"Sensing",
"Signal Processing",
"Machine Learning"
],
"search_queries": [
"optical imaging beyond diffraction limit",
"(small-scale) object detection using non-optical methods",
"novel sensing techniques for space domain awareness",
"imaging and tracking of small objects in space",
"advanced signal processing for SDA applications"
],
"sbir_queries": [
"R&D on novel optical or non-optical sensing modalities for detecting objects beyond diffraction limit",
"Development of machine learning-based algorithms for object detection and tracking in space domain awareness applications"
],
"patent_queries": [
"Patent search: 'optical imaging beyond diffraction limit' AND 'space domain awareness'",
"Patent search: 'novel sensing techniques' AND 'small-scale object detection'"
],
"news_queries": [
"Recent advancements in space domain awareness technology",
"Industry news: innovative sensing and imaging solutions for small-scale object detection"
],
"keywords": [
"optics",
"photonics",
"imaging",
"sensing",
"signal processing",
"machine learning"
],
"exclusions": [
"diffraction limit",
"large-scale objects",
"traditional optical methods"
],
"target_trl_range": [
4,
7
],
"success": true,
"error": null
},
"candidates": [
{
"id": "5c750d1f-0",
"title": "MDA Space to deliver advanced space domain awareness for Canada\u2019s Defence",
"organization": "Unknown",
"description": "\u30fbMDA Space (TSX:MDA) and ThothX Group have been selected by Canada\u2019s Department of National Defence to deliver advanced Space Domain Awareness (SDA) services, enhancing national space security \u30fbThe ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.msn.com/en-ca/money/topstories/mda-space-to-deliver-advanced-space-domain-awareness-for-canada-s-defence/ar-AA1NAARW?ocid=BingNewsVerp",
"score": 0.6660165798384056,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-09-30T05:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-1",
"title": "Advance Space Domain Awareness",
"organization": "Unknown",
"description": "NORTHRIDGE, Calif., Sept. 24, 2025 /PRNewswire/ -- Aret\u00e9 and Turion Space have announced a partnership to fly Aret\u00e9's next-generation event camera on a Turion DROID.alpha\u2122 spacecraft as a hosted payload, scheduled for launch in 2027. This mission ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.morningstar.com/news/pr-newswire/20250924ph82698/advance-space-domain-awareness",
"score": 0.6660165798384056,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-09-24T19:16:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-2",
"title": "BlackSky Signs Seven-Figure Space Domain Awareness Expansion Contract with HEO for Fully Automated Non-Earth Imaging Missions",
"organization": "Unknown",
"description": "HERNDON, Va.--(BUSINESS WIRE)--BlackSky Technology Inc. (NYSE: BKSY) signed a seven-figure Gen-2 space domain awareness expansion contract with HEO to provide fully-automated low-latency non-Earth imaging (NEI) services for defense, intelligence and ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.businesswire.com/news/home/20250819468601/en/BlackSky-Signs-Seven-Figure-Space-Domain-Awareness-Expansion-Contract-with-HEO-for-Fully-Automated-Non-Earth-Imaging-Missions",
"score": 0.6660165798384056,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-08-19T08:30:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-3",
"title": "MDA Space to deliver advanced space domain awareness for Canada's Defence",
"organization": "Unknown",
"description": "\u30fbMDA Space (TSX:MDA) and ThothX Group have been selected by Canada's Department of National Defence to deliver advanced Space Domain Awareness (SDA) services, enhancing national space security \u30fbThe solution combines ThothX's Earthfence Radar ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.msn.com/en-ca/money/topstories/mda-space-to-deliver-advanced-space-domain-awareness-for-canada-s-defence/ar-AA1NAARW",
"score": 0.6660165798384056,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-09-30T11:37:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-4",
"title": "Hybrid Bound States in the Continuum beyond Diffraction Limit",
"organization": "Unknown",
"description": "It is apparent, therefore, that the availabil-ity of at-\u0393 BICs lying beyond the diffraction limit would greatly mitigate these limitations and open up this key spectral domain to new optical devices and applications.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/pdf/2601.06983",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-5",
"title": "Hybrid Sensing for Near-Earth Space Domain Awareness ...",
"organization": "Unknown",
"description": "Thus, monitoring LEO objects for space domain awareness and space traffic management has become increasingly imperative. In this paper, we use the concept of limited-CDF (cumulative distribution function) surface and mutual information for designing sensor tasking...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/article/10.1007/s40295-025-00546-y",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-6",
"title": "This New Imaging Technology Breaks the Rules of Optics",
"organization": "Unknown",
"description": "By replacing physical precision with computational optimization, MASI sidesteps the diffraction limit and other constraints that have traditionally governed optical imaging systems.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedaily.com/releases/2026/01/260110211214.htm",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-7",
"title": "PDF OpticalNet: An Optical Imaging Dataset and Benchmark Beyond the ...",
"organization": "Unknown",
"description": "We introduce a general optical imaging dataset beyond the diffraction limit and demonstrate that deep learning-based computer vision methods can effectively translate diffrac-tion images into object images at subwavelength resolution.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://openaccess.thecvf.com/content/CVPR2025/papers/Wang_OpticalNet_An_Optical_Imaging_Dataset_and_Benchmark_Beyond_the_Diffraction_CVPR_2025_paper.pdf",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-8",
"title": "PDF Compact optical device achieves super-resolution imaging beyond the ...",
"organization": "Unknown",
"description": "Compact optical device achieves super-resolution imaging beyond the diffraction limit March 10 2025 Schematic of the planar device for producing dark- field speckle patterns. (Image from USTC).",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://phys.org/news/2025-03-compact-optical-device-super-resolution.pdf",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-9",
"title": "Breaking the Diffraction Limit: The Photonic-Optic Meta ... - Medium",
"organization": "Unknown",
"description": "The implications of a diffraction -free optical system are profound. With the ability to image beyond conventional limits , the POML has the potential to transform multiple fields:",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://medium.com/@00gentrycw/breaking-the-diffraction-limit-the-photonic-optic-meta-lattice-poml-refined-and-the-future-of-4eaf618d4bf0",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-10",
"title": "Optical Focusing beyond the Diffraction Limit via Vortex-Assisted ...",
"organization": "Unknown",
"description": "Abstract Focusing light beyond the diffraction limit is among the greatest challenges in optical sciences, which would revolutionize many optical technologies from imaging and optical trapping to light delivery and photomedicine.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://pubs.acs.org/doi/10.1021/acsphotonics.0c00109",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-11",
"title": "Improved Sensitivity for Space Domain Awareness Observations with...",
"organization": "Unknown",
"description": "The system was developed with space domain awareness in mind, but can be used for aircraft and nearer objects. We describe the physical and signal processing architecture and the results of a system test using VHF-band broadcast transmitters as illuminators.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.researchgate.net/publication/360608385_Improved_Sensitivity_for_Space_Domain_Awareness_Observations_with_the_Murchison_Widefield_Array",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-12",
"title": "Vyoma\u2019s first Space Domain Awareness satellite has... | Presseportal",
"organization": "Unknown",
"description": "Vyoma, a Germany-based company providing Space Domain Awareness (SDA) capabilities, has launched its pioneering surveillance satellite, Flamingo-1, on Sunday, January 11th, 2026 from Vandenberg Space Force Base, California, USA.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.presseportal.de/en/pm/175564/6195499",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-13",
"title": "AI in Orbit: How Space Situational Awareness Is Evolving with Smart...",
"organization": "Unknown",
"description": "The Space Situational Awareness (SSA) industry is rapidly gaining strategic importance as the number of satellites, space debris, and near-Earth activities grows exponentially.1. Exponential Growth in Space Traffic. The space domain has entered a new era of mass deployment",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.linkedin.com/pulse/ai-orbit-how-space-situational-awareness-evolving-xq5nf",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-14",
"title": "China\u2019s StarDetect raises Series A funding to expand on-orbit computing and space domain awareness services",
"organization": "Unknown",
"description": "HELSINKI \u2014 Chinese commercial firm StarDetect has raised early funding as it seeks to establish itself as a provider of space domain awareness and satellite computing solutions. StarDetect, which ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://spacenews.com/chinas-stardetect-raises-series-a-funding-to-expand-on-orbit-computing-and-space-domain-awareness-services/",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-10-30T05:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-15",
"title": "Inside the new age of space domain awareness",
"organization": "Unknown",
"description": "In this episode of Space Minds, host David Ariosto speaks with Doug Hendrix, co-founder and CEO of ExoAnalytic Solutions \u2014 a company born from three physicists' passion for solving hard problems in space. Hendrix shares how ExoAnalytic grew from ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://spacenews.com/inside-the-new-age-of-space-domain-awareness/",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-10-30T00:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-16",
"title": "Space Force goes commercial for space domain awareness",
"organization": "Unknown",
"description": "The Space Force has been working closely with private investment firms to get a leg up on emerging technologies. The result is a \"pool\" of companies with products the service wants, a senior defense official says. \"Another innovation influence for us ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.washingtontechnology.com/contracts/2025/09/space-force-goes-commercial-space-domain-awareness/407825/?oref=ng-author-river",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-09-01T23:59:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-17",
"title": "HEO and Satellogic Expand Agreement with Exclusive Access to Non-Earth Imagery for Space Domain Awareness",
"organization": "Unknown",
"description": "NEW YORK, Aug. 04, 2025 (GLOBE NEWSWIRE) -- Satellogic, Inc. (NASDAQ: SATL), a leader in satellite manufacturing and high-resolution Earth observation data, today announced an expanded agreement with HEO, the world's leading commercial provider of non ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.nasdaq.com/press-release/heo-and-satellogic-expand-agreement-exclusive-access-non-earth-imagery-space-domain",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-08-04T20:05:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-18",
"title": "Surpassing the Diffraction Limit in Label-Free Optical Microscopy",
"organization": "Unknown",
"description": "While pushing a complex unlabeled microscopy image beyond the diffraction limit to single-molecule resolution and capturing dynamic processes at biomolecular time scales is widely regarded as unachievable, recent experimental strides suggest that elements of this vision might be already in place.",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://pubmed.ncbi.nlm.nih.gov/39429866/",
"score": 0.5175,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-19",
"title": "Seeing without touching: weak-disturbance imaging and ... - Nature",
"organization": "Unknown",
"description": "As advances in photonics continue to push the boundaries of physical limits , a fundamental question is being revisited: What is the ultimate limit of how tightly light can be confined? Beyond this ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/s41377-025-02110-7",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-20",
"title": "Detection of Multiclass Objects in Optical Remote... | IEEE Xplore",
"organization": "Unknown",
"description": "Object detection in complex optical remote sensing images is a challenging problem due to the wide variety of scales , densities, and shapes of object instances.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://ieeexplore.ieee.org/document/8573851",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-21",
"title": "(PDF) MDA-RepXNet: Multi- Scale Object Detection with...",
"organization": "Unknown",
"description": "Object detection becomes a challenge due to diversity of object scales . In general, modern object detectors use feature pyramid to learn multi- scale representation for better results.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.academia.edu/145756291/MDA_RepXNet_Multi_Scale_Object_Detection_with_Multi_Dimensional_Information",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-22",
"title": "[1709.04666] Differentiating Objects by Motion: Joint Detection and...",
"organization": "Unknown",
"description": "To learn them and thereby realize small object detection, we present a neural model called the Recurrent Correlational Network, where detection and tracking are jointly performed over a multi-frame representation learned through a single, trainable, and end-to-end network.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/1709.04666",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-23",
"title": "(PDF) The Magdalena Ridge Observatory's 2.4-meter Fast- Tracking ...",
"organization": "Unknown",
"description": "4. Tracked image taken with the 2.4-meter telescope of newly generated space debris: the tool-bag lost by a shuttle astronaut while servicing the International Space Station on November 19, 2008.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.academia.edu/100114799/The_Magdalena_Ridge_Observatorys_2_4_meter_Fast_Tracking_Telescope_Space_Situational_Awareness_and_the_Near_Earth_Environment",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-24",
"title": "7 Space Science And Technology Breakthroughs To Watch For In 2026",
"organization": "Unknown",
"description": "As space scales into daily infrastructure, which moments in 2026 will still feel new -and which will quietly change everything?",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.forbes.com/sites/charlottekiang/2026/01/01/7-space-science-and-technology-breakthroughs-to-watch-for-in-2026/",
"score": 0.48499999999999993,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2026-01-02T00:05:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-25",
"title": "What You Missed on The Vector Episode 21: \"Safeguarding the Space ...",
"organization": "Unknown",
"description": "Space Domain Awareness : Shaw discusses the critical need to modernize space domain awareness systems, moving from cataloging objects to active tracking of potential threats.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.spacefoundation.org/2024/11/20/what-you-missed-on-the-vector-episode-21-safeguarding-the-space-domain-national-security-awareness/",
"score": 0.48055555555555557,
"relevance_score": 0.4444444444444444,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-26",
"title": "Numerical Analysis of Structured Illumination Microscopy: Influence of ...",
"organization": "Unknown",
"description": "Structured illumination microscopy (SIM) enables optical imaging beyond the diffraction limit by heterodyning high spatial frequencies into the observable passband of a conventional microscope. In this work, a complete numerical framework is developed to investigate how illumination pattern geometry and structural parameters influence image formation and resolution enhancement in two ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0030402626000082",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-27",
"title": "Sci-Hub: A Novel Sensing Nodes and Decision Node Selection...",
"organization": "Unknown",
"description": "Based on the standard optimization techniques , the optimal conditions are obtained and a closed-form equation is expressed to determine the priority of nodes for spectrum sensing .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://sci-hub.box/meta/10.1109/jsen.2013.2240900",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-28",
"title": "Polytechnique Montreal - Cited by 177 - Space Missions",
"organization": "Unknown",
"description": "Polytechnique Montreal. Verified email at keyhanX.com. Space Missions. Articles Cited by Public access Co-authors. Title.2017. Temporal Spectrum Analysis for Multi-Constellation Space Domain Awareness .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://scholar.google.com/citations?user=GLn4k0UAAAAJ&hl=en",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-29",
"title": "Aerial Object Detection and Tracking",
"organization": "Unknown",
"description": "Includes a custom tracker to obtain object trajectories. Numerous customizable parameters, such as expected area filter and minimum velocity filter. Generates a report with images and CSV files of detected objects and trajectories, enabling subsequent video analysis.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.linkedin.com/pulse/aerial-object-detector-tracker-cambrian-intelligence-iek0f",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-30",
"title": "Introducing SAHI and Sliding Window Functions for Small Object ...",
"organization": "Unknown",
"description": "Small object detection is a difficult task in the computer vision space focused on developing techniques that can enhance detection of relatively small features within larger images .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://datature.io/blog/sahi-and-sliding-window-functions-for-small-object-detections",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-31",
"title": "Top Space Technology Trends and Aerospace Innovations Revolutionizing the World Today",
"organization": "Unknown",
"description": "Understanding the latest space technology trends and aerospace innovations transforming exploration, communication, and industries worldwide, driving the future of space and Earth's development. Pixabay, WikiImages Space technology has rapidly evolved ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.techtimes.com/articles/313270/20251211/top-space-technology-trends-aerospace-innovations-revolutionizing-world-today.htm",
"score": 0.45601657983840554,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-12-11T17:34:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-32",
"title": "A survey of small object detection based on... | springerprofessional.de",
"organization": "Unknown",
"description": "datasets used for small object detection in aerial images, along with a comparison of the performance of various algorithms on these datasets, is provided. This helps in understanding the current advancements and challenges in the field.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.springerprofessional.de/en/a-survey-of-small-object-detection-based-on-deep-learning-in-aer/50753958",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-33",
"title": "LMSOE-Net: lightweight multi- scale small object enhancement...",
"organization": "Unknown",
"description": "Detecting objects of varying scales , especially small ones, in Unmanned Aerial Vehicle (UAV) aerial images across diverse scenarios and viewpoints using onboard edge devices is a major challenge in computer vision. To tackle this issue, we propose a lightweight multi- scale small object ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/article/10.1007/s40747-025-01971-0",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-34",
"title": "Self-Mimic Learning for Small - scale Pedestrian Detection",
"organization": "Unknown",
"description": "pedestrian detection ; small - scale object detection ; mimic learning.we use the 1\u00d7 training set for demonstrating the effectiveness of SML on small - scale pedestrians and the 10\u00d7 training sets for comparison with the state-of-the-art methods .",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://cse.buffalo.edu/~jsyuan/papers/2020/SML.pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-35",
"title": "Seminar: An Event-Based Vision Sensor Simulation Framework for...",
"organization": "Unknown",
"description": "She teaches Space Domain Awareness , spaceflight dynamics, and controls to the next generation of astronautical engineers for the Department of the Air Force. In addition, she manages satellite tracking research at the institute with a primary focus on novel sensing techniques .",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://ece.osu.edu/events/2025/04/seminar-event-based-vision-sensor-simulation-framework-space-domain-awareness-applications",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-36",
"title": "Sentinel-1: Radar Vision for All-Weather Earth Observation",
"organization": "Unknown",
"description": "One of the key features of Sentinel-1 is its contribution to maritime domain awareness . Its wide-area coverage, high revisit frequency, and ability to operate in all lighting and weather conditions make it particularly effective over oceans and coastal zones.",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://newspaceeconomy.ca/2026/01/10/sentinel-1-radar-vision-for-all-weather-earth-observation/",
"score": 0.41,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-37",
"title": "PDF Beyond the diffraction limit: In-situ nanoscale optical imaging and ...",
"organization": "Unknown",
"description": "In conclusion, the advancements outlined above underscore the growing ap-plicability of optical nanoscopy to liquid-phase systems and highlight its transformative power for enabling nanoscale opti-cal imaging of samples with spatial resolution well beyond the diffraction limit .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://bunsen.de/fileadmin/user_upload/media/Publikationen/BM_Open_Access/2025_BM_3_Beyond-the-Diffraction-Limit.pdf",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-38",
"title": "(PDF) Small Object Detection on Road by Embedding Focal-Area Loss",
"organization": "Unknown",
"description": "The existing object detection methods are performing well for small - scale object detection in real scenes. This paper proposes, a Feature Fusion Detection Network (FFDN), for multi- scale objects detections .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.researchgate.net/publication/337579657_Small_Object_Detection_on_Road_by_Embedding_Focal-Area_Loss",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-39",
"title": "Atrous Faster R-CNN for Small Scale Object Detection",
"organization": "Unknown",
"description": "However, detecting small scale objects is still a challenging task. This paper addresses the problem and proposes a unified deep neural network building upon the prominent Faster R-CNN framework. This paper has two main contributions.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.computer.org/csdl/proceedings-article/icmip/2017/5954a016/12OmNAOKnP2",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-40",
"title": "YOLO Algorithm for Object Detection Explained [+Examples]",
"organization": "Unknown",
"description": "However, single-shot object detection is generally less accurate than other methods , and it\u2019s less effective in detecting small objects . Such algorithms can be used to detect objects in real time in resource-constrained environments.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.v7labs.com/blog/yolo-object-detection",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-41",
"title": "A Robust Approach for Small - Scale Object Detection From...",
"organization": "Unknown",
"description": "On-Board Small - Scale Object Detection for Unmanned Aerial Vehicles (UAVs).TL;DR: CornerNet as mentioned in this paper detects an object bounding box as a pair of keypoints, the top-left corner and the bottom-right corner, using a single convolution neural network.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://scispace.com/papers/a-robust-approach-for-small-scale-object-detection-from-103znbmp",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-42",
"title": "A Small - Scale Object Detection Algorithm in Intelligent Transportation...",
"organization": "Unknown",
"description": "In response to the problem of poor detection ability of object detection models for small - scale targets in intelligent transportation scenarios, a fusion method is proposed to enhance the features of small - scale targets, starting from feature utilization and fusion methods .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.mdpi.com/1099-4300/26/11/920",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-43",
"title": "ASW and Maritime Domain Awareness : Integrating Submarine...",
"organization": "Unknown",
"description": "Maritime Domain Awareness (MDA) encompasses the effective understanding and monitoring of all maritime activities, essential for safeguarding national interests.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://diversedaily.com/asw-and-maritime-domain-awareness-integrating-submarine-tracking-into-broader-ocean-monitoring/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-44",
"title": "List of Solar System objects by size - Wikipedia",
"organization": "Unknown",
"description": "1 Graphical overview. 2 Objects with radii over 400 km. 3 Smaller objects by mean radius.This list contains some examples of Solar System objects between 1 and 19 km in radius. This is a common size for asteroids, comets and irregular moons.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/List_of_Solar_System_objects_by_size",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-45",
"title": "Space - Track .org",
"organization": "Unknown",
"description": "Space - Track .org promotes space flight safety, protection of the space environment and the peaceful use of space worldwide by sharing space situational awareness services and information with U.S. and international satellite owners/operators, academia and other entities.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.space-track.org/auth/login",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-46",
"title": "Why Was 'Oumuamua So Weird? New Research Tries to... | Space",
"organization": "Unknown",
"description": "And it's only within the past few decades \u2014 and even a few years \u2014 that we've had the technology to spot and track small , dim, fast-moving objects like 'Oumuamua.Paul M. Sutter is a cosmologist at Johns Hopkins University, host of Ask a Spaceman, and author of How to Die in Space .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.space.com/interstellar-object-oumuamua-origins-explored.html",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-47",
"title": "Are there limitations to detecting small objects using sound and light?",
"organization": "Unknown",
"description": "The size limit for detecting objects in space depends on the technology and instruments being used. Generally, objects larger than 30 meters in diameter can be detected by ground-based telescopes, while space -based telescopes can detect objects as small as a few centimeters.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.physicsforums.com/threads/are-there-limitations-to-detecting-small-objects-using-sound-and-light.736918/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-48",
"title": "Objects in Space . | ODBMS Industry Watch",
"organization": "Unknown",
"description": "Objects in Space . \u2013The biggest data processing challenge to date in astronomy: The Gaia mission.\u2013 Space missions are long-term. Generally 15 to 20 years in length. The European Space Agency plans to launch in 2012 a Satellite called Gaia. What is Gaia supposed to do?",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.odbms.org/blog/2011/02/objects-in-space/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "5c750d1f-49",
"title": "Spaces - Hugging Face",
"organization": "Unknown",
"description": "Spaces . \u00b7 The AI App Directory.Speech Synthesis. 3D Modeling. Object Detection. Text Analysis. Image Editing.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://huggingface.co/spaces",
"score": 0.325,
"relevance_score": 0.0,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
}
],
"source_stats": {
"sbir": 0,
"patents": 0,
"contracts": 0,
"web": 27,
"news": 11
},
"total_results_found": 50,
"search_duration_seconds": 253.471952,
"success": true,
"error": null
}

View File

@ -0,0 +1,738 @@
{
"id": "b808a79e",
"capability_gap": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"timestamp": "2026-01-13T12:01:20.472936",
"decomposition": {
"original_query": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability gap requires a technology that improves Space Domain Awareness (SDA) for objects beyond the diffraction limit, likely referring to the resolution limit imposed by classical optics. This suggests a need for innovative imaging or sensing technologies that can capture features or details smaller than the wavelength of light.",
"technical_domains": [
"Optics",
"Imaging",
"Sensing",
"Photonics",
"Quantum Computing"
],
"search_queries": [
"super-resolution imaging techniques",
"(optical/nano-optical) imaging beyond diffraction limit",
"quantum dot-based sensing for space applications",
"hyperspectral imaging for small object detection",
"non-linear optics for enhanced spatial resolution"
],
"sbir_queries": [
"R&D on novel optical architectures for sub-diffraction limit imaging",
"Development of quantum-enabled sensors for space-based object detection"
],
"patent_queries": [
"Patent search: 'super-resolution imaging' AND ('optical' OR 'photonics')",
"Patent search: 'quantum dot sensing' AND ('space applications' OR 'astronomy')"
],
"news_queries": [
"Recent advancements in super-resolution microscopy for space exploration",
"Industry news: innovative optical technologies for small object detection"
],
"keywords": [
"super-resolution",
"optical imaging",
"photonics",
"quantum dot",
"hyperspectral"
],
"exclusions": [
"classical optics",
"diffraction limit",
"traditional sensing"
],
"target_trl_range": [
4,
7
],
"success": true,
"error": null
},
"candidates": [
{
"id": "b808a79e-0",
"title": "Beyond the diffraction limit - Nature",
"organization": "Unknown",
"description": "To celebrate these developments, this issue features a focus on super-resolution imaging techniques that operate beyond the difraction limit . A collection of articles on diferent imaging ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/nphoton.2009.100.pdf",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-1",
"title": "Beyond the diffraction limit | Nature Photonics",
"organization": "Unknown",
"description": "They explain how two opposing lenses, combined with the switching (on and off) of fluorescence between adjacent markers, can overcome the diffraction barrier. Although the examples given are stimulated emission depletion microscopy and photoactivation localization microscopy, the authors anticipate that dual-lens schemes could be applied to other approaches and will, ultimately, become central to three-dimensional far-field optical imaging at the nanoscale.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/nphoton.2009.100",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-2",
"title": "A broadband hyperspectral image sensor with high spatio-temporal resolution | Nature",
"organization": "Unknown",
"description": "November 6, 2024 - Extensive experiments demonstrate the superiority of the HyperspecI sensor on high spatial\u2013spectral\u2013temporal resolution, wide spectral response range and high light throughput. These advantages provide great benefits in hyperspectral imaging applications such as detecting under low light, targeting dynamic scenes, and detecting unattainable small or remote targets using existing methods.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/s41586-024-08109-1",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-3",
"title": "Airborne Object Detection Using Hyperspectral Imaging: Deep Learning Review | Springer Nature Link (formerly SpringerLink)",
"organization": "Unknown",
"description": "Hyperspectral images have been increasingly important in object detection applications especially in remote sensing scenarios . Machine learning algorithms have become emerging tools for hyperspectral image analysis.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/chapter/10.1007/978-3-030-24289-3_23",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-4",
"title": "Super-resolution imaging - Wikipedia",
"organization": "Unknown",
"description": "Super-resolution imaging (SR) is a class of techniques that improve the resolution of an imaging system. In optical SR the diffraction limit of systems is transcended, while in geometrical SR the resolution of digital imaging sensors is enhanced.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/Super-resolution_imaging",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-5",
"title": "Optical super-resolution imaging: A review and perspective",
"organization": "Unknown",
"description": "In this comprehensive review, we delve into super-resolution optical imaging techniques and their diverse applications. Our primary focus is on linear\u2026",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0143816624005141",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-6",
"title": "Optical Microsphere Nano-Imaging: Progress and Challenges",
"organization": "Unknown",
"description": "May 1, 2024 \u00b7 The optical diffraction limit is a fundamental problem in optical microscopy imaging . In the past decades, the optical microsphere nano - imaging technique has emerged as a competent technical route for overcoming this challenge.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S2095809924001498",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-7",
"title": "OpticalNet: An Optical Imaging Dataset and Benchmark Beyond ...",
"organization": "Unknown",
"description": "We introduce a general optical imaging dataset beyond the diffraction limit and demonstrate that deep learning-based computer vision methods can effectively translate diffrac-tion images into object images at subwavelength resolution.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://openaccess.thecvf.com/content/CVPR2025/papers/Wang_OpticalNet_An_Optical_Imaging_Dataset_and_Benchmark_Beyond_the_Diffraction_CVPR_2025_paper.pdf",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-8",
"title": "This New Imaging Technology Breaks the Rules of Optics",
"organization": "Unknown",
"description": "2 days ago \u00b7 By replacing physical precision with computational optimization, MASI sidesteps the diffraction limit and other constraints that have traditionally governed optical imaging systems.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedaily.com/releases/2026/01/260110211214.htm",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-9",
"title": "Compact optical device achieves super-resolution imaging ...",
"organization": "Unknown",
"description": "Researchers from the University of Science and Technology of China (USTC) have unveiled a planar optical device that significantly enhances the capabilities of dark-field microscopy, achieving...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://phys.org/news/2025-03-compact-optical-device-super-resolution.pdf",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-10",
"title": "Superresolution imaging using superoscillatory diffractive ...",
"organization": "Unknown",
"description": "Oct 7, 2024 \u00b7 Here, we propose an optical superoscillatory diffractive neural network (SODNN) that achieves spatial superresolution for imaging beyond the diffraction limit with superior optical performance.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.spiedigitallibrary.org/journals/advanced-photonics/volume-6/issue-5/056004/Superresolution-imaging-using-superoscillatory-diffractive-neural-networks/10.1117/1.AP.6.5.056004.short",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-11",
"title": "NASA and MIT Collaborate to develop space-based quantum-dot",
"organization": "Unknown",
"description": "... Investigator Mahmooda Sultana has teamed with the Massachusetts Institute of Technology to develop a quantum dot spectrometer for use in space .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://phys.org/news/2017-02-nasa-mit-collaborate-space-based-quantum-dot.html",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-12",
"title": "What is hyperspectral Imaging?: A Comprehensive Guide - Specim Spectral Imaging",
"organization": "Unknown",
"description": "June 27, 2024 - Hyperspectral imaging system analyzes a spectral response to detect and classify features or objects in images based on their unique spectra .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.specim.com/technology/what-is-hyperspectral-imaging/",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-13",
"title": "Optical microscopy beyond the diffraction limit - PMC",
"organization": "Unknown",
"description": "On the theoretical side, various new geometries exhibiting image magnification beyond the usual diffraction limit were proposed (Ramakrishna and Pendry, 2004; Jakob et al., 2006; Salandrino and Engheta, 2006), which make use of newly developed optical metamaterials.",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC2645564/",
"score": 0.5175,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-14",
"title": "Hyperspectral imaging and its applications: A review - PMC",
"organization": "Unknown",
"description": "The current space and airborne satellite hyperspectral sensors [14]. ... The spatial, spectral, and temporal resolution of an image provides valuable information that is used to form interpretations about surface conditions and materials. For each of these properties, the image resolution can be defined by the sensor system. These image resolution components limit the information derived from remote sensor images. ... Spatial resolution can be defined as the smallest detectable detail in an image that can be stated as the measure of the smallest entity in an image which can be discriminated as an independent entity in the image [22]. It is also the function of the design of the sensor and its operating altitude above the surface.",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC11253060/",
"score": 0.5175,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-15",
"title": "An Improved Approach for Small Object Detection in Hyperspectral Images | IEEE Conference Publication | IEEE Xplore",
"organization": "Unknown",
"description": "Due to the fact hyperspectral cameras have low spatial resolution values, small target detection becomes a challenging task. In this study, a new method was proposed to detect small targets with high performance values . For target detection ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://ieeexplore.ieee.org/document/9772535/",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-16",
"title": "Advancements in Super-Resolution Imaging Techniques",
"organization": "Unknown",
"description": "New methods are pushing the limits of visual clarity in microscopy. Super-resolution imaging is a field that focuses on improving the resolution of images...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://scisimple.com/en/articles/2025-06-13-advancements-in-super-resolution-imaging-techniques--a3q8g11",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-17",
"title": "Researchers prepare for quantum sensing in outer space",
"organization": "Unknown",
"description": "... for quantum sensing systems that can be used to improve their reliability and autonomous operation\u2014both of which are key for space applications ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://phys.org/news/2023-03-quantum-outer-space.html",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-18",
"title": "Applications of Quantum Sensing",
"organization": "Unknown",
"description": "... which produces partially entangled photons with quantum fluctuations below the shot noise limit, is used for extremely sensitive sensing applications ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.azoquantum.com/Article.aspx?ArticleID=324",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-19",
"title": "Quantum Dot Photonics: A New Horizon in Optical Computing",
"organization": "Unknown",
"description": "Quantum dot photonics presents a promising avenue for overcoming these challenges, suggesting that the realization of high-performance optical ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.azooptics.com/Article.aspx?ArticleID=2550",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-20",
"title": "Aerial hyperspectral remote sensing detection for maritime search and surveillance of floating small objects - ScienceDirect",
"organization": "Unknown",
"description": "July 3, 2023 - By utilizing the hyperspectral data, we detected the pixels corresponding to the edges of ships and employed an ellipse fitting approach to identify the vessels, achieving a length error of 0.44 m. Additionally, we detected small floating objects based on a spectral database using spectral matching. The N-finder algorithm (N-FINDR) spectral unmixing technique was applied to detect lifebuoys, buoyant apparatus, and mannequins, resulting in relatively small length errors ranging from 0.08 to 0.17 m.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0273117723005148",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-21",
"title": "Object detection in hyperspectral images - ScienceDirect",
"organization": "Unknown",
"description": "September 26, 2022 - The imaging system that captures wavelengths beyond visible spectrum would contain lots of visually unknown information [43], [115]. The auxiliary information could be exploited for deeper analysis and understanding of the images. Hyperspectral Image (HSI) is visualized as a three-dimensional cube, with spatial dimensions along the X and Y axis, and spectral dimension along the Sb axis, as shown in Fig. 1. Reflectance curves and individual bands are also demonstrated in Fig. 1. The task of estimating and locating an object precisely in an image is referred to as object detection.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/abs/pii/S1051200422003694",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-22",
"title": "Now You See Me Super-Resolution Microscopy",
"organization": "Unknown",
"description": "When single-molecule super-resolution microscopes were first commercialized some 15 years ago, they made headlines for their ability to resolve individual molecules and structures at the nanometer ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.genengnews.com/topics/translational-medicine/now-you-see-me-super-resolution-microscopy/",
"score": 0.45601657983840554,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-12-04T06:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-23",
"title": "Palantir Technologies Inc. (PLTR) Expands Partnership with Voyager for...",
"organization": "Unknown",
"description": "We recently compiled a list of the 10 High Flying AI Stocks This Week. In this article, we are going...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://finance.yahoo.com/news/palantir-technologies-inc-pltr-expands-220635728.html",
"score": 0.45601657983840554,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-03-19T17:58:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-24",
"title": "U.S. Patent for Quantum dot devices with side and center",
"organization": "Unknown",
"description": "For purposes of illustrating quantum dot devices with additional read accumulation gates and with side and center screening gates, proposed herein ...",
"source_type": "patent",
"source": "DuckDuckGo",
"url": "https://patents.justia.com/patent/11922274",
"score": 0.4475,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-25",
"title": "Exploring the frontiers of image super-resolution: a review of modern ...",
"organization": "Unknown",
"description": "Super-resolution (SR) aims to reconstruct high- resolution images from low- resolution inputs, with deep learning advancements driving substantial improvements in SR performance. This paper presents a comprehensive review of single- and multi-image SR techniques , analyzing findings from 12,873 research papers published between 2015 and 2025 in the computer science field. Key insights are derived ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/article/10.1007/s00521-025-11331-1",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-26",
"title": "State-of-the-Art Transformer Models for Image Super-Resolution ...",
"organization": "Unknown",
"description": "Several visualizations of models and techniques are included to foster a holistic understanding of recent trends. This work seeks to offer a structured roadmap for researchers at the forefront of deep learning, specifically exploring the impact of transformers on super-resolution techniques .",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/2501.07855",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-27",
"title": "Super-resolution Imaging - Nature",
"organization": "Unknown",
"description": "This Collection invites research on cutting-edge advances in super-resolution imaging technologies and their applications in biology, medicine, and beyond.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/collections/ddfbcggjib",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-28",
"title": "A Comprehensive Review and Comparison of Image Super-resolution Techniques",
"organization": "Unknown",
"description": "This review article provides an in-depth analysis and comparison of various image super-resolution techniques , including traditional methods and deep learning-based approaches.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.researchgate.net/publication/379963957_A_Comprehensive_Review_and_Comparison_of_Image_Super-resolution_Techniques",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-29",
"title": "A Complete Guide to Image Super-Resolution in Deep Learning and AI",
"organization": "Unknown",
"description": "Understand the latest techniques , models, and applications of image super-resolution in deep learning and computer vision. A comprehensive guide for research\u2026",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.digitalocean.com/community/tutorials/image-super-resolution",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-30",
"title": "Image super-resolution: The techniques, applications, and future",
"organization": "Unknown",
"description": "Image spatial resolution refers to the capability of the sensor to observe or measure the smallest object, which depends upon the pixel size. As two-dimensional signal records, digital images with a higher resolution are always desirable in most applications. Imaging techniques have been rapidly developed in the last decades, and the resolution has reached a new level. The question is ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0165168416300536",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-31",
"title": "PDF A Comprehensive Review and Comparison of Image Super-resolution Techniques",
"organization": "Unknown",
"description": "Abstract\u2014 Image super-resolution (SR) is a pivotal task in computer vision and image processing, aiming to enhance the resolution and quality of low- resolution images. This review article provides an in-depth analysis and comparison of various image super-resolution techniques , including traditional methods and deep learning-based approaches.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://ijaems.com/upload_images/issue_files/5IJAEMS-10220239-AComprehensive.pdf",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-32",
"title": "Diffraction-limited system - Wikipedia",
"organization": "Unknown",
"description": "October 30, 2025 - These techniques exploit the fact ... light imaging, instruments such as near-field scanning optical microscopes and nano-FTIR, which are built atop atomic force microscope systems, can be used to achieve up to 10-50 nm resolution ....",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/Diffraction-limited_system",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-33",
"title": "Beyond the diffraction limit: In-situ nanoscale optical ...",
"organization": "Unknown",
"description": "In conclusion, the advancements outlined above underscore the growing ap-plicability of optical nanoscopy to liquid-phase systems and highlight its transformative power for enabling nanoscale opti- cal imaging of samples with spatial resolution well beyond the diffraction limit .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://bunsen.de/fileadmin/user_upload/media/Publikationen/BM_Open_Access/2025_BM_3_Beyond-the-Diffraction-Limit.pdf",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-34",
"title": "Machine learning paves the way for next-level quantum sensing",
"organization": "Unknown",
"description": "... Quantum Engineering and Technology Labs (QETLabs) at the University of Bristol, in collaboration with the Institute for quantum optics of the ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://phys.org/news/2019-05-machine-paves-next-level-quantum.html",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-35",
"title": "Quantum Dot Enabled Molecular Sensing and Diagnostics",
"organization": "Unknown",
"description": "This review comments on the latest development of QD based sensing strategies and their applications towards molecular diagnostics.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.thno.org/v02p0631.htm",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-36",
"title": "Quantum Dot Sensor Market Size, Growth, Trends and Forecast",
"organization": "Unknown",
"description": "This segmentation underscores the diverse applicability and expanding demand for quantum dot sensors across various industries, reflecting a dynamic ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.globalinsightservices.com/reports/quantum-dot-sensor-market/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-37",
"title": "Global Quantum Dot Sensor Market By Type, By Application, By",
"organization": "Unknown",
"description": "Quantum dot sensors use quantum dot - based material and a simple integration method to fill roughly 95% of a picture.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://finance.yahoo.com/news/global-quantum-dot-sensor-market-152900219.html",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-38",
"title": "Detecting Gas with Quantum Dot Sensors",
"organization": "Unknown",
"description": "... research presented in this article demonstrates the successful development of a room-temperature NO gas sensor based on P3HT-doped PbS quantum dots .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.azosensors.com/news.aspx?newsID=15991",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-39",
"title": "Hyperspectral imaging - Wikipedia",
"organization": "Unknown",
"description": "1 week ago - The precision of these sensors ... band of the spectrum that is captured. If the scanner detects a large number of fairly narrow frequency bands, it is possible to identify objects even if they are only captured in a handful of pixels ....",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/Hyperspectral_imaging",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-40",
"title": "Modern Trends and Recent Applications of Hyperspectral Imaging: A Review",
"organization": "Unknown",
"description": "April 23, 2025 - This method made the detection of MPs in particles as small as 80 \u00b5m possible. Mukundan et al. introduced a new snapshot HSI method for detecting atmospheric pollution, especially PM2.5 concentrations [87]. This study was conducted in Taiwan, and hyperspectral images were collected using a DJI MAVIC MINI light-detecting camera to acquire data that had a spectral range between 380\u2013780 nm with a 1 nm spectral resolution.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.mdpi.com/2227-7080/13/5/170",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "b808a79e-41",
"title": "Hyperspectral imaging: on-chip, real-time and compact | imec",
"organization": "Unknown",
"description": "With the advent of more compact hyperspectral cameras and real-time hyperspectral imaging, a set of new applications comes to light. Some examples: agriculture \u2013 Often mounted on drones, light-weight hyperspectral cameras can detect the smallest differences in plants or soils and inform farmers and researchers about diseases, droughts, and so on.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.imec-int.com/en/hyperspectral-imaging",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
}
],
"source_stats": {
"sbir": 0,
"patents": 0,
"contracts": 0,
"web": 29,
"news": 2
},
"total_results_found": 42,
"search_duration_seconds": 225.741536,
"success": true,
"error": null
}

View File

@ -0,0 +1,710 @@
{
"id": "bd16a98c",
"capability_gap": "Need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"timestamp": "2026-01-13T12:55:17.423360",
"decomposition": {
"original_query": "Need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability gap requires a technology that improves Space Domain Awareness (SDA) for objects beyond the diffraction limit, which is typically achieved through optical or radar-based methods. However, these traditional approaches have limitations in terms of resolution and sensitivity. To overcome this challenge, innovative technologies are needed to enhance SDA capabilities, potentially leveraging emerging fields like quantum computing, artificial intelligence, or advanced materials.",
"technical_domains": [
"Optics",
"Radar Technology",
"Quantum Computing",
"Artificial Intelligence",
"Materials Science"
],
"search_queries": [
"site:edu OR site:gov (optical imaging AND super-resolution) -diffraction limit",
"radar technology AND object detection AND beyond diffraction limit",
"quantum computing AND machine learning AND space domain awareness",
"artificial intelligence AND computer vision AND astronomical object recognition",
"materials science AND metamaterials AND optical sensing"
],
"sbir_queries": [
"R&D (research and development) AND super-resolution imaging AND space-based applications",
"novel radar architectures AND object detection AND beyond diffraction limit"
],
"patent_queries": [
"US patents AND (optical imaging OR radar technology) AND super-resolution AND space domain awareness",
"EP patents AND (quantum computing OR artificial intelligence) AND object recognition AND astronomical applications"
],
"news_queries": [
"recent developments in space domain awareness AND beyond diffraction limit",
"innovative technologies for astronomical object detection AND recent news"
],
"keywords": [
"super-resolution",
"diffraction limit",
"optical imaging",
"radar technology",
"quantum computing",
"artificial intelligence",
"materials science",
"metamaterials"
],
"exclusions": [
"laser",
"photonics",
"spectroscopy",
"astronomy software"
],
"target_trl_range": [
4,
7
],
"success": true,
"error": null
},
"candidates": [
{
"id": "bd16a98c-0",
"title": "BlackSky Signs Seven-Figure Space Domain Awareness Expansion Contract with HEO for Fully Automated Non-Earth Imaging Missions",
"organization": "BlackSky Technology Inc.",
"description": "HERNDON, Va.--(BUSINESS WIRE)--BlackSky Technology Inc. (NYSE: BKSY) signed a seven-figure Gen-2 space domain awareness expansion contract with HEO to provide fully-automated low-latency non-Earth imaging (NEI) services for defense, intelligence and ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.businesswire.com/news/home/20250819468601/en/BlackSky-Signs-Seven-Figure-Space-Domain-Awareness-Expansion-Contract-with-HEO-for-Fully-Automated-Non-Earth-Imaging-Missions",
"score": 0.6660165798384056,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-08-19T08:30:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-1",
"title": "Far-field Imaging beyond Diffraction Limit Using Single Radar",
"organization": "Unknown",
"description": "Here, we propose to solve this challenging problem using a single radar system consisting of a spatial-temporal resonant aperture antenna (referred to as the slavery antenna) and a broadband horn antenna (referred to as the master antenna).",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/pdf/1406.2168",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-2",
"title": "Optical superoscillation technologies beyond the diffraction ...",
"organization": "Optical superoscillation technologies",
"description": "Oct 25, 2021 \u00b7 Numerical experiments on imaging of a dimer have demonstrated resolving powers better than \u03bb /200 \u2014 two orders of magnitude beyond the conventional \u2018 diffraction limit \u2019 of \u03bb /2.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/s42254-021-00382-7",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-3",
"title": "Over-the-horizon radar - Wikipedia",
"organization": "Wikipedia Over-the-horizon",
"description": "Over-the-horizon radar (OTH), sometimes called beyond the horizon radar (BTH), is a type of radar system with the ability to detect targets at very long ranges, typically hundreds to thousands of kilometres, beyond the radar horizon, which is the distance limit for ordinary radar.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/Over-the-horizon_radar",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-4",
"title": "Optical super-resolution imaging: A review and perspective",
"organization": "Unknown",
"description": "Dec 1, 2024 \u00b7 In this comprehensive review, we delve into super-resolution optical imaging techniques and their diverse applications.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0143816624005141",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-5",
"title": "Super-resolution diffractive neural network for all-optical ... Seven decades of image super-resolution: achievements ... Optical super-resolution imaging: A review and perspective Far-field Imaging beyond Diffraction Limit Using Single Radar Over-the-horizon radar - Wikipedia BoostRad: Enhancing Object Detection by Boosting Radar ... Optical superoscillation technologies beyond the diffraction ...",
"organization": "Over-the-horizon",
"description": "Jul 10, 2024 \u00b7 To address these challenges, we propose to construct super-resolution diffractive neural networks (S-DNN) for the all-optical DOA estimation over the broadband frequency range with angular... Jul 18, 2024 \u00b7 Super-resolution imaging has, for more than seventy years, gradually evolved to produce advanced methods for enhancing the resolution of images beyond the diffraction limits . Notwithstanding its foreseeable practical capabilities, we noted that this technology has received undeserved attention. Dec 1, 2024 \u00b7 In this comprehensive review, we delve into super-resolution optical imaging techniques and their diverse applications. Here, we propose to solve this challenging problem using a single radar system consisting of a spatial-temporal resonant aperture antenna (referred to as the slavery antenna) and a broadband horn antenna (referred to as the master antenna). Over-the-horizon radar (OTH), sometimes called beyond the horizon radar (BTH), is a type of radar system with the ability to detect targets at very long ranges, typically hundreds to thousands of kilometres, beyond the radar horizon, which is the distance limit for ordinary radar. Automotive radars play an important role in autonomous driving systems, offering extended detection range and re-silience to adverse weather and lighting conditions. These radars emit RF signals, which interact with objects and bounce back to the receiving antennas as echoes. Oct 25, 2021 \u00b7 Numerical experiments on imaging of a dimer have demonstrated resolving powers better than \u03bb /200 \u2014 two orders of magnitude beyond the conventional \u2018 diffraction limit \u2019 of \u03bb /2.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/s41377-024-01511-4",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-6",
"title": "Optical spin-wave detection beyond the diffraction limit",
"organization": "Unknown",
"description": "In this Article we demonstrate magneto-optical detection of spin waves beyond the diffraction limit using a metallic grating that selectively absorbs laser light.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://research.tue.nl/en/publications/optical-spin-wave-detection-beyond-the-diffraction-limit",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-7",
"title": "ZEISS Microscopy Online Campus | Introduction to Superresolution Microscopy",
"organization": "ZEISS",
"description": "The diffraction limit in optical microscopy is governed by the fact that when imaging a point source of light, the instrument produces a blurred and diffracted finite-sized focal spot in the image plane having dimensions that govern the minimum distance at which two points can be distinguished.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://zeiss-campus.magnet.fsu.edu/articles/superresolution/introduction.html",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-8",
"title": "Super-Resolution Tutorial - Education - Advanced Microscopy",
"organization": "Advanced Microscopy",
"description": "Advanced Microscopy: Super-Resolution TutorialSuper- Resolution Microscopy Tutorial Overview Super-resolution microscopy is a collective name for a number of techniques that achieve resolution below the conventional resolution limit , defined as the minimum distance that two point-source objects have to be in order to distinguish the two sources from each other. There are two closely related ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://advanced-microscopy.utah.edu/education/super-res/",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-9",
"title": "Home | Institute for Optical Science",
"organization": "Institute for Optical Science",
"description": "The Institute for Optical Science is a community of multidisciplinary researchers studying the fundamental properties of light and harnessing these properties in practical applications for significant benefit to society.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://opticalscience.osu.edu/",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-10",
"title": "PDF Introduction: Superresolution fluorescence microscopy",
"organization": "Palao",
"description": "Lattice light sheet microscopy: a new super-resolution imaging method, from the inventor of PALM. Basic idea: use advanced optics to illuminate only a very thin plane. Give up a bit of spatial resolution , but substantially increase temporal resolution and substantially decrease damaging light exposure",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://web.stanford.edu/class/cs371/2018_slides/superresolution-intro.pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-11",
"title": "Home - Optical Biology Core Facility",
"organization": "Facility The Nonlinear Optical Microscopy",
"description": "The Nonlinear Optical Microscopy (NLOM) Lab located in the Beckman Laser Institute and Medical Clinic This facility is equipped with state-of-the-art commercial and in-house optical microscopy platforms for biological and biomedical imaging .",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://obc.bio.uci.edu/",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-12",
"title": "PDF Towards a Mathematical Theory of Super-Resolution",
"organization": "Unknown",
"description": "1.1 Super-resolution Super-resolution is a word used in di erent contexts mainly to design techniques for enhancing the resolution of a sensing system. Interest in such techniques comes from the fact that there usually is a physical limit on the highest possible resolution a sensing system can achieve. To be concrete, the spatial resolution of an imaging device may be measured by how closely ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://math.nyu.edu/~cfgranda/pages/stuff/super-res.pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-13",
"title": "PDF Super-Resolution Ultrasound Imaging: The Quest for Microvessels",
"organization": "SES S.A.",
"description": "One potential approach to solve this critical imag-ing issue is a technique referred to as super resolution ultrasound imaging , often referred to as ultrasound localization microscopy (ULM). ULM is a recently devel-oped solution to this \"quest for microvessels\" that uses FDA-approved microbubbles to greatly improve imaging resolution without losing imaging depth (Figure 1). But how does ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://songlab.bme.duke.edu/sites/songlab.bme.duke.edu/files/2024/Super-Resolution-Fall2024+(1).pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-14",
"title": "Seeing in Super-Resolution | Research UC Berkeley",
"organization": "Stochastic Optical Reconstruction Microscopy",
"description": "To learn more about what biologists were already doing, and where he could make a difference, Xu became a post-doctoral research fellow in the Harvard lab of Xiaowei Zhuang, inventor of a super-resolution microscopy technique known as Stochastic Optical Reconstruction Microscopy (STORM).",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://vcresearch.berkeley.edu/heising-simons/ke-xu/seeing-super-resolution",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-15",
"title": "ZEISS Microscopy Online Campus | Superresolution Structured ...",
"organization": "ZEISS",
"description": "Superresolution structured illumination microscopy employs patterned excitation near the diffraction limit to almost double the lateral and axial resolution of widefield fluorescence microscopy.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://zeiss-campus.magnet.fsu.edu/articles/superresolution/supersim.html",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-16",
"title": "2. Topographic representation for quantum machine learning",
"organization": "Unknown",
"description": "Quantum machine learning investigates how results from the quantum world can be used to solve problems from machine learning . The amount of data needed to reliably train a classical computation model is evergrowing and reaching the limits which normal computing devices can handle.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.academia.edu/116735211/2_Topographic_representation_for_quantum_machine_learning",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-17",
"title": "Microsoft\u2019s Majorana 1 chip carves new path for quantum computing ...",
"organization": "much colder than outer space",
"description": "The quantum chip doesn\u2019t work alone. It exists in an ecosystem with control logic, a dilution refrigerator that keeps qubits at temperatures much colder than outer space and a software stack that can integrate with AI and classical computers .",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://news.microsoft.com/source/features/innovation/microsofts-majorana-1-chip-carves-new-path-for-quantum-computing/",
"score": 0.41,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-18",
"title": "Diffraction - limited system - Wikipedia",
"organization": "Wikipedia",
"description": "The diffraction - limited angular resolution, in radians, of an instrument is proportional to the wavelength of the light being observed, and inversely proportional to the diameter of its objective's entrance aperture.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/Diffraction-limited_system",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-19",
"title": "Radar - Wikipedia",
"organization": "SES S.A.",
"description": "Radar of the type used for detection of aircraft. It rotates steadily, sweeping the airspace with a narrow beam. Radar is a system that uses radio waves to determine the distance (ranging), direction (azimuth and elevation angles), and radial velocity of objects relative to the site.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/Radar",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-20",
"title": "BoostRad: Enhancing Object Detection by Boosting Radar ...",
"organization": "role in autonomous driving systems",
"description": "Automotive radars play an important role in autonomous driving systems, offering extended detection range and re-silience to adverse weather and lighting conditions. These radars emit RF signals, which interact with objects and bounce back to the receiving antennas as echoes.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://openaccess.thecvf.com/content/WACV2024/papers/Haitman_BoostRad_Enhancing_Object_Detection_by_Boosting_Radar_Reflections_WACV_2024_paper.pdf",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-21",
"title": "How radar works | Uses of radar - Explain that Stuff",
"organization": "SES S.A.",
"description": "Radar works in much the same way. The word \" radar \" stands for radio detection and ranging\u2014and that gives a pretty big clue as to what it does and how it works.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.explainthatstuff.com/radar.html",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-22",
"title": "Artificial intelligence - Wikipedia",
"organization": "Recommendation systems",
"description": "Machine learning , operating this data, can classify potential enemies of the state and prevent them from hiding. Recommendation systems can precisely target propaganda and misinformation for maximum effect.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/Artificial_intelligence",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-23",
"title": "Domain - Aware Quantum Circuits (DAQC) Set New QML Records",
"organization": "Aware Quantum Circuits",
"description": "Domain - Aware Quantum Circuits DAQC reach new performance the power of domain -specific quantum architectures in machine learning .You can also read Amaravati CRDA Launches Quantum Valley with \u20b9103.96 Crore. Innovation through \u201c Domain Awareness \u201d.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://quantumcomputer.blog/domain-aware-quantum-circuits-daqc-set-qml/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-24",
"title": "Practical Quantum Machine Learning Methods for Professionals",
"organization": "LinkedIn",
"description": "Quantum Computing Applications. Practical Quantum Machine Learning Methods for Professionals. Explore top LinkedIn content from expert professionals.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.linkedin.com/top-content/technology/quantum-computing-applications/practical-quantum-machine-learning-methods-for-professionals/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-25",
"title": "A PM\u2019s Journey into Quantum ML: What I Learned ... | Medium",
"organization": "positioned as a revolutionary technology",
"description": "Quantum computing is being positioned as a revolutionary technology for machine learning , which, to be clear, it genuinely is for certain problems.Product Manager and space nerd exploring quantum computing and AI. Learning in public.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://medium.com/@ouarda.jw/a-pms-journey-into-quantum-ml-what-i-learned-classifying-1-072-supernovae-39a4b91ce5ed",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-26",
"title": "Supervised Learning with Quantum Computers | Request PDF",
"organization": "Unknown",
"description": "Quantum machine learning investigates how quantum computers can be used for data-driven prediction and decision making.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.researchgate.net/publication/345598040_Supervised_Learning_with_Quantum_Computers",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-27",
"title": "Quantum EigenGame for excited state calculation",
"organization": "reducing the time and space",
"description": "1. Introduction. Quantum computing offers an alternative approach to solving complex computational tasks, po-tentially reducing the time and space complexity compared to classical methods.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://openreview.net/pdf?id=XFjwzut6c5",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-28",
"title": "Getting Started with Machine Learning : The Quantum Edition",
"organization": "Unknown",
"description": "Quantum Computing in Machine Learning . The typical machine learning process up to building a model on a high level involves Quantum machine learning works by making the data processing and/or model building stages quantum -based.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://dev.to/enutrof/getting-started-with-machine-learning-the-quantum-edition-2f6o",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-29",
"title": "Machine learning helps measure quantum dots automatically",
"organization": "measure quantum dots automatically Space",
"description": "Space . Health. Social Science. Quantum machine learning illustration Credit: Shutterstock. Scalable quantum technologies such as quantum computers will require vast numbers of quantum devices to be characterized and tuned.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.techexplorist.com/machine-learning-helps-measure-quantum-dots-automatically/26698/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-30",
"title": "7 Types of AI and Their Crucial Role in Shaping Technology",
"organization": "Crucial Role in Shaping Technology",
"description": "Explore the types of artificial intelligence shaping industries today, including computer vision and object recognition . Read the article to learn more!",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.g2.com/articles/types-of-artificial-intelligence",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-31",
"title": "Makine \u00d6\u011frenmesi ile G\u00f6r\u00fcnt\u00fc Tan\u0131ma | Image Recognition using...",
"organization": "Unknown",
"description": "Introduction | Motivation Makes computer vision a possibility, hence enhancing power of Arti\ufb01cial Intelligence .Image recognition is the process of identifying and detecting an object or a feature in a Digital Image. \u2022 It is also known as Computer Vision .",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.slideshare.net/slideshow/makina-grenmesi-ile-goruntu-tanma-image-recognition-using-machine-learning/83294009",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-32",
"title": "Bridging Machine Recognition and Human Perception - Simple Science",
"organization": "Unknown",
"description": "# Computer Science # Artificial Intelligence # Computer Vision and Pattern Recognition .#Steps to Recognition . The process begins with recognizing an object as something general, like \" object ,\" and then refining that identification through user interaction.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://scisimple.com/en/articles/2025-11-18-bridging-machine-recognition-and-human-perception--a307gd7",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-33",
"title": "Goodbye to artificial intelligence \u2014 New technology coming in 2026...",
"organization": "New technology",
"description": "With artificial intelligence as the most recent development, computers have become capable of handling various complex tasks, some of which include pattern recognition and decision making, making it easy for computers to become autonomous.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.ecoportal.net/en/goodbye-artificial-intelligence-tech/15897/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-34",
"title": "Computer Vision Explained: How AI Sees the World",
"organization": "Unknown",
"description": "Learn how computer vision powers AI in facial recognition , autonomous vehicles, and more, with insights into its benefits and challenges.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.grammarly.com/blog/ai/what-is-computer-vision/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-35",
"title": "The Age of AI: Understanding Artificial Intelligence and ... | VideoLlama",
"organization": "SES S.A.",
"description": "Artificial Intelligence , or AI, at its core, refers to the simulation of human intelligence processes by machines, especially computer systems. These processes include learning, reasoning, problem-solving, perception, and language understanding.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://videollama.co/videos/the-age-of-ai-understanding-artificial-intelligence-and-its-societal-impact",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-36",
"title": "What Is Artificial Intelligence (AI)? | Built In",
"organization": "What Is Artificial Intelligence",
"description": "Artificial intelligence (AI) is the capability of computer systems to perform tasks typically associated with human intelligence , reasoning and decision-making.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://builtin.com/artificial-intelligence",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-37",
"title": "What Is Artificial Intelligence (AI)? | IBM",
"organization": "What Is Artificial Intelligence",
"description": "Artificial intelligence (AI) is technology that enables computers and machines to simulate human learning, comprehension, problem solving, decision-making, creativity and autonomy.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.ibm.com/think/topics/artificial-intelligence",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-38",
"title": "Lecture Slides | Optics | Mechanical Engineering | MIT OpenCourseWare",
"organization": "SES S.A.",
"description": "This section provides the schedule of lecture topics for the course along with the slides used for each lecture session.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://ocw.mit.edu/courses/2-71-optics-spring-2009/pages/lecture-slides/",
"score": 0.3625,
"relevance_score": 0.0,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "bd16a98c-39",
"title": "Recognize and identify armpit in your image... - ImageRecognize.com",
"organization": "SES S.A.",
"description": "Our image recognition tool uses AI and machine learning, and will also identify other objects besides armpit found in your image.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://imagerecognize.com/object/armpit/",
"score": 0.325,
"relevance_score": 0.0,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
}
],
"source_stats": {
"sbir": 0,
"patents": 0,
"contracts": 0,
"web": 25,
"news": 2
},
"total_results_found": 41,
"search_duration_seconds": 249.27516,
"success": true,
"error": null
}

View File

@ -0,0 +1,802 @@
{
"id": "be66d6e8",
"capability_gap": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"timestamp": "2026-01-13T12:19:05.681389",
"decomposition": {
"original_query": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability gap requires a technology that improves Space Domain Awareness for objects beyond the diffraction limit, likely involving advanced imaging or sensing techniques to detect and track small or distant objects in space.",
"technical_domains": [
"Optics",
"Imaging",
"Sensing",
"Signal Processing",
"Machine Learning"
],
"search_queries": [
"site:edu OR site:gov (diffraction limit AND space domain awareness) AND (imaging OR sensing)",
"(optical coherence tomography OR super-resolution microscopy) AND space object detection",
"site:arxiv.org (sub-diffraction imaging OR super-resolution imaging) AND space exploration",
"site:sciencedirect.com (image processing AND space domain awareness) AND small object detection",
"(machine learning AND image analysis) AND space-based surveillance"
],
"sbir_queries": [
"R&D (optical imaging AND sub-diffraction limit) AND space domain awareness AND small object detection",
"SBIR (super-resolution sensing AND machine learning) AND space exploration AND object tracking"
],
"patent_queries": [
"(sub-diffraction imaging OR super-resolution microscopy) AND space-based surveillance AND patent",
"(optical coherence tomography AND image processing) AND space domain awareness AND patent"
],
"news_queries": [
"space domain awareness AND small object detection AND recent developments",
"super-resolution imaging AND space exploration AND industry news"
],
"keywords": [
"diffraction limit",
"sub-diffraction imaging",
"super-resolution microscopy",
"optical coherence tomography",
"machine learning"
],
"exclusions": [
"laser",
"photonics",
"non-linear optics"
],
"target_trl_range": [
4,
7
],
"success": true,
"error": null
},
"candidates": [
{
"id": "be66d6e8-0",
"title": "BlackSky Signs Seven-Figure Space Domain Awareness Expansion Contract with HEO for Fully Automated Non-Earth Imaging Missions",
"organization": "Unknown",
"description": "HERNDON, Va.--(BUSINESS WIRE)--BlackSky Technology Inc. (NYSE: BKSY) signed a seven-figure Gen-2 space domain awareness expansion contract with HEO to provide fully-automated low-latency non-Earth imaging (NEI) services for defense, intelligence and ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.businesswire.com/news/home/20250819468601/en/BlackSky-Signs-Seven-Figure-Space-Domain-Awareness-Expansion-Contract-with-HEO-for-Fully-Automated-Non-Earth-Imaging-Missions",
"score": 0.6660165798384056,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-08-19T08:30:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-1",
"title": "US Space Force's new deep space radar tracks multiple satellites 22,000 miles away in key test",
"organization": "Unknown",
"description": "DARC is designed to track multiple small moving objects in geosynchronous orbit \u2014 all around the globe, 24 hours a day. When you purchase through links on our site, we may earn an affiliate commission. Here's how it works. A powerful new radar system ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.space.com/technology/us-space-forces-new-deep-space-radar-tracks-multiple-satellites-22-000-miles-away-in-key-test",
"score": 0.6660165798384056,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-08-14T00:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-2",
"title": "China\u2019s StarDetect raises Series A funding to expand on-orbit computing and space domain awareness services",
"organization": "Unknown",
"description": "HELSINKI \u2014 Chinese commercial firm StarDetect has raised early funding as it seeks to establish itself as a provider of space domain awareness and satellite computing solutions. StarDetect, which ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://spacenews.com/chinas-stardetect-raises-series-a-funding-to-expand-on-orbit-computing-and-space-domain-awareness-services/",
"score": 0.6660165798384056,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-10-30T05:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-3",
"title": "[PDF] Synthesis of Disparate Optical Imaging Data for Space Domain Awareness - OSTI.gov",
"organization": "Unknown",
"description": "Sep 16, 2016 \u00b7 Synthesis of disparate optical imaging data for space domain awareness ... an Airy disk (the diffraction limited PSF of an unaberrated system ...",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://www.osti.gov/servlets/purl/1334727",
"score": 0.6575,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-4",
"title": "Quantum Inspired Telescope Imaging for Space Situational Awareness (QUINTISSA) - Topic | SBIR",
"organization": "Unknown",
"description": "... imaging measurements are limited by the \u201cRayleigh diffraction criterion\u201d. ... Domain Awareness squadrons within the US Space Force, as well as NASA and the ...",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://www.sbir.gov/topics/11266",
"score": 0.6575,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-5",
"title": "Diffraction & Interference",
"organization": "Unknown",
"description": "The Diffraction Limit Diffraction imposes a fundamental limit on the resolution of optical systems: Suppose we want to image 2 distant points, and S 2, through an aperture of width a: Two points are resolved when the maximum of one is at the minimum of the second",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://physics.ucf.edu/~gabriel/Diffraction.pdf",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-6",
"title": "Structured detection for simultaneous super-resolution and optical ...",
"organization": "Unknown",
"description": "A reconstruction method for image scanning microscopy exploits all the information encoded in the four-dimensional image scanning microscopy dataset to achieve optical sectioning and maintain ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.nature.com/articles/s41566-025-01695-0",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-7",
"title": "Multi-object tracking based on spatial super-resolution and ...",
"organization": "Unknown",
"description": "In this study, we propose a multi- object tracking method based on spatial super-resolution and spatiotemporal convolutional self-attention. First, to solve the problem of missed detection of small objects , we utilize spatial super-resolution algorithm, extracting more detailed information about object features.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/article/10.1007/s11227-025-07664-2",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-8",
"title": "[2406.03179] Machine learning with sub-diffraction resolution in the photon-counting regime",
"organization": "Unknown",
"description": "Jun 5, 2024 \u00b7 We outline a hybrid machine learning algorithm for image classification that includes a physical part and a computational part. Missing: exploration | Show results with: exploration",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/2406.03179",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-9",
"title": "[2510.19911] On-sky Demonstration of Subdiffraction-limited Astronomical Measurement Using a Photonic Lantern - arXiv",
"organization": "Unknown",
"description": "Oct 22, 2025 \u00b7 This work demonstrates the high precision, efficiency, and practicality of photonic mode-based imaging techniques to recover subdiffraction- ... Missing: exploration | Show results with: exploration",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/2510.19911",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-10",
"title": "[2308.07262] Detecting changes to sub-diffraction objects with quantum-optimal speed and accuracy - arXiv",
"organization": "Unknown",
"description": "Aug 14, 2023 \u00b7 Detecting if and when objects change is difficult in passive sub-diffraction imaging of dynamic scenes. We consider the best possible tradeoff ... Missing: exploration | Show results with: exploration",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/2308.07262",
"score": 0.6425,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-11",
"title": "SDebrisNet: A Spatial-Temporal Saliency Network for Space Debris Detection",
"organization": "Unknown",
"description": "The rapidly growing number of space activities is generating numerous space debris, which greatly threatens the safety of space operations. Therefore, space -based space debris surveillance is crucial for the early avoidance of spacecraft emergencies. With the progress in computer vision technology, space debris detection using optical sensors has become a promising solution. However, detecting ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.mdpi.com/2076-3417/13/8/4955",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-12",
"title": "Optimized small object detection in low resolution infrared images ...",
"organization": "Unknown",
"description": "This section reviews state-of-the-art research on infrared image super-resolution , attention mechanisms, small object detection , and lightweight networks, providing theoretical and technical foundations for this study.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0328223",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-13",
"title": "PDF NEAR EARTH OBJECT IMAGE RESTORATION WITH MULTI ... - European Space Agency",
"organization": "Unknown",
"description": "ABSTRACT This article outlines the design and development of a photometry-based image restoration system of near Earth objects for use with 1 m class optical telescopes. Multi- object adaptive optics is used to reduce the effects of at-mospheric distortion for improved image resolution of satellite and large debris objects , without the use of arti-ficial beacons. Using wavefront measurements ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://conference.sdo.esoc.esa.int/proceedings/neosst1/paper/448/NEOSST1-paper448.pdf",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-14",
"title": "AgeDETR: Attention-Guided Efficient DETR for Space Target Detection - MDPI",
"organization": "Unknown",
"description": "In space target detection , the evolution of object detection algorithms and the integration of attention mechanisms are paramount. This section explores the current state of object detection algorithms, with a focus on the advancements and limitations of prominent methods such as YOLO and DETR.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.mdpi.com/2072-4292/16/18/3452",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-15",
"title": "Modular Detection Framework for Space Targets in Short-Exposure Imagery - ScienceDirect",
"organization": "Unknown",
"description": "7 days ago \u00b7 Detecting and tracking dim, small point-like space targets in optical images is crucial for space situational awareness (SSA) but remains ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/abs/pii/S0273117726000037",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-16",
"title": "A-contrario structural inference for space object detection and tracking - ScienceDirect.com",
"organization": "Unknown",
"description": "Introduction. Space Domain Awareness (SDA) involves monitoring and understanding space-based assets, weather, and related phenomena for maintaining security, ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/abs/pii/S0094576522003915",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-17",
"title": "Optical-based space situational awareness using wide field-of-view sensors - ScienceDirect",
"organization": "Unknown",
"description": "Optical telescopes are highly effective in tracking space objects and are indispensable for the space situational awareness ecosystem.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0094576525006241",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-18",
"title": "OrbitTrack: Advanced RSO detection and tracking from wide field-of-view on-orbit images",
"organization": "Unknown",
"description": "Oct 15, 2025 \u00b7 A graph-based tracking approach is used to match objects by optimizing an objective function that minimizes four distinct cost functions. The ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0273117725008683",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-19",
"title": "Enhancing Tiny Object Detection Using Guided Object Inference Slicing (GOIS): An efficient dynamic adaptive framework for fine-tuned and non-fine-tuned deep learning models",
"organization": "Unknown",
"description": "Aug 1, 2025 \u00b7 This paper presents the Dynamic Adaptive Guided Object Inference Slicing (GOIS) framework, a two-stage adaptive slicing strategy that dynamically reallocates ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0925231225009993/pdf",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-20",
"title": "Deep learning based infrared small object segmentation: Challenges and future directions",
"organization": "Unknown",
"description": "Three great challenges of achieving high-quality infrared small object recognition for diverse long-distance infrared perception scenarios are summarized.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/abs/pii/S1566253525000806",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-21",
"title": "Real-time discovery of near-earth objects via accelerated image analysis with AI methods",
"organization": "Unknown",
"description": "19 hours ago \u00b7 Deep learning-based image processing: A unique deep learning model was developed, trained on both real and synthetic data, enabling the reliable ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S0094576526000251",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-22",
"title": "Real-time object detection, tracking, and monitoring framework for security surveillance systems - ScienceDirect",
"organization": "Unknown",
"description": "Aug 15, 2024 \u00b7 This study presents a real-time framework for object detection and tracking for security surveillance systems.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S240584402410953X",
"score": 0.605,
"relevance_score": 0.8,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-23",
"title": "Inside the new age of space domain awareness",
"organization": "Unknown",
"description": "In this episode of Space Minds, host David Ariosto speaks with Doug Hendrix, co-founder and CEO of ExoAnalytic Solutions \u2014 a company born from three physicists' passion for solving hard problems in space. Hendrix shares how ExoAnalytic grew from ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://spacenews.com/inside-the-new-age-of-space-domain-awareness/",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-10-30T00:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-24",
"title": "Managing space domain awareness data has become a greater challenge than collecting it",
"organization": "Unknown",
"description": "Demand has never been greater for the monitoring of objects in orbit and the coordination of their safe movement. The number of active satellites in low Earth orbit (LEO) has surged from less than a ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://spacenews.com/managing-space-domain-awareness-data-has-become-a-greater-challenge-than-collecting-it/",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-11-06T06:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-25",
"title": "Spatial frequency domain imaging in 2019: principles, applications, and perspectives - PMC",
"organization": "Unknown",
"description": "This review is focused on the current status (year 2019) of a mesoscopic and macroscopic imaging technique called spatial frequency domain imaging (SFDI)",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC6995958/",
"score": 0.5175,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-26",
"title": "[PDF] Chinese Research in Space-Based Space Surveillance - Air University",
"organization": "Unknown",
"description": "Aug 26, 2024 \u00b7 Since diffraction- limited resolution is directly proportional to aperture (or lens) size, a surveillance satellite 1,000 km below the GEO belt ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.airuniversity.af.edu/Portals/10/CASI/documents/Research/Space/2024-08-26+Chinese+Research+in+Space-Based+Space+Surveillance.pdf",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-27",
"title": "[1608.03211] Subdiffraction incoherent optical imaging via spatial-mode demultiplexing",
"organization": "Unknown",
"description": "Aug 9, 2016 \u00b7 I propose a spatial-mode demultiplexing (SPADE) measurement scheme for the far-field imaging of spatially incoherent optical sources. Missing: exploration | Show results with: exploration",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/1608.03211",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-28",
"title": "[PDF] High-throughput Super-Resolution Imaging Chip based on Miniaturized Full- frequency Encoded-illumination - arXiv",
"organization": "Unknown",
"description": "The mini-FEI super-resolution imaging chip is simple and cost effective to fabricate and can be used in conjunction with any inverted brightfield microscope ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/pdf/2507.16693",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-29",
"title": "SmallSat capabilities - LLNL Space Science Institute",
"organization": "Unknown",
"description": "These optics are diffraction limited, and the design is athermal (when the glass expands or contracts due to changes in temperature, the focus remains constant) ...",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://space-science.llnl.gov/research/smallsat-capabilities",
"score": 0.4475,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-30",
"title": "The Feynman Lectures on Physics Vol. I Ch. 30: Diffraction",
"organization": "Unknown",
"description": "The only complication is that a crystal is three-dimensional; it is a repeating three-dimensional array of atoms. We cannot use ordinary light, because we must use something whose wavelength is less than the space between the atoms or we get no effect; so we must use radiation of very short wavelength, i.e., x-rays.",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.feynmanlectures.caltech.edu/I_30.html",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-31",
"title": "Microsoft Word - Ch. 05 Diffraction - MIT OpenCourseWare Diffraction & Interference Diffraction and Resolution - Rochester Institute of Technology Handout 4: Basics of Diffraction - The University of Toledo Microsoft PowerPoint - lecture5.ppt Diffraction and Resolution - Rochester Institute of Technology MASSACHUSETTS INSTITUTE OF TECHNOLOGY Microsoft PowerPoint - lecture5.ppt MASSACHUSETTS INSTITUTE OF TECHNOLOGY",
"organization": "Unknown",
"description": "For discussing holography, we will concentrate on diffraction effects caused by repetitive or periodic structures, such as evenly- spaced slits in an opaque screen (like a picket fence). We usually describe these by a transmittance function, t(x,y), and periodicity in the x-direction with spacing d means, in mathematical terms, that t(x-md,y) = t(x,... See full list on ocw.mit. edu The situation is actually more complex than it might seem at first glance. Even if the laser beam goes through an empty frame, it eventually starts to diverge, to expand at some constant diameter increase per distance, which is to say that it diverges with some constant angle, \u03b8diverge. Even if the wavefronts are carefully collimated when they come... See full list on ocw.mit. edu The previous discussion showed that an incoming plane perpendicular to the grating results in one plane wave angled up at an angle \u201ctheta\u201d ( ) given by \u03b8 sin( = d, and another wave angled downward by the same angle, at - And \u03b8) \u03bb/ \u03b8. above and below those are more waves deflected by larger angles, given by sin( ) = \u00b12 d. If the slits have a suitabl... See full list on ocw.mit. edu Our arguments for physical reasonableness have been built on a model of the grating as a series of narrow slits, with assurances that the angles depend only on the spatial frequency of the slits and not on their width or other properties. Now we will examine this premise for a special kind of slit, one that attenuates the wavefront according to a s... See full list on ocw.mit. edu What happens when light hits a picket fence structure (that is, a \u201cgrating\u201d) is truly amazing, and raises all kinds of doubts about our real-world physical intuition. Suppose we let the light trickle through one photon at a time? Which direction does an individual photon take? Such questions are the meat of quantum physics courses, and this is a cl... See full list on ocw.mit. edu The Diffraction Limit Diffraction imposes a fundamental limit on the resolution of optical systems: Suppose we want to image 2 distant points, and S 2, through an aperture of width a: Two points are resolved when the maximum of one is at the minimum of the second Diffraction causes points of light which are close together to blur into a single spot: it sets a limit on the resolution with which one can see. The smallest angle at which two points of light may be distinguished is X-ray diffraction \u201cScattering of X-rays by the atoms of a crystal that produces an interference effect so that the diffraction pattern gives information on the structure of the crystal or the identity of a crystalline substance\u201d (Webster\u2019s) Does diffraction limit image quality? If the distance between adjacent pixels is less than the minimum resolvable separation due to diffraction , then diffraction limits the image quality. The \u201cfnumber\u201d of a lens is defined as f/D. To mini mize diffraction , you want a small fnumber, i.e., a large aperture*. *This assumes a \u2018perfect lens\u2019. Why is diffraction important? Diffraction causes points of light which are close together to blur into a single spot: it sets a limit on the resolution with which one can see . lambda sin(theta) = ---------- What is the maximum light intensity in a diffraction pattern? 0 is the maximum light intensity. Thus, A monochromatic light is incident on a single slit of width 0.800 mm, and a diffraction pattern is formed at a screen which is 0.800 m away from the slit. The second-order bright fringe is at a distance 1.60 mm from the center of the central maximum. Does diffraction limit focusing a laser beam to a small spot? However, diffraction limits this . after passing through a perfect lens with focal length f = 5mm and diameter D lens = 6 mm? There are many times you would like to focus a laser beam to as small a spot as possible. However, diffraction limits this. after passing through a perfect lens with focal length f = 5mm and diameter D lens = 6 mm? Diffraction is the bending of waves as they pass by an object or through an aperture. In a single-slit Fraunhofer diffraction , the condition for destructive interference is",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://ocw.mit.edu/courses/mas-450-holographic-imaging-spring-2003/4c969aa489671f9bb3820c1a9c0a1335_ch05_diffraction.pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-32",
"title": "Diffraction and Resolution - Rochester Institute of Technology",
"organization": "Unknown",
"description": "Diffraction causes points of light which are close together to blur into a single spot: it sets a limit on the resolution with which one can see. The smallest angle at which two points of light may be distinguished is",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "http://spiff.rit.edu/classes/phys213/lectures/diffr/diffr_long.html",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-33",
"title": "Handout 4: Basics of Diffraction - The University of Toledo",
"organization": "Unknown",
"description": "X-ray diffraction \u201cScattering of X-rays by the atoms of a crystal that produces an interference effect so that the diffraction pattern gives information on the structure of the crystal or the identity of a crystalline substance\u201d (Webster\u2019s)",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://www.utoledo.edu/nsm/chemistry/people/Webpages/pdf/4-diffraction-basics.pdf",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-34",
"title": "A novel embedded cross framework for high-resolution salient object ...",
"organization": "Unknown",
"description": "Specifically, we first design a cross network as a baseline model for salient object detection . Then, the dual-path transformer is embedded into the cross network with the objective of integrating fine-grained visual contextual information and target details while suppressing the disparity of the feature space .",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://link.springer.com/article/10.1007/s10489-024-06073-x",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-35",
"title": "[2310.08408] XLuminA: An Auto-differentiating Discovery Framework for Super-Resolution Microscopy - arXiv",
"organization": "Unknown",
"description": "Oct 12, 2023 \u00b7 Ultimately, XLuminA identified a novel experimental blueprint featuring sub-diffraction imaging capabilities. This work constitutes an ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/2310.08408",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-36",
"title": "[1305.1353] Subdiffraction-limited quantum imaging within a living cell - arXiv",
"organization": "Unknown",
"description": "May 6, 2013 \u00b7 We report both sub-diffraction-limited quantum metrology and quantum enhanced spatial resolution for the first time in a biological context. Missing: exploration | Show results with: exploration",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/1305.1353",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-37",
"title": "[2206.02335] Super-resolution multicolor fluorescence microscopy enabled by an apochromatic super-oscillatory lens with extended depth-of-focus - arXiv",
"organization": "Unknown",
"description": "Jun 6, 2022 \u00b7 The present study provides not only a practical route to far-field multicolor super-resolution imaging but also a viable approach for constructing imaging ... Missing: space exploration",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/abs/2206.02335",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-38",
"title": "XLuminA: An Auto-differentiating Discovery Framework for Super-Resolution Microscopy",
"organization": "Unknown",
"description": "Feb 23, 2024 \u00b7 Ultimately, XLuminA identified a novel experimental blueprint featuring sub-diffraction imaging capabilities. This work constitutes and ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/html/2310.08408v3",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-39",
"title": "Incoherent Imaging with Spatially Structured Quantum Probes - arXiv",
"organization": "Unknown",
"description": "Oct 10, 2025 \u00b7 This simple problem serves as a testbed for structured twin-beam echoes, illustrating how the protocol amplifies single-photon detection ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/html/2510.09521v1",
"score": 0.4325,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-40",
"title": "CNN based 2D object detection techniques: a review - Frontiers",
"organization": "Unknown",
"description": "Object recognition technologies have evolved from traditional methods to sophisticated, modern approaches. Contemporary object detection systems, leveraging high accuracy and promising results, can identify objects of interest in images and videos.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.frontiersin.org/journals/computer-science/articles/10.3389/fcomp.2025.1437664/full",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-41",
"title": "Infrared spectral imaging-based image recognition for motion detection",
"organization": "Unknown",
"description": "Optimization of spectral-domain optical coherence tomography with a supercontinuum source for in vivo motion detection of low reflective outer hair cells in Guinea pig cochleae",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S2666603025000016",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-42",
"title": "Hedlen/awesome-segment-anything - GitHub",
"organization": "Unknown",
"description": "application image-generation awesome-list segmentation object-detection inpainting suvey stable-diffusion chatgpt segment-anything Readme MIT license",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://github.com/Hedlen/awesome-segment-anything",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-43",
"title": "Optical image processing and applications empowered by vision-language models",
"organization": "Unknown",
"description": "This review systematically examines the technological evolution in optical image processing and applications.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S3051177125000031",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-44",
"title": "Improved YOLOv8 algorithms for small object detection in aerial imagery - ScienceDirect",
"organization": "Unknown",
"description": "This study, based on the YOLOv8s network, targets issues in small object detection tasks and proposes an improved model with enhancements in four key aspects: ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.sciencedirect.com/science/article/pii/S1319157824002027",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "be66d6e8-45",
"title": "Red Cat Holdings, Inc. (NASDAQ:RCAT) Q3 2024 Earnings Call Transcript",
"organization": "Unknown",
"description": "Red Cat Holdings, Inc. (NASDAQ:RCAT) Q3 2024 Earnings Call Transcript March 18, 2024 Red Cat...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://finance.yahoo.com/news/red-cat-holdings-inc-nasdaq-134405410.html",
"score": 0.35055548118317487,
"relevance_score": 0.0,
"trl_estimate": null,
"award_amount": null,
"published_date": "2024-01-14T18:15:26+00:00",
"award_id": null,
"patent_number": null
}
],
"source_stats": {
"sbir": 0,
"patents": 0,
"contracts": 0,
"web": 17,
"news": 6
},
"total_results_found": 46,
"search_duration_seconds": 242.306346,
"success": true,
"error": null
}

View File

@ -0,0 +1,871 @@
{
"id": "efbb4b4c",
"capability_gap": "Need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"timestamp": "2026-01-13T13:15:40.089408",
"decomposition": {
"original_query": "Need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability gap requires a technology to enhance Space Domain Awareness (SDA) for objects that are currently undetectable due to being beyond the diffraction limit of traditional optical systems. This necessitates innovative solutions that can either extend detection capabilities, improve resolution, or employ alternative sensing methods.",
"technical_domains": [
"Advanced Optics",
"Infrared and Hyperspectral Imaging",
"Microwave and Radar Remote Sensing",
"Quantum Sensors",
"Machine Learning for Data Fusion"
],
"search_queries": [
"(Space Domain Awareness OR SDA) AND (diffraction limit OR resolution enhancement)",
"(Space Domain Awareness OR SDA) AND (infrared OR hyperspectral OR microwave OR radar)",
"(Space Domain Awareness OR SDA) AND (quantum sensors OR quantum imaging)",
"(Space Domain Awareness OR SDA) AND (machine learning OR data fusion)",
"(Space Domain Awareness OR SDA) AND (super-resolution OR hyper-acuity)"
],
"sbir_queries": [
"(Space Domain Awareness OR SDA) AND (diffraction limit OR resolution enhancement) AND (R&D OR experimental)",
"(Space Domain Awareness OR SDA) AND (quantum sensors OR quantum imaging) AND (prototype OR demonstration)"
],
"patent_queries": [
"(Space Domain Awareness OR SDA) AND (diffraction limit OR resolution enhancement) AND (optics OR infrared OR microwave)",
"(Space Domain Awareness OR SDA) AND (quantum sensors OR quantum imaging) AND (patent OR invention)"
],
"news_queries": [
"(Space Domain Awareness OR SDA) AND (new technology OR breakthrough)",
"(Space Domain Awareness OR SDA) AND (enhanced resolution OR improved detection)"
],
"keywords": [
"Super-resolution",
"Hyper-acuity",
"Quantum imaging",
"Machine learning",
"Data fusion",
"Infrared",
"Hyperspectral",
"Microwave",
"Radar"
],
"exclusions": [
"Earth observation",
"Atmospheric sensing",
"Ground-based radar",
"Commercial satellite imagery"
],
"target_trl_range": [
4,
7
],
"success": true,
"error": null
},
"candidates": [
{
"id": "efbb4b4c-0",
"title": "Voyager and Palantir Developing AI-Powered Solution for Space Domain Awareness Applications",
"organization": "Palantir Technologies",
"description": "DENVER, March 10, 2025 /PRNewswire/ \u2014 Voyager Technologies (Voyager), a global leader in defense technology and space solutions, is expanding its partnership with Palantir Technologies (NASDAQ: PLTR) to develop AI-powered solutions for enhanced Space ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.lagrandeobserver.com/2025/03/10/voyager-and-palantir-developing-ai-powered-solution-for-space-domain-awareness-applications/",
"score": 0.6310165798384055,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-03-10T03:59:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-1",
"title": "Voyager Expands AI Partnership With Palantir For Space Security",
"organization": "Palantir Technologies",
"description": "(RTTNews) - Voyager Technologies is strengthening its collaboration with Palantir Technologies (PLTR) to develop AI-driven solutions for Space Domain Awareness or SDA, enhancing the detection and mitigation of potential space threats. The partnership ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.nasdaq.com/articles/voyager-expands-ai-partnership-palantir-space-security",
"score": 0.6310165798384055,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-03-10T23:31:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-2",
"title": "Infinite Orbits to provide French Space Command with Orbit Guard SDA satellite",
"organization": "Armaments",
"description": "A concept graphic of Infinite Orbits' Orbit Guard Space Domain Awareness microsatellite, released in August 2025. (Infinite Orbits) France's Directorate General of Armaments (DGA) on behalf of French Space Command (Commandement de l'Espace: CDE) signed a ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.janes.com/osint-insights/defence-news/air/infinite-orbits-to-provide-french-space-command-with-orbit-guard-sda-satellite",
"score": 0.6310165798384055,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-08-20T00:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-3",
"title": "MDA Space to deliver advanced space domain awareness for Canada's Defence",
"organization": "MDA Space",
"description": "\u30fbMDA Space (TSX:MDA) and ThothX Group have been selected by Canada's Department of National Defence to deliver advanced Space Domain Awareness (SDA) services, enhancing national space security \u30fbThe solution combines ThothX's Earthfence Radar ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.msn.com/en-ca/money/topstories/mda-space-to-deliver-advanced-space-domain-awareness-for-canada-s-defence/ar-AA1NAARW",
"score": 0.6310165798384055,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-09-30T11:37:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-4",
"title": "Adaptive quantum accelerated imaging for space domain awareness",
"organization": "SES S.A.",
"description": "Feb 12, 2024 \u00b7 It is commonly used in microscopy and astronomy to enhance the quality of images degraded by blur or noise. The algorithm uses a model of the ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/html/2402.08047v1",
"score": 0.6074999999999999,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-5",
"title": "Space Domain Awareness | National Security Initiatives",
"organization": "National Security Initiatives",
"description": "The center offers expertise in discovery, tracking, and characterization, as well as in astrodynamics, machine learning , data visualization, and ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://nationalsecurity.arizona.edu/focus-areas/space-domain-awareness",
"score": 0.6074999999999999,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-6",
"title": "Diffraqtion Secures $4.2 Million to Deploy Quantum Camera ...",
"organization": "imaging and Space",
"description": "4 hours ago \u00b7 ... imaging and Space Domain Awareness (SDA) capabilities that bypass traditional optical limits. The company is currently collaborating with ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://news.satnews.com/2026/01/13/diffraqtion-secures-4-2-million-to-deploy-quantum-camera-constellations-for-sda/",
"score": 0.585,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-7",
"title": "Starris SDA-85 | Starris",
"organization": "Starris",
"description": "With proven reliability for multi-year missions, applications include in- space operations, space - domain awareness , and proliferated ISR.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.starris.com/starris-sda-85",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-8",
"title": "Infrared Sensing for Space -Based Space Domain Awareness",
"organization": "Infrared Sensing for Space",
"description": "Heritage Space Domain Awareness ( SDA ) missions have relied on the visible bandwidth to achieve mission goals. The visible bandwidth can suffer from low illumination gaps which hinders sensitivity and detection.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://amostech.com/TechnicalPapers/2023/Poster/Wright_R2.pdf",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-9",
"title": "InTrack Radar Technologies | Top Space Domain Awareness And...",
"organization": "InTrack Radar Technologies",
"description": "In space operations, some of the most critical and complex tasks\u2014missile warning, space domain awareness ( SDA ), and real-time tracking of high-speed objects\u2014demand deep technical expertise.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.aerospacedefenserevieweurope.com/in-track-radar-technologies",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-10",
"title": "Infrared Sensing from Space : Advancing Science and... - Lumenci",
"organization": "Space",
"description": "Infrared sensing from space reveals hidden cosmic structures, tracks climate shifts, monitors crop health, and more.The Space Domain Awareness ( SDA ) mission can be optimized to detect Resident Space Objects (RSOs).",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://lumenci.com/blogs/infrared-sensing-space-technology/",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-11",
"title": "PROVIDENCE: toward a 2.5m adaptive telescope for optical space ...",
"organization": "adaptive telescope for optical space",
"description": "Optical Space Domain Awareness ( SDA ) aims to provide high-quality angular (and possibly spectral/polarimetric) information on LEO and GEO satellites for object characterization and identification.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://hal.science/hal-04687215v1/document",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-12",
"title": "[PDF] A scalable cislunar space domain awareness constellation Eric ...",
"organization": "for architecting a cislunar space",
"description": "Here we present a subset of the capabilities of a tool developed for architecting a cislunar space domain awareness (SDA) constellation called QuantumNet, ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://amostech.com/TechnicalPapers/2023/Poster/Gorman.pdf",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-13",
"title": "Diffraqtion Raises $4.2 Million to Build Quantum Camera-Enabled ...",
"organization": "SES S.A.",
"description": "1 day ago \u00b7 Diffraqtion's novel approach unlocks large constellations of low-cost, high-precision imaging platforms for space domain awareness, defense, and ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://thequantuminsider.com/2026/01/13/diffraqtion-raises-4-2-million-to-build-quantum-camera-enabled-satellite-and-telescope-constellations/",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-14",
"title": "AI, Quantum Sensors, and the X-37B: The Tech Transforming Space ...",
"organization": "Tech Transforming Space",
"description": "Aug 21, 2025 \u00b7 Space Domain Awareness and Autonomous Operations. Space superiority means seeing, understanding, and reacting to everything. The X-37B now ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://ussfa.org/ai-quantum-sensors-and-the-x-37b-the-tech-transforming-space-superiority-today/",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-15",
"title": "Quantum-Accelerated Imaging for SDA | Zubin Jacob posted on the topic",
"organization": "Our recent research on Space",
"description": "Sep 16, 2024 \u00b7 Our recent research on Space Domain Awareness (SDA) has been published in the New Journal of Physics - IOP Publishing.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.linkedin.com/posts/zubin-jacob-21619517_our-recent-research-on-space-domain-awareness-activity-7241460866695528449-KHTk",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-16",
"title": "Space Domain Awareness - Advanced Technology Applications",
"organization": "Advanced Technology",
"description": "ATA \u2019 s Space Domain Awareness ( SDA ) solutions leverage modern technical approaches to provide comprehensive and real-time situational ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://ata-llc.com/solutions/space-domain-awareness/",
"score": 0.57,
"relevance_score": 0.7,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-17",
"title": "Space Force's ATLAS Space Domain Awareness Software Is Working - Here's What It's For",
"organization": "s ATLAS Space",
"description": "The U.S. Space Force has reached a crucial milestone, one that modernizes and enhances the command and control capabilities of the Defense Department's space wing. Nearly eight months after awarding the contract, it has approved the Advanced Tracking and ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.msn.com/en-us/news/technology/space-force-s-atlas-space-domain-awareness-software-is-working-here-s-what-it-s-for/ar-AA1Q4qwi",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-11-09T02:36:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-18",
"title": "China's StarDetect raises Series A funding to expand on-orbit computing and space domain awareness services",
"organization": "SES S.A.",
"description": "HELSINKI \u2014 Chinese commercial firm StarDetect has raised early funding as it seeks to establish itself as a provider of space domain awareness and satellite computing solutions. StarDetect, which focuses on satellite payloads that embed edge computing ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://spacenews.com/chinas-stardetect-raises-series-a-funding-to-expand-on-orbit-computing-and-space-domain-awareness-services/",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-10-30T00:00:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-19",
"title": "MDA SPACE SELECTED TO DELIVER ENHANCED SPACE SITUATIONAL AWARENESS DATA SERVICES TO CANADIAN DEPARTMENT OF NATIONAL DEFENCE",
"organization": "MDA Space",
"description": "BRAMPTON, ON, Sept. 25, 2025 /CNW/ - MDA Space Ltd. (TSX: MDA), a trusted mission partner to the rapidly expanding global space industry, today announced it has been selected to deliver enhanced space situation awareness to the Department of National ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://seekingalpha.com/pr/20244293-mda-space-selected-to-deliver-enhanced-space-situational-awareness-data-services-to-canadian",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-09-25T13:15:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-20",
"title": "Sidus Space Secures Subcontractor Role with MobLobSpace on NASA SBIR Radar Initiative with LizzieSat Hosting",
"organization": "Constellation Scaling Analysis for Space",
"description": "Sidus Space to Provide Spacecraft Integration Expertise and Constellation Scaling Analysis for Space Domain Awareness Sidus Space, Inc. (NASDAQ: SIDU), an innovative space and defense technology company, today announced its role as a subcontractor ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.morningstar.com/news/business-wire/20251204673065/sidus-space-secures-subcontractor-role-with-moblobspace-on-nasa-sbir-radar-initiative-with-lizziesat-hosting",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-12-04T05:30:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-21",
"title": "Space Force's ATLAS Space Domain Awareness Software Is Working - Here's What It's For",
"organization": "s ATLAS Space",
"description": "The U.S. Space Force has reached a crucial milestone, one that modernizes and enhances the command and control capabilities of the Defense Department's space wing. Nearly eight months after awarding the contract, it has approved the Advanced Tracking and ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.slashgear.com/2016468/space-force-atlas-space-domain-awareness-software-works-what-its-for/",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-11-09T00:01:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-22",
"title": "L3Harris Awarded $145 Million Contract to Modernize US Space Domain Awareness Capabilities",
"organization": "L3Harris Technologies",
"description": "MELBOURNE, Fla.--(BUSINESS WIRE)--L3Harris Technologies (NYSE:LHX) announced the award of option year four of the Maintenance Of Space Situational Awareness Integrated Capabilities (MOSSAIC) program. The $145 million contract from the U.S. Space Force ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.businesswire.com/news/home/20230419005194/en/L3Harris-Awarded-$145-Million-Contract-to-Modernize-US-Space-Domain-Awareness-Capabilities",
"score": 0.5260165798384056,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-04-17T00:11:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-23",
"title": "Firm | SBIR",
"organization": "SBIR The US Space",
"description": "The US Space Development Agency ( SDA ) needs cost-effective high-data-rate communications and navigation knowledge for connecting ground, air ...",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://www.sbir.gov/portfolio/1405421",
"score": 0.5175,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-24",
"title": "Finalists for International Space Pitch Day revealed - GOV.UK",
"organization": "Finalists for International Space",
"description": "... and present multiple, varied sources of terrestrial and SDA data to produce a single space picture dashboard of events occurring in near earth orbit ...",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://www.gov.uk/government/news/finalists-for-international-space-pitch-day-revealed",
"score": 0.5175,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-25",
"title": "Uncertainty Quantification in HSI Reconstruction using",
"organization": "Unknown",
"description": "... and partition-of-union upsampling that enriches the training distribution, producing a robust diffusion prior that is aware of the forward ...",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/html/2511.18473v1",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-26",
"title": "Thermal infrared characterization of spatially unresolved resident...",
"organization": "resident space",
"description": "\\KWDinfrared , space domain awareness , resident space object , characterization , spatially unresolved , thermal modeling.Capabilities used to inform active decision making for space users are known as Space Domain Awareness ( SDA ) (see, e.g., bloom_ space _2022 ).",
"source_type": "academic",
"source": "DuckDuckGo",
"url": "https://arxiv.org/html/2511.13030v1",
"score": 0.5025,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-27",
"title": "APPLICATIONS OPEN FOR COHORT 4 OF SDA TAP LAB - CATALYST CAMPUS MINI ACCELERATOR",
"organization": "designed to connect emerging technology",
"description": "Catalyst Campus is proud to announce they are now accepting applications for Cohort 4 of the SDA TAP Lab - Catalyst Campus Mini Accelerator, a high-impact accelerator program designed to connect emerging technology companies with national security needs.",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://spacenews.com/applications-open-for-cohort-4-of-sda-tap-lab-catalyst-campus-mini-accelerator/",
"score": 0.48499999999999993,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2026-01-08T21:58:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-28",
"title": "Managing space domain awareness data has become a greater",
"organization": "Managing space",
"description": "What\u2019s emerged so far is a crowded, fragmented market of space domain awareness ( SDA ) platforms built on different sensors, catalogs and analytics.",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://spacenews.com/managing-space-domain-awareness-data-has-become-a-greater-challenge-than-collecting-it/",
"score": 0.48000000000000004,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-29",
"title": "In-Space Operations | Starris",
"organization": "Starris",
"description": "The system delivers diffraction -limited performance, ideal for integration into small satellites and multi-sensor payloads.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.starris.com/in-space-operations",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-30",
"title": "Proliferated ISR | Starris",
"organization": "Starris",
"description": "Starris products are shelf-stable, mass-manufacturable, and ready for rapid deployment, while high- resolution , diffraction -limited optics provide ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.starris.com/proliferated-isr",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-31",
"title": "Military Space Situational Awareness : Defence & Security : All",
"organization": "Military Space",
"description": "As Europe's premier event for space domain awareness , join 250+ space professionals, 40+ speakers, and representatives from 20+ nations. Immerse yourself in three days of innovation, collaboration with industry leaders, and insights from international military experts.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://smgconferences.com/defence/archive/5-2016/conference/Future-Helicopter-Technology",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-32",
"title": "Vyoma\u2019s first Space Domain Awareness satellite has... - Ansa.it",
"organization": "s first Space",
"description": "January 2026 - Vyoma, a Germany-based company providing Space Domain Awareness ( SDA ) capabilities, has launched its pioneering surveillance satellite, Flamingo-1, on Sunday, January 11th, 2026 from Vandenberg Space Force Base, California, USA.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.ansa.it/pressrelease/english/2026/01/13/vyomas-first-space-domain-awareness-satellite-has-reached-orbit_9a7cb60a-051d-4d4b-9f4a-7fdaffd07a94.html",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-33",
"title": "Keep looking up: Australia\u2019s next steps in space surveillance - ASPI",
"organization": "s next steps in space",
"description": "Australia\u2019s role in critical space domain awareness ( SDA ) is becoming a major mission for the defence force. Australia has long provided a \u2018suitable piece of real estate\u2019 as part of the Five Eyes intelligence-sharing community and through the 2014 Combined Space Operations...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.aspi.org.au/strategist-posts/keep-looking-up-australias-next-steps-in-space-surveillance/",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-34",
"title": "HEO and Quantum Aero Partner to Bring Non-Earth Imaging to South ...",
"organization": "foundation for advanced space",
"description": "Oct 23, 2025 \u00b7 The partnership will establish a foundation for advanced space domain awareness ... imaging of satellites, space debris, and other orbital assets.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.heospace.com/resources/stories/heo-and-quantum-aero-partner-to-bring-non-earth-imaging-to-south-korea",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-35",
"title": "Space Domain Awareness Companies: A Buyer's Guide",
"organization": "Quantum Technologies",
"description": "Hyperspectral Imaging: Advanced sensors can capture data across multiple wavelengths, enhancing target detection capabilities. Quantum Technologies: Emerging ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.army-technology.com/buyers-guide/military-satellites-equipment-services-sda-sensors-army/",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-36",
"title": "Military Space Situational Awareness : Defence & Security : UK",
"organization": "Military Space",
"description": "As Europe's premier event for space domain awareness , join 250+ space professionals, 40+ speakers, and representatives from 20+ nations. Immerse yourself in three days of innovation, collaboration with industry leaders, and insights from international military experts.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://smgconferences.com/defence/uk/conference/milspace",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-37",
"title": "space domain awareness \u2013 Planetary Systems AI \u2013 PSAI",
"organization": "Planetary Systems",
"description": "Space domain awareness ( SDA ) \u2013 and all the data that must flow to support it \u2013 no longer hovers in a theoretical future.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://planetarysystems.ai/tag/space-domain-awareness/",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-38",
"title": "SDA \u2013 Planetary Systems AI \u2013 PSAI",
"organization": "Planetary Systems",
"description": "Space domain awareness ( SDA ) \u2013 and all the data that must flow to support it \u2013 no longer hovers in a theoretical future.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://planetarysystems.ai/tag/sda/",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-39",
"title": "Space Domain Awareness: A Global Issue - Space Data Association",
"organization": "SES S.A.",
"description": "... 2023, where our Chairman, Joe Chan, will join a panel session about why space domain awareness is vital if we are to protect assets in orbit and on ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://www.space-data.org/sda/blog/space-domain-awareness-2/",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-40",
"title": "Modern Software Mission Applications | ARKA",
"organization": "and space",
"description": "... Space Domain Awareness ( SDA ) challenges from an end-to-end mission perspective that optimizes ground- and space -based sensing, mission data ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://arka.org/modern-software-mission-applications/",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-41",
"title": "2024 Technical Papers - AMOS Conference",
"organization": "Georgia Tech",
"description": "... Orbit Determination via Transfer Learning Gregory Badura, Georgia Tech Research Institute; Miguel Velez-Reyes, University of Texas at El Paso; Brian ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://amostech.com/2024-technical-papers/",
"score": 0.465,
"relevance_score": 0.4,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-42",
"title": "MDA Space to Enhance Canadian Space Security with New SDA Services",
"organization": "MDA Space",
"description": "Take advantage of TipRanks Premium at 55% off! Unlock powerful investing tools, advanced data, and expert analyst insights to help you invest with confidence. MDA Space Ltd ( (TSE:MDA)) has shared an update. MDA Space Ltd. has been selected to provide ...",
"source_type": "news",
"source": "DuckDuckGo",
"url": "https://www.msn.com/en-us/technology/general/mda-space-to-enhance-canadian-space-security-with-new-sda-services/ar-AA1NiBa2",
"score": 0.45601657983840554,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": "2025-10-21T21:13:00+00:00",
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-43",
"title": "Space Capability Management Plan - GOV.UK",
"organization": "critical capabilities spanning the Space",
"description": "Seven critical capabilities spanning the Space domain have been identified to support UK national security and the needs of Defence.",
"source_type": "government",
"source": "DuckDuckGo",
"url": "https://www.gov.uk/government/publications/space-capability-management-plan/space-capability-management-plan",
"score": 0.4475,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-44",
"title": "advanced composites, sandwich core technology, CFRP, carbon",
"organization": "Advanced Maui Optical and Space",
"description": "Space Domain Awareness ( SDA ), Space Surveillance and Awareness , Advanced Maui Optical and Space Surveillance Technologies (AMOS), Air Force Maui ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "http://www.dreamscopes.com/pages/articles.htm",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-45",
"title": "CTSGC Spring 2025 Awardees Announced! | Connecticut Space Grant",
"organization": "Connecticut Space",
"description": "... my work will enhance my professional development, expand my global network, and support translational insights relevant to both oncology and space ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://ctspacegrant.org/10420/ctsgc-spring-2025-awardees-announced",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-46",
"title": "Activities developed aimed at supporting companies in the region",
"organization": "companies in the region Space",
"description": "Space Domain Awareness ; In-Orbit Service, Assembly and Manufacturing; Launch; Position, Navigation and Timing; Earth Observation; Space Data ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://midlandsspacecluster.org.uk/programs/",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-47",
"title": "Michael Daniel Ho - The Wildlife Ho-tographer: Canon Announced",
"organization": "SES S.A.",
"description": "Scene Intelligent Auto mode then chooses the exposure and enhancements that can bring out the beauty in virtually any scene or situation.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://blog.michaeldanielho.com/2016/03/canon-announced-eos-rebel-t6-dslr-camera.html",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-48",
"title": "Michael Daniel Ho - The Wildlife Ho-tographer: Canon Announced",
"organization": "Canon",
"description": "... and features including a Genuine Canon Lens for capturing high-clarity, virtually distortion-free video, a 2.1 Megapixel (1920 x 1080) resolution ...",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://blog.michaeldanielho.com/2016/03/canon-announced-new-indooroutdoor.html",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
},
{
"id": "efbb4b4c-49",
"title": "SDA - Wikipedia",
"organization": "characterize passive and active space",
"description": "Look up SDA in Wiktionary, the free dictionary. Space domain awareness , the ability to detect, track, and characterize passive and active space objects. Stereo Dimensional Array, a Polk Audio technology.",
"source_type": "web",
"source": "DuckDuckGo",
"url": "https://en.wikipedia.org/wiki/SDA",
"score": 0.395,
"relevance_score": 0.2,
"trl_estimate": null,
"award_amount": null,
"published_date": null,
"award_id": null,
"patent_number": null
}
],
"source_stats": {
"sbir": 0,
"patents": 0,
"contracts": 0,
"web": 31,
"news": 17
},
"total_results_found": 55,
"search_duration_seconds": 299.136988,
"success": true,
"error": null
}

View File

@ -0,0 +1,563 @@
{
"id": "df5fe43c",
"search_id": "70cc01a3",
"user_input": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"parsed_capability": {
"original_query": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability need is for a technology that enhances Space Domain Awareness by detecting and tracking objects beyond the diffraction limit, improving situational awareness and orbital debris management.",
"technical_domains": [
"Space Situational Awareness",
"Remote Sensing",
"Optics"
],
"search_queries": [
"diffraction unlimited imaging technologies prototype demonstrated",
"superresolution space domain awareness sensor system device",
"nanoscopy orbital debris tracking algorithm developed tested",
"high resolution space situational awareness optics patent Phase II",
"low light space object detection sensor demonstrated deployed"
],
"sbir_queries": [
"SBIR diffraction unlimited imaging R&D development space domain awareness",
"Small Business Innovation Research superresolution orbital debris tracking algorithm"
],
"patent_queries": [
"Patent diffraction unlimited imaging apparatus method system optics",
"Alternative patent query: nanoscopy orbital debris detection sensor device"
],
"news_queries": [
"News recent technology announcements diffraction unlimited space domain awareness",
"Industry defense news superresolution orbital debris tracking algorithm demonstrated"
],
"keywords": [
"diffraction unlimited",
"superresolution",
"nanoscopy",
"high resolution imaging",
"orbital debris tracking"
],
"exclusions": [
"overview",
"challenge",
"potential",
"future",
"review",
"survey",
"introduction"
],
"target_trl_range": [
4,
7
],
"capability_need": {
"functional_need": "The core capability being sought is a technology that can detect, track, and characterize objects in space beyond the diffraction limit.",
"domain": "Primary domain: Space Domain Awareness",
"implied_constraints": [
"Must operate in low-light conditions",
"Should be lightweight and compact for launch"
],
"technology_types_sought": [
"sensor",
"algorithm",
"optics"
]
},
"capability_criteria": [
{
"criterion": "The technology must provide high-resolution imaging or sensing capabilities beyond the diffraction limit.",
"weight": "must_have",
"keywords": [
"superresolution",
"nanoscopy",
"diffraction unlimited",
"high resolution imaging"
]
},
{
"criterion": "Secondary capability that would be valuable is real-time object tracking and data processing.",
"weight": "should_have",
"keywords": [
"real-time tracking",
"data processing",
"orbital debris management"
]
},
{
"criterion": "Nice-to-have capability is integration with existing space-based or ground-based systems for seamless operation.",
"weight": "nice_to_have",
"keywords": [
"system integration",
"interoperability",
"space-based systems",
"ground stations"
]
}
],
"technology_indicators": {
"positive": [
"prototype",
"demonstrated",
"developed",
"patent",
"Phase II",
"system",
"device",
"sensor",
"algorithm",
"tested",
"deployed"
],
"negative": [
"overview",
"challenge",
"problem",
"review",
"survey",
"introduction",
"future",
"potential",
"could",
"might"
]
},
"success": true,
"error": null
},
"grouped_technologies": [
{
"id": "a5979731",
"canonical_name": "Real-time Superresolution Signal Processing",
"alternate_names": [],
"technology_type": "algorithm",
"description": "A system and method of combining signals to achieve superresolution beyond the diffraction limit.",
"capabilities": [
"Superresolution signal processing",
"Spectral analysis"
],
"mechanism": null,
"developers": [
{
"name": "Unknown",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "patent",
"source_name": "PATENT",
"title": "US5748507A - Real-time superresolution signal processing -",
"url": "https://patents.google.com/patent/US5748507A/en",
"snippet": "This invention relates to superresolution signal processing and spectral analysis and, more particularly, to a system and method of combining a ...",
"contribution": "technical claims, innovation details, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"a5979731"
]
},
{
"id": "7693e0b7",
"canonical_name": "Wavelet Transform Super-Resolution",
"alternate_names": [],
"technology_type": "algorithm",
"description": "A method that transforms infrared and radar signals into the wavelet domain to achieve super-resolution.",
"capabilities": [
"Super-resolution",
"Wavelet transform"
],
"mechanism": null,
"developers": [
{
"name": "Unknown",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "patent",
"source_name": "PATENT",
"title": "US5952957A - Wavelet transform of super-resolutions based on",
"url": "https://patents.google.com/patent/US5952957A/en",
"snippet": "... and a display device connected to the processor, wherein the processor transforms the infrared signal and the radar signal into a wavelet domain ...",
"contribution": "technical claims, innovation details, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"7693e0b7"
]
},
{
"id": "7fcd1a9a",
"canonical_name": "Diffraction-Unlimited Imaging Method",
"alternate_names": [],
"technology_type": "method",
"description": "A technique that uses an optical device in conjunction with a Spatial Light Modulator (SLM) to acquire and resolve remote objects with resolution exceeding the diffraction limit of the optical device.",
"capabilities": [
"Exceeds diffraction limit"
],
"mechanism": null,
"developers": [
{
"name": "Massachusetts Institute of Technology",
"type": "unknown",
"location": null
},
{
"name": "OSA",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "web",
"source_name": "WEB",
"title": "Diffraction-unlimited imaging based on conventional ...",
"url": "https://hal.science/hal-02314422/document",
"snippet": "Diffraction-Unlimited Imaging Based on Conventional Optical \u00b7 Devices. Optics Express, 2020, 28 (8), pp.11243. 10.1364/OE.388084. hal-02314422v3 ... Vol. 28, No. 8 / 13 April 2020 / Optics Express 11243 ... 2Research Laboratory of Electronics, Massachusetts Institute of Technology, Cambridge, MA 02139, USA",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
},
{
"source_type": "web",
"source_name": "WEB",
"title": "Diffraction-unlimited imaging based on conventional optical devices",
"url": "https://opg.optica.org/oe/fulltext.cfm?uri=oe-28-8-11243&id=429676",
"snippet": "April 1, 2020 - We here propose and demonstrate experimentally a novel imaging paradigm where an optical device can be used in conjunction with a SLM to acquire and resolve remote objects with resolution that exceeds the diffraction limit of the optical device .",
"contribution": "general information",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
},
{
"source_type": "web",
"source_name": "WEB",
"title": "OSA | Diffraction-unlimited imaging based on conventional optical devices",
"url": "https://www.osapublishing.org/oe/fulltext.cfm?uri=oe-28-8-11243&id=429676",
"snippet": "April 1, 2020 - We here propose and demonstrate experimentally a novel imaging paradigm where an optical device can be used in conjunction with a SLM to acquire and resolve remote objects with resolution that exceeds the diffraction limit of the optical device .",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 3,
"grouping_confidence": 0.8,
"grouped_from": [
"3386cf02",
"1ddfa22c",
"9d82e035"
]
},
{
"id": "c8356605",
"canonical_name": "Lateral Overflow Integration Capacitor",
"alternate_names": [],
"technology_type": "sensor",
"description": "A type of sensor used in image sensors.",
"capabilities": [],
"mechanism": null,
"developers": [
{
"name": "Ritsumeikan Univ., Japan",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "web",
"source_name": "WEB",
"title": "2022 International Workshop on Image Sensors and Systems",
"url": "https://imagesensors.org/2022-international-workshop-on-image-sensor-and-systems-iwiss/",
"snippet": "... Sensor With Lateral Overflow Integration Capacitor\u201d by *Ai Otani, Hiroaki Ogawa (Ritsumeikan Univ., Japan), Ken Miyauchi, Sangman Han, Hideki Owada, ...",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"c8356605"
]
},
{
"id": "fba7aa66",
"canonical_name": "EVSCAN",
"alternate_names": [],
"technology_type": "algorithm",
"description": "A variation of the density-based spatial clustering of applications (DBSCAN) algorithm developed by Nanometrix.",
"capabilities": [],
"mechanism": null,
"developers": [
{
"name": "Nanometrix",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "government",
"source_name": "GOVERNMENT",
"title": "Single Extracellular VEsicle Nanoscopy - PMC - NIH",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC10329735/",
"snippet": "Jul 8, 2023 \u00b7 The EVSCAN algorithm, developed by Nanometrix, is a variation of the density\u2010based spatial clustering of applications (DBSCAN) algorithm ...",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"fba7aa66"
]
},
{
"id": "2bb12f19",
"canonical_name": "Intelligent Autopilot Algorithms",
"alternate_names": [],
"technology_type": "software",
"description": "Algorithms designed to improve the autonomy of spacecraft.",
"capabilities": [
"Autonomous navigation",
"Adaptive control"
],
"mechanism": null,
"developers": [
{
"name": "Seiler",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "academic",
"source_name": "ACADEMIC",
"title": "[PDF] AEROSPACE ENGINEERING AND MECHANICS",
"url": "https://conservancy.umn.edu/bitstreams/edd51669-2d94-4fc5-9558-7459e20ac5ce/download",
"snippet": "The objective of Seiler and Venkataraman's work is to develop intelligent algorithms for autopilots such that fixed- ... a telescope designed to track orbital ... Missing: nanoscopy | Show results with: nanoscopy",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"2bb12f19"
]
},
{
"id": "e6f77038",
"canonical_name": "Snapshot 3D Localization Algorithm",
"alternate_names": [],
"technology_type": "algorithm",
"description": "An algorithm for three-dimensional localization of space debris using snapshot data.",
"capabilities": [
"3D localization",
"Space debris tracking"
],
"mechanism": null,
"developers": [
{
"name": "localization of space",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "academic",
"source_name": "ACADEMIC",
"title": "[PDF] Non-convex optimization for 3D point source localization using a rotating ...",
"url": "https://arxiv.org/pdf/1804.04000",
"snippet": "Sep 27, 2018 \u00b7 To our knowledge, our algorithm is the first one developed so far for snapshot 3D localization of space debris and tracking of space debris via ...",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"e6f77038"
]
},
{
"id": "ee91f677",
"canonical_name": "Trackdem",
"alternate_names": [],
"technology_type": "software|algorithm",
"description": "A modeling algorithm developed by authors to identify, track, count, and estimate individual sizes of moving particles.",
"capabilities": [
"particle tracking",
"size estimation"
],
"mechanism": null,
"developers": [
{
"name": "Trackdem",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "web",
"source_name": "WEB",
"title": "Recent advances in utility of artificial intelligence towards multiscale ...",
"url": "https://www.sciencedirect.com/science/article/pii/S2215038222000127",
"snippet": "Trackdem (modeling algorithm authors developed) is a software that can identify and track moving particles, count, and estimate individual sizes. In lower ...",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"ee91f677"
]
},
{
"id": "84ac3947",
"canonical_name": "Hybrid Amplifier",
"alternate_names": [],
"technology_type": "system|device",
"description": "An amplifier used in adaptive optics systems, with a patent application introduced in June 2015.",
"capabilities": [
"adaptive optics"
],
"mechanism": null,
"developers": [
{
"name": "Adaptive Optics Systems",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [
"patent application"
],
"sources": [
{
"source_type": "web",
"source_name": "WEB",
"title": "Adaptive Optics Systems V | (2016) | Publications | SPIE",
"url": "https://spie.org/Publications/Proceedings/Volume/9909",
"snippet": "Because of the excellent results of this hybrid amplifier, a patent application has been introduced in June 12, 2015 under number No.1555381 and is being reviewed now. ... Four generations of sodium guide star lasers for adaptive optics in astronomy and space situational awareness",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"84ac3947"
]
},
{
"id": "a4550827",
"canonical_name": "ClearStar\u2122",
"alternate_names": [],
"technology_type": "system|platform",
"description": "A flexible, scalable laser communication system tailored for astronomy, space situational awareness, and research applications.",
"capabilities": [
"laser communication",
"astronomy support"
],
"mechanism": null,
"developers": [
{
"name": "HartSCI",
"type": "unknown",
"location": null
}
],
"trl_estimate": 5,
"trl_confidence": 0.7,
"trl_evidence": [],
"sources": [
{
"source_type": "web",
"source_name": "WEB",
"title": "HartSCI - Commercial Adaptive Optics Made Simple",
"url": "https://www.hartsci.com/",
"snippet": "ClearStar\u2122 represents the future of laser communication \u2014 a flexible, scalable system tailored for astronomy, space situational awareness, and research applications.",
"contribution": "general information, developer info",
"published_date": null,
"award_amount": null,
"award_id": null,
"patent_number": null
}
],
"source_count": 1,
"grouping_confidence": 1.0,
"grouped_from": [
"a4550827"
]
}
]
}

View File

@ -0,0 +1,757 @@
{
"id": "70cc01a3",
"user_input": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"parsed_capability": {
"original_query": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability need is for a technology that enhances Space Domain Awareness by detecting and tracking objects beyond the diffraction limit, improving situational awareness and orbital debris management.",
"technical_domains": [
"Space Situational Awareness",
"Remote Sensing",
"Optics"
],
"search_queries": [
"diffraction unlimited imaging technologies prototype demonstrated",
"superresolution space domain awareness sensor system device",
"nanoscopy orbital debris tracking algorithm developed tested",
"high resolution space situational awareness optics patent Phase II",
"low light space object detection sensor demonstrated deployed"
],
"sbir_queries": [
"SBIR diffraction unlimited imaging R&D development space domain awareness",
"Small Business Innovation Research superresolution orbital debris tracking algorithm"
],
"patent_queries": [
"Patent diffraction unlimited imaging apparatus method system optics",
"Alternative patent query: nanoscopy orbital debris detection sensor device"
],
"news_queries": [
"News recent technology announcements diffraction unlimited space domain awareness",
"Industry defense news superresolution orbital debris tracking algorithm demonstrated"
],
"keywords": [
"diffraction unlimited",
"superresolution",
"nanoscopy",
"high resolution imaging",
"orbital debris tracking"
],
"exclusions": [
"overview",
"challenge",
"potential",
"future",
"review",
"survey",
"introduction"
],
"target_trl_range": [
4,
7
],
"capability_need": {
"functional_need": "The core capability being sought is a technology that can detect, track, and characterize objects in space beyond the diffraction limit.",
"domain": "Primary domain: Space Domain Awareness",
"implied_constraints": [
"Must operate in low-light conditions",
"Should be lightweight and compact for launch"
],
"technology_types_sought": [
"sensor",
"algorithm",
"optics"
]
},
"capability_criteria": [
{
"criterion": "The technology must provide high-resolution imaging or sensing capabilities beyond the diffraction limit.",
"weight": "must_have",
"keywords": [
"superresolution",
"nanoscopy",
"diffraction unlimited",
"high resolution imaging"
]
},
{
"criterion": "Secondary capability that would be valuable is real-time object tracking and data processing.",
"weight": "should_have",
"keywords": [
"real-time tracking",
"data processing",
"orbital debris management"
]
},
{
"criterion": "Nice-to-have capability is integration with existing space-based or ground-based systems for seamless operation.",
"weight": "nice_to_have",
"keywords": [
"system integration",
"interoperability",
"space-based systems",
"ground stations"
]
}
],
"technology_indicators": {
"positive": [
"prototype",
"demonstrated",
"developed",
"patent",
"Phase II",
"system",
"device",
"sensor",
"algorithm",
"tested",
"deployed"
],
"negative": [
"overview",
"challenge",
"problem",
"review",
"survey",
"introduction",
"future",
"potential",
"could",
"might"
]
},
"success": true,
"error": null
},
"raw_results": [
{
"id": "web_1",
"title": "Diffraction-limited system - Wikipedia",
"snippet": "October 30, 2025 - Cameras with smaller sensors will tend to have smaller pixels, but their lenses will be designed for use at smaller f-numbers and it is likely that they will also operate in regime 3 for those f-numbers for which their lenses are diffraction limited. Given the same field of view, pixel count, shutter speed and shot noise SNR (i.e. the same amount of light collected per pixel), a small sensor and a large sensor of equivalent quality will produce the same digital image, with the same amount of blur due to both diffraction and depth of field.",
"url": "https://en.wikipedia.org/wiki/Diffraction-limited_system",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "SES S.A.",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_2",
"title": "Diffraction-unlimited imaging based on conventional ...",
"snippet": "Diffraction-Unlimited Imaging Based on Conventional Optical \u00b7 Devices. Optics Express, 2020, 28 (8), pp.11243. 10.1364/OE.388084. hal-02314422v3 ... Vol. 28, No. 8 / 13 April 2020 / Optics Express 11243 ... 2Research Laboratory of Electronics, Massachusetts Institute of Technology, Cambridge, MA 02139, USA",
"url": "https://hal.science/hal-02314422/document",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Massachusetts Institute of Technology",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_3",
"title": "Diffraction-unlimited imaging based on conventional optical devices",
"snippet": "April 1, 2020 - We here propose and demonstrate experimentally a novel imaging paradigm where an optical device can be used in conjunction with a SLM to acquire and resolve remote objects with resolution that exceeds the diffraction limit of the optical device .",
"url": "https://opg.optica.org/oe/fulltext.cfm?uri=oe-28-8-11243&id=429676",
"source_type": "web",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_4",
"title": "OSA | Diffraction-unlimited imaging based on conventional optical devices",
"snippet": "April 1, 2020 - We here propose and demonstrate experimentally a novel imaging paradigm where an optical device can be used in conjunction with a SLM to acquire and resolve remote objects with resolution that exceeds the diffraction limit of the optical device .",
"url": "https://www.osapublishing.org/oe/fulltext.cfm?uri=oe-28-8-11243&id=429676",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "OSA",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_5",
"title": "Diffraction-unlimited all-optical imaging and writing with a photochromic GFP | Nature",
"snippet": "September 11, 2011 - Lens-based optical microscopy failed to discern fluorescent features closer than 200 nm for decades, but the recent breaking of the diffraction resolution barrier by sequentially switching the fluorescence capability of adjacent features on and off is making nanoscale imaging routine. Reported fluorescence nanoscopy variants switch these features either with intense beams at defined positions or randomly, molecule by molecule. Here we demonstrate an optical nanoscopy that records raw data images from living cells and tissues with low levels of light.",
"url": "https://www.nature.com/articles/nature10497",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "Nature",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_6",
"title": "Pushing the resolution limit of coherent diffractive imaging | Light: Science & Applications",
"snippet": "August 28, 2025 - Here, we report a nearly 0.9NA ... this the ultra-high NA and the Abbe-limit k-factor, we demonstrate a record-high imaging resolution of 0.57 \u03bb for CDIs ....",
"url": "https://www.nature.com/articles/s41377-025-01963-2",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "Light: Science & Applications",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_7",
"title": "Diffraction-limited visible imaging for large aperture telescopes",
"snippet": "October 24, 2023 - The Lijiang 1.8-m adaptive telescope acquired high-resolution images of stars using PDSM-241's efficient closed-loop correction. Images from the visible R band (central wavelength 640 nm) are shown, the imaging resolution of which achieve 1.25 times of the diffraction limit and the imaging Strehl ratios (SR) close to 0.5.",
"url": "https://phys.org/news/2023-10-diffraction-limited-visible-imaging-large-aperture.html",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Strehl",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_8",
"title": "Breaking the Diffraction Barrier: Super-Resolution Imaging of Cells - PMC",
"snippet": "The first category is ensemble imaging approaches that use patterned illumination to spatially modulate the fluorescence behavior of molecules within a diffraction-limited region, such that not all of them emit simultaneously, thereby achieving subdiffraction limit resolution. This category includes stimulated emission depletion (STED) microscopy (Hell and Wichmann, 1994; Klar and Hell, 1999) and the related RESOLFT technology (Hofmann et al., 2005), as well as saturated structured illumination microscopy (SSIM) (Gustafsson, 2005; Heintzmann et al., 2002).",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC3272504/",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "and the related RESOLFT technology",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_9",
"title": "Diffraction-unlimited imaging: from pretty pictures to hard numbers | Cell and Tissue Research",
"snippet": "February 28, 2015 - Hell SW, Wichmann J (1994) Breaking the diffraction resolution limit by stimulated-emission - stimulated-emission-depletion fluorescence microscopy. Opt Lett 19:780\u2013782 ... Henriques R, Griffiths C, Rego EH, Mhlanga MM (2011) PALM and STORM: unlocking live-cell super-resolution. Biopolymers 95:322\u2013331 ... Hess ST, Girirajan TPK, Mason MD (2006) Ultra-high resolution imaging by fluorescence photoactivation localization microscopy.",
"url": "https://link.springer.com/article/10.1007/s00441-014-2109-0",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "Cell and Tissue Research",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_10",
"title": "Diffraction-Limited Imaging Performance for Your Optical ...",
"snippet": "Our team of experts at IDEX Health & Science specializes in the design, development, and manufacture of Melles Griot\u00ae Optical Systems for life science, industrial, diagnostic, and medical technology OEMs. We provide a fully integrated approach to complex imaging challenges, supporting every phase of development from proof-of-concept breadboards to high-volume production.",
"url": "https://www.idex-hs.com/capabilities/life-science-optics/diffraction-limited-imaging-performance",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Optical Systems",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_1",
"title": "Wi-Fi positioning system - Wikipedia",
"snippet": "The access point location database gets filled by correlating mobile device location data (determined by other systems , such as Galileo or GPS) with ...",
"url": "https://en.wikipedia.org/wiki/Wi-Fi_positioning_system",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "determined by other systems",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "patent_2",
"title": "US5748507A - Real-time superresolution signal processing -",
"snippet": "This invention relates to superresolution signal processing and spectral analysis and, more particularly, to a system and method of combining a ...",
"url": "https://patents.google.com/patent/US5748507A/en",
"source_type": "patent",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "patent_3",
"title": "US9562968B2 - Sensor system and method for determining target",
"snippet": "G01S13/00 \u2014 Systems using the reflection or reradiation of radio waves, e.g. ... G01S3/74 \u2014 Multi-channel systems specially adapted for ...",
"url": "https://patents.google.com/patent/US9562968B2/en",
"source_type": "patent",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_4",
"title": "Universal SuperResolution Framework \u2013 Graviational",
"snippet": "You \u2019 re absolutely right to be concerned about automatic gain control (AGC) in radio and audio systems \u2014 it\u2019s designed to stabilize ...",
"url": "https://theinternetfoundation.net/?p=19671",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "in radio and audio systems",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_5",
"title": "2022 International Workshop on Image Sensors and Systems",
"snippet": "... Sensor With Lateral Overflow Integration Capacitor\u201d by *Ai Otani, Hiroaki Ogawa (Ritsumeikan Univ., Japan), Ken Miyauchi, Sangman Han, Hideki Owada, ...",
"url": "https://imagesensors.org/2022-international-workshop-on-image-sensor-and-systems-iwiss/",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "on Image Sensors and Systems",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "patent_6",
"title": "US5952957A - Wavelet transform of super-resolutions based on",
"snippet": "... and a display device connected to the processor, wherein the processor transforms the infrared signal and the radar signal into a wavelet domain ...",
"url": "https://patents.google.com/patent/US5952957A/en",
"source_type": "patent",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "patent_7",
"title": "US9373023B2 - Method and apparatus for robustly collecting",
"snippet": "One embodiment of a system for acquiring an image of a facial feature of a subject includes a single wide field of view sensor configured to acquire ...",
"url": "https://patents.google.com/patent/US9373023B2/en",
"source_type": "patent",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "patent_8",
"title": "US7773118B2 - Handheld article with movement discrimination -",
"snippet": "If a flash is to be used, processor 120 causes a flash device 70 to generate a photographic flash in substantial coincidence with the recording of ...",
"url": "https://patents.google.com/patent/US7773118B2/en",
"source_type": "patent",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_9",
"title": "Keywords - Idiap Publications",
"snippet": "assistant system ... Automated Fingerprint Identification System (AFIS) ... bias aware",
"url": "https://publications.idiap.ch/keywords",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Automated Fingerprint Identification System",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_10",
"title": "\"SEMICONDUCTOR\": list of Horizon 2020 projects",
"snippet": "Thin film light-trapping enhanced quantum dot photovoltaic cells: an enabling technology for high power-to-weight ratio space solar arrays.",
"url": "https://www.fabiodisconzi.com/open-h2020/per-topic/semiconductor/list/index.html",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "enabling technology",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_1",
"title": "Single Extracellular VEsicle Nanoscopy - PMC - NIH",
"snippet": "Jul 8, 2023 \u00b7 The EVSCAN algorithm, developed by Nanometrix, is a variation of the density\u2010based spatial clustering of applications (DBSCAN) algorithm ...",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC10329735/",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "Nanometrix",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_2",
"title": "Single-Virus Tracking: From Imaging Methodologies to Virological ...",
"snippet": "Jan 17, 2020 \u00b7 The algorithm is thoroughly tested by manual tracking of the videotapes. The second study involves the motion of gold particles ...",
"url": "https://pubs.acs.org/doi/10.1021/acs.chemrev.9b00692",
"source_type": "web",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_3",
"title": "Three-dimensional tracking using a single-spot rotating point spread ...",
"snippet": "Dec 29, 2022 \u00b7 We designed a multiring spiral phase plate (SPP) generating a single-spot rotating point spread function (SS-RPSF) in a microscope.",
"url": "https://www.spiedigitallibrary.org/journals/journal-of-biomedical-optics/volume-27/issue-12/126501/Three-dimensional-tracking-using-a-single-spot-rotating-point-spread/10.1117/1.JBO.27.12.126501.full",
"source_type": "web",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_4",
"title": "Three-dimensional tracking using a single-spot rotating point spread ...",
"snippet": "We designed a multiring spiral phase plate (SPP) generating a single-spot rotating point spread function (SS-RPSF) in a microscope.",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC9799159/",
"source_type": "government",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_5",
"title": "[PDF] Breakthrough Technologies Developed by the Air Force ... - DTIC",
"snippet": "Oct 26, 2025 \u00b7 This history narrates the development of \"breakthrough\" technologies by the. Air Force Research Laboratory and its predecessor organizations ...",
"url": "https://apps.dtic.mil/sti/tr/pdf/ADA528970.pdf",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "Breakthrough Technologies",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_6",
"title": "[PDF] h Space S Space M on Success Through Tes",
"snippet": "was previously developed, tested, and improved by the Navy's FLTSATCOM program, while the. TDRS payload design represented an extension of existing ...",
"url": "https://ntrs.nasa.gov/api/citations/19950007649/downloads/19950007649.pdf",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "h Space S Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_7",
"title": "[PDF] AEROSPACE ENGINEERING AND MECHANICS",
"snippet": "The objective of Seiler and Venkataraman's work is to develop intelligent algorithms for autopilots such that fixed- ... a telescope designed to track orbital ... Missing: nanoscopy | Show results with: nanoscopy",
"url": "https://conservancy.umn.edu/bitstreams/edd51669-2d94-4fc5-9558-7459e20ac5ce/download",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "Seiler",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_8",
"title": "[PDF] Non-convex optimization for 3D point source localization using a rotating ...",
"snippet": "Sep 27, 2018 \u00b7 To our knowledge, our algorithm is the first one developed so far for snapshot 3D localization of space debris and tracking of space debris via ...",
"url": "https://arxiv.org/pdf/1804.04000",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "localization of space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_9",
"title": "Summary of the oral presentations (Materials in a space environment)",
"snippet": "Location of objects tracked by NORAD Meteoroids and orbital debris are a threat to spacecraft by causing structural damage and decompression, hypervelocity ...",
"url": "https://adsabs.harvard.edu/full/2003ESASP.540D..19V",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "Materials in a space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_10",
"title": "Recent advances in utility of artificial intelligence towards multiscale ...",
"snippet": "Trackdem (modeling algorithm authors developed) is a software that can identify and track moving particles, count, and estimate individual sizes. In lower ...",
"url": "https://www.sciencedirect.com/science/article/pii/S2215038222000127",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Trackdem",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_1",
"title": "Enhancing High-Resolution Imagery for Space Situational Awareness with Lucky Imaging and Adaptive Optics | SBIR.gov",
"snippet": "The laboratory test results will ... risk to be addressed in the later phase. BENEFIT: Anticipated benefits: Improved resolution imaging of satellites with no upgrades to the electro-optical hardware ....",
"url": "https://www.sbir.gov/content/enhancing-high-resolution-imagery-space-situational-awareness-lucky-imaging-and-adaptive-o-0",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "Resolution Imagery for Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_2",
"title": "Adaptive Optics Systems V | (2016) | Publications | SPIE",
"snippet": "Because of the excellent results of this hybrid amplifier, a patent application has been introduced in June 12, 2015 under number No.1555381 and is being reviewed now. ... Four generations of sodium guide star lasers for adaptive optics in astronomy and space situational awareness",
"url": "https://spie.org/Publications/Proceedings/Volume/9909",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Adaptive Optics Systems",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_3",
"title": "Overview on Space-Based Optical Orbit Determination Method Employed for Space Situational Awareness: From Theory to Application",
"snippet": "June 27, 2024 - Leveraging space-based optical platforms for space debris and defunct spacecraft detection presents several advantages, including a wide detection range, immunity to cloud cover, and the ability to maintain continuous surveillance on space targets. As a result, it has become an essential approach for accomplishing tasks related to space situational awareness.",
"url": "https://www.mdpi.com/2304-6732/11/7/610",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Overview on Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_4",
"title": "(PDF) High-resolution space situational awareness imaging using carbon fiber telescopes | Douglas Hope - Academia.edu",
"snippet": "December 10, 2022 - High-resolution space situational awareness imaging using carbon fiber telescopes",
"url": "https://www.academia.edu/92575639/High_resolution_space_situational_awareness_imaging_using_carbon_fiber_telescopes?f_ri=516",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "resolution space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_5",
"title": "Hyper-Spectral Speckle Imaging for Space Situational Awareness | The Journal of the Astronautical Sciences",
"snippet": "April 1, 2022 - The resulting turbulence and physical parameters are listed in Table 1. At the end of the propagation process, the wavefront is in the optical system\u2019s aperture plane, and the values are wrapped between \\(\\pi\\) and \\(-\\pi\\). To unwrap the phase, we use the Goldstein branch cut phase unwrapping algorithm [2]. We note that we have ignored the variation of the refractive index (n) on wavelength, i.e., dispersion [8]. The effects of dispersion will be included in future studies.",
"url": "https://link.springer.com/article/10.1007/s40295-022-00306-2",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "Spectral Speckle Imaging for Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_6",
"title": "Sensors | Special Issue : Optical Sensors for Space Situational Awareness",
"snippet": "While this trend is promising in terms of low-cost solutions for space-based services like communication, resource monitoring, and weather forecasting, this sudden and rapid growth in space objects has also drawn increased attention to space situational awareness. In response to this issue of the growing population of Resident Space Objects (RSO), there has been significant effort in developing optical sensors to advance SSA capabilities. RSO observations is made through ground- and space-based optical telescopes and radar systems. In the special edition, we present optical payload design from ground-based systems, low-cost optical imagers, dedicated high resolution cameras and other optical technologies that have been proposed and demonstrated for space situational awareness.",
"url": "https://www.mdpi.com/journal/sensors/special_issues/3Z8JQ7SH5A",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "growing population of Resident Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_7",
"title": "HartSCI - Commercial Adaptive Optics Made Simple",
"snippet": "ClearStar\u2122 represents the future of laser communication \u2014 a flexible, scalable system tailored for astronomy, space situational awareness, and research applications.",
"url": "https://www.hartsci.com/",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "HartSCI",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_8",
"title": "Advanced Electro-Optical System R&D and Sustainment for Space Domain Awareness | L3Harris\u00ae Fast. Forward.",
"snippet": "L3Harris advances the nation\u2019s space superiority mission with services that keep U.S. Space Surveillance Network (SSN) optical sensors and systems running with high reliability and availability. We rapidly operationalize space domain awareness (SDA) research and development (R&D) to bring new, mission-critical capabilities to warfighters.",
"url": "https://www.l3harris.com/all-capabilities/advanced-electro-optical-system-rd-and-sustainment-space-domain-awareness",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "L3Harris Technologies",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_9",
"title": "Stratospheric Night Sky Imaging Payload for Space Situational Awareness (SSA)",
"snippet": "July 21, 2023 - In Proceedings of the Advanced Optical Maui Optical and Space Surveillance (AMOS) Technologies Conference, Maui, HI, USA, 27\u201330 September 2022. [Google Scholar] Oltrogge, D.L. The \u201cwe\u201d approach to space traffic management. In Proceedings of the 15th International Conference on Space Operations, Marseille, France, 28 May\u20131 June 2018; pp. 1\u201321. [Google Scholar] Clark, R.; Fu, Y.; Dave, S.; Lee, R. Simulation of RSO Images for Space Situation Awareness (SSA) Using Parallel Processing.",
"url": "https://www.mdpi.com/1424-8220/23/14/6595",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Sky Imaging Payload for Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_10",
"title": "Review on strategies of space-based optical space situational awareness | Request PDF",
"snippet": "October 1, 2021 - By utilizing space-borne inverse synthetic aperture radar (SBISAR) can achieve high-resolution imaging of Observed satellite (OS) on-orbit especially in geosynchronous orbit (GEO).",
"url": "https://www.researchgate.net/publication/356154445_Review_on_strategies_of_space-based_optical_space_situational_awareness",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Observed",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_1",
"title": "Inside the new age of space domain awareness",
"snippet": "In this episode of Space Minds, host David Ariosto speaks with Doug Hendrix, co-founder and CEO of ExoAnalytic Solutions \u2014 a company born from three physicists' passion for solving hard problems in space. Hendrix shares how ExoAnalytic grew from ...",
"url": "https://spacenews.com/inside-the-new-age-of-space-domain-awareness/",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "new age of space",
"published_date": "2025-10-30T00:00:00+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_2",
"title": "Managing space domain awareness data has become a greater challenge than collecting it",
"snippet": "Demand has never been greater for the monitoring of objects in orbit and the coordination of their safe movement. The number of active satellites in low Earth orbit (LEO) has surged from less than a thousand in 2019, when SpaceX began launching its ...",
"url": "https://spacenews.com/managing-space-domain-awareness-data-has-become-a-greater-challenge-than-collecting-it/",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "SpaceX",
"published_date": "2025-11-06T00:00:00+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
}
]
}

View File

@ -0,0 +1,847 @@
{
"id": "ec180d48",
"user_input": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"parsed_capability": {
"original_query": "need a technology that improves Space Domain Awareness for objects beyond the diffraction limit",
"understanding": "The capability need is for a technology that enhances Space Domain Awareness by enabling the detection and tracking of objects beyond the diffraction limit. This requires improving resolution, sensitivity, or other innovative approaches to overcome current limitations.",
"technical_domains": [
"Space Situational Awareness",
"Remote Sensing",
"Advanced Optics"
],
"search_queries": [
"super-resolution space sensor prototype demonstrated",
"terahertz LiFi space object detection system developed",
"innovative space debris tracking algorithm tested",
"hyperspectral imaging satellite sensor deployed",
"advanced optics for diffraction-limited space surveillance device"
],
"sbir_queries": [
"SBIR Phase II super-resolution space sensor development",
"R&D advanced optics for diffraction-limited object detection"
],
"patent_queries": [
"Patent space sensor super-resolution apparatus method system",
"Alternative patent query: terahertz LiFi space object detection device"
],
"news_queries": [
"Recent technology announcements space domain awareness enhancement",
"Industry/defense news advanced optics for space surveillance"
],
"keywords": [
"super-resolution",
"terahertz",
"LiFi",
"hyperspectral",
"innovative detection",
"diffraction-limited"
],
"exclusions": [
"overview",
"challenge",
"potential",
"future",
"could",
"might",
"introduction"
],
"target_trl_range": [
4,
7
],
"capability_need": {
"functional_need": "The core capability being sought is a technology that can detect and track objects in space beyond the diffraction limit of current sensors.",
"domain": "Space Domain Awareness",
"implied_constraints": [
"Must operate in low-light or dark conditions",
"Should be compatible with existing space-based platforms"
],
"technology_types_sought": [
"sensor",
"algorithm",
"optics"
]
},
"capability_criteria": [
{
"criterion": "The technology must significantly improve resolution, sensitivity, or use innovative detection methods to observe objects beyond the diffraction limit.",
"weight": "must_have",
"keywords": [
"super-resolution",
"hyperspectral",
"LiFi",
"terahertz",
"innovative detection"
]
},
{
"criterion": "Secondary capability that would be valuable is the ability to distinguish between different types of space objects (e.g., debris, satellites, etc.).",
"weight": "should_have",
"keywords": [
"object classification",
"material discrimination"
]
},
{
"criterion": "Nice-to-have capability is real-time or near real-time data processing and analysis to enable quick reaction times.",
"weight": "nice_to_have",
"keywords": [
"real-time processing",
"edge computing",
"AI/ML for rapid analysis"
]
}
],
"technology_indicators": {
"positive": [
"prototype",
"demonstrated",
"developed",
"patent",
"Phase II",
"system",
"device",
"sensor",
"algorithm",
"tested",
"deployed"
],
"negative": [
"overview",
"challenge",
"problem",
"review",
"survey",
"introduction",
"future",
"potential",
"could",
"might"
]
},
"success": true,
"error": null
},
"raw_results": [
{
"id": "web_1",
"title": "Super-resolution tactile sensor arrays with sparse units ... - Science",
"snippet": "This work presents super-resolution (SR) tactile sensor arrays with sparsely distributed taxels powered by a universal intelligent framework. Such smart sensor systems involve a general topological optimization strategy for taxel layout design and a deep learning model called self-attention-assisted tactile SR.",
"url": "https://www.science.org/doi/full/10.1126/sciadv.adv2124",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Science This",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_2",
"title": "Towards High-Resolution Alignment and Super-Resolution of Multi-Sensor ...",
"snippet": "Quantitative and qualitative evaluations demonstrate the effectiveness of our method, showing its potential for enhancing satellite-based sensing applications. This study provides insights into the feasibility of heterogeneous satellite image super-resolution and highlights key considerations for future advancements in the field.",
"url": "https://arxiv.org/pdf/2507.23150",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_3",
"title": "A Comparable Study of CNN-Based Single Image Super-Resolution for Space ...",
"snippet": "In the case of space -based space surveillance (SBSS), images of the target space objects captured by space -based imaging sensors usually suffer from low spatial resolution due to the extremely long distance between the target and the imaging sensor . ...",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC6679528/",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "Resolution for Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_4",
"title": "PIAN: A physics-informed assimilation neural network for temporal super ...",
"snippet": "High- resolution sensor data is essential for attitude adjustment, orbit control, and fault diagnosis of satellite attitude control systems. Nevertheless, sensor data from these systems exhibit obvious pseudo-periodicity, randomness, and irregular sampling characteristics, which bring significant challenges to temporal super-resolution reconstruction. To address these, this paper proposes a ...",
"url": "https://www.sciencedirect.com/science/article/pii/S1474034625006986",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "SES S.A.",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_5",
"title": "Super-resolution time-resolved imaging using computational sensor ...",
"snippet": "Our method, based on blurring the image on the SPAD array and computational sensor fusion, reconstructs time-resolved images at significantly higher spatial resolution than the SPAD input ...",
"url": "https://www.nature.com/articles/s41598-021-81159-x",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_6",
"title": "Single-pixel super-resolution with a space-time ... - ResearchGate",
"snippet": "Nevertheless, achieving super-resolution with a single pixel remains a formidable challenge. Here, we introduce a single-pixel super-resolution imaging technique based on space -time modulation.",
"url": "https://www.researchgate.net/publication/382230509_Single-pixel_super-resolution_with_a_space-time_modulated_computational_metasurface_imager",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "resolution with a space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_7",
"title": "Super-resolution tactile sensor arrays with... : Science Advances",
"snippet": "This work presents super-resolution (SR) tactile sensor arrays with sparsely distributed taxels powered by a universal intelligent framework. Such smart sensor systems involve a general topological optimization strategy for taxel layout design and a deep learning model called self-attention-assisted tactile SR.",
"url": "https://www.ovid.com/journals/sciad/fulltext/10.1126/sciadv.adv2124~super-resolution-tactile-sensor-arrays-with-sparse-units",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Advances This",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_8",
"title": "Towards High-Resolution Alignment and Super-Resolution of Multi-Sensor ...",
"snippet": "High- resolution remote sensing imagery is essential for various geospatial applications. However, publicly available satellite datasets often provide images at different resolutions and scales, even for the same geographical region. While deep learning-based super-resolution techniques have demonstrated potential in enhancing spatial quality, most existing approaches rely on synthetic low ...",
"url": "https://arxiv.org/html/2507.23150v2",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_9",
"title": "Super- resolution tactile sensor arrays with sparse units ... - AAAS",
"snippet": "This work presents super - resolution (SR) tactile sensor arrays with sparsely distributed taxels powered by a universal intelligent framework. Such smart sensor sys-tems involve a general topological optimization strategy for taxel layout design and a deep learning model called self- attention-assisted tactile SR.",
"url": "https://www.science.org/doi/epdf/10.1126/sciadv.adv2124",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "AAAS",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_10",
"title": "Multiscale aperture synthesis imager - Nature Communications",
"snippet": "The authors create a distributed sensor array that achieves optical super-resolution without lenses, using computational synchronization to combine multiple sensors and expand imaging areas 16 ...",
"url": "https://www.nature.com/articles/s41467-025-65661-8",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "SES S.A.",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_1",
"title": "Terahertz radiation - Wikipedia",
"snippet": "To overcome low resolution of the terahertz systems near-field terahertz imaging systems are under development. In nearfield imaging the detector ... Missing: LiFi | Show results with: LiFi",
"url": "https://en.wikipedia.org/wiki/Terahertz_radiation",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "resolution of the terahertz systems",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_2",
"title": "Terahertz's silent revolution in physics, engineering, and ...",
"snippet": "Sep 1, 2025 \u00b7 The four review articles systematically review critical advancements in Coherent detection of pulsed terahertz waves, Terahertz channels in atmospheric conditions, beam-scanning antenna technologies, and Terahertz metamaterial biosensors, establishing a unified framework for cross-domain research.",
"url": "https://www.sciencedirect.com/science/article/pii/S2667325825002195",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "scanning antenna technologies",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_3",
"title": "Large-area photonic circuits for terahertz detection and beam ...",
"snippet": "Jan 1, 2026 \u00b7 Here, we demonstrate an integrated photonic architecture in thin-film lithium niobate that addresses these challenges by exploiting the electro-optic modulation induced by a terahertz signal onto...",
"url": "https://www.nature.com/articles/s41377-025-02089-1",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "SES S.A.",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_4",
"title": "Terahertz Radar: Piercing the Veil on Stealth, Space Debris ...",
"snippet": "Jan 8, 2026 \u00b7 In practice, this allows terahertz systems to deliver fine-grained images of objects while remaining safe for human exposure. Combined with the vast bandwidth available at these frequencies, THz technology is creating entirely new possibilities for detection , identification, and communication.",
"url": "https://idstch.com/strategy-policy-governance/geopolitics-strategy-technological-rivalries/terahertz-radar-detecting-stealth-aircrafts-imaging-objects-behind-walls-detect-hidden-militants-tanks-behind-thick-cloud-smoke-dust/",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "this allows terahertz systems",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_5",
"title": "UCLA Engineers Develop Terahertz Imaging System Capable of ...",
"snippet": "Jan 16, 2024 \u00b7 A research team led by Mona Jarrahi, and Aydogan Ozcan, both electrical and computer engineering professors at the UCLA Samueli School of Engineering, has invented a new terahertz focal-plane array to solve this problem.",
"url": "https://samueli.ucla.edu/ucla-engineers-develop-terahertz-imaging-system-capable-of-capturing-real-time-3d-multi-spectral-images-for-the-first-time/",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "UCLA Samueli School of Engineering",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_6",
"title": "Terahertz (THz) Wireless Systems for Space Applications",
"snippet": "In this study, the THz wireless systems for potential space applications were investigated. The applicability of THz systems for space applications was analyzed. The link analysis indicates that MGbps data rates are achievable with compact sized high gain antennas.",
"url": "https://ntrs.nasa.gov/api/citations/20130009186/downloads/20130009186.pdf",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "Terahertz",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_7",
"title": "Terahertz communication: detection and signal processing",
"snippet": "Jun 12, 2024 \u00b7 As submillimeter radiation, signal transportation via terahertz waves has several superior properties, including non-ionizing and easy penetration of non-metallic materials. This paper provides an overview of different terahertz detectors based on various mechanisms.",
"url": "https://iopscience.iop.org/article/10.1088/1361-6528/ad4dad",
"source_type": "web",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_8",
"title": "Research Advances and Perspectives on Terahertz Detection ...",
"snippet": "Aug 22, 2024 \u00b7 Terahertz (THz) detection offers unique advantages in penetrating materials opaque to visible light and infrared radiation, which is crucial for applications in security, medical imaging, and material analysis.",
"url": "https://advanced.onlinelibrary.wiley.com/doi/full/10.1002/apxr.202400094",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Terahertz",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_9",
"title": "UCLA-developed terahertz sensors work at room temperature, unlike current technology that needs extreme cold",
"snippet": "Jul 8, 2019 \u00b7 Researchers at the UCLA Samueli School of Engineering have developed an ultra-sensitive light-detecting system that could enable astronomers to view galaxies, ... Missing: LiFi | Show results with: LiFi",
"url": "https://samueli.ucla.edu/ucla-developed-terahertz-sensors/",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "unlike current technology",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_10",
"title": "Credit card-sized device focuses terahertz energy to generate high-resolution images",
"snippet": "Feb 18, 2022 \u00b7 Researchers have created a device that enables them to electronically steer and focus a beam of terahertz electromagnetic energy with extreme precision. Missing: LiFi | Show results with: LiFi",
"url": "https://news.mit.edu/2022/terahertz-energy-images-high-resolution-0218",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "SES S.A.",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_1",
"title": "With innovative tracking technology, SRI is addressing the hazard of space debris particles - SRI",
"snippet": "February 5, 2025 - The SOTERIA team plans to collect and study data from multiple radar instruments to see how radar signals already being beamed into space from large transmitter antennas could incidentally bounce off small space debris and return to different receiver antennas, thus boosting tracking potential. To this end, SRI researchers plan to run a test using SRI\u2019s steerable radio telescope \u2014 nicknamed the Dish and housed on Stanford University land \u2014 as the receiver.",
"url": "https://www.sri.com/atsd/with-innovative-tracking-technology-sri-is-addressing-the-hazard-of-space-debris-particles/",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "With innovative tracking technology",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_2",
"title": "Space Debris Mapping: AI Solutions for Tracking & Management",
"snippet": "December 13, 2024 - These algorithms are capable of identifying small objects, predicting their trajectories, and detecting potential collisions, providing critical insights that can help avoid future space accidents. AI-driven image recognition systems can analyze data from space-based cameras and telescopes, distinguishing between actual debris and other objects in space, such as asteroids or meteoroids.",
"url": "https://flypix.ai/blog/space-debris-mapping/",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "AI Solutions",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_3",
"title": "Space Surveillance payload camera breadboard: Star tracking and debris detection algorithms - ScienceDirect",
"snippet": "August 23, 2023 - ASTRiDE and the Hybrid time-index algorithm were evaluated for debris detection. The chosen algorithms were tested using the breadboard camera observations done at Observat\u00f3rio do Parque E\u00f3lico de Vila Nova de Gaia, Miranda do Corvo, Portugal.",
"url": "https://www.sciencedirect.com/science/article/abs/pii/S0273117723006816",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "ASTRiDE",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_4",
"title": "Space Debris Detection and Positioning Technology Based on Multiple Star Trackers",
"snippet": "April 1, 2022 - In this paper, we propose a multi-star space debris detecting and positioning method with constant geocentric observation. Using the multi-star tracker joint positioning method, the angle measurement data of the star tracker is converted into the spatial coordinates of the target. In addition, the Gaussian MMSE difference correction algorithm is used to realize the target positioning of multiple optical observations, and the spatial target position information of the multi-frame images is fused, thus completing the solution of the orbit equation.",
"url": "https://www.mdpi.com/2076-3417/12/7/3593",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Debris Detection and Positioning Technology",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_5",
"title": "Role of Radio Telescopes in Space Debris Monitoring: Current Insights and Future Directions - PMC",
"snippet": "The authors further validated the algorithm by applying it to a real measurement campaign at MWA conducted in 2018 and comparing it with the standard IOD method, such as Herrick-Gibbs, demonstrating the practical implementation of the algorithm, which further enhances the accuracy of debris detection [82]. While the authors proposed ways to constrain the search space, it may still require significant processing power for practical implementation. Another measurement campaign was conducted in December 2019 using four transmitters (Geraldton, Perth, Albany, Mount Gambier) [17], and one of the detected targets, COSMOS 1707, was tracked for almost 90 s.",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC12074451/",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "of Radio Telescopes in Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_6",
"title": "Deep learning\u2010based space debris detection for space situational awareness: A feasibility study applied to the radar processing - Massimi - 2024 - IET Radar, Sonar & Navigation - Wiley Online Library",
"snippet": "March 6, 2024 - Therefore, it is crucial to be aware of the space situation and to develop new algorithms for the defence of space infrastructures such as satellite constellations. In this context, this paper proposed a feasibility study about the adoption of DL techniques for small debris detection in monostatic pulse-Doppler radar and radio-telescopes. We modelled the European TIRA radio-telescope in tracking mode to produce training and testing data.",
"url": "https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/rsn2.12547",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "based space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_7",
"title": "Space-based debris trajectory estimation using vision sensors and track-based data fusion techniques - ScienceDirect",
"snippet": "January 18, 2025 - This study proposes and rigorously compares three distinct data fusion methodologies\u2014 Measurement Fusion-1 (MF-1), Measurement Fusion-2 (MF-2), and Track-to-Track (T2T) fusion \u2014examining their impact on tracking accuracy across varying ...",
"url": "https://www.sciencedirect.com/science/article/pii/S0094576525000396",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "SES S.A.",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_8",
"title": "A Robust Vision-based Algorithm for Detecting and ...",
"snippet": "Moreover, we optimize and validate the performance of the algorithm using testing capabilities and space debris \u00b7 images provided by the MSFC. The MSFCs one-of-a-kind Dynamic Star Field Simulator (DSFS) uses a high resolution \u00b7 large monochrome display and a custom collimator capable of projecting realistic star images with simple orbital \u00b7 debris spots (down to star magnitude 11-12) into a passive orbital detection and tracking ...",
"url": "https://ntrs.nasa.gov/api/citations/20190032383/downloads/20190032383.pdf",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "SES S.A.",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_9",
"title": "Space Debris In-Orbit Detection with Commercial Automotive LiDAR Sensors - PMC",
"snippet": "This article presents an alternative approach to detecting and mapping space debris in low Earth orbit by utilizing commercially available automotive LiDAR sensors mounted on CubeSats. The main objective is to leverage the compact size, low weight, and minimal power consumption of these sensors to create a \u201cLarge Cosmic LiDAR\u201d (LCL) system.",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC11597919/",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "Cosmic LiDAR\u201d",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_10",
"title": "Distributed Space Debris Tracking with Consensus Labeled Random Finite Set Filtering - PMC",
"snippet": "This paper presented a consensus algorithm for space debris tracking with labeled RFS. The key innovation lies in the fusion among sensors with different observation volumes , and most importantly, the processing load for each node is scalable with respect to the size of the network.",
"url": "https://pmc.ncbi.nlm.nih.gov/articles/PMC6165170/",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "Distributed Space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_1",
"title": "Hyperspectral Imager for the Coastal Ocean - Wikipedia",
"snippet": "Hyperspectral satellite sensors (right) detect light radiating from Earth's surface over the full spectrum of visible light, rather than at a few specific \"bands\" like RGB or multispectral sensors (left and middle). Spectral coverage and resolution.",
"url": "https://en.wikipedia.org/wiki/Hyperspectral_Imager_for_the_Coastal_Ocean",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Wikipedia Hyperspectral",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "government_2",
"title": "Hyperspectral Imaging - NASA",
"snippet": "May 1, 2025 \u00b7 Recent efforts have focused on miniaturizing hyperspectral sensors for CubeSat deployment . This technology aims to bridge the gap in remote sensing of freshwater systems by providing high spatial, spectral, and temporal resolution.",
"url": "https://www.nasa.gov/glenn/research/hyperspectral-imaging/",
"source_type": "government",
"source": "DuckDuckGo",
"organization": "This technology",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_3",
"title": "Xplore Unveils Breakthrough Hyperspectral Imagery",
"snippet": "Jun 10, 2025 \u00b7 The company\u2019s planned constellation of satellites will carry remote sensing instruments including hyperspectral , video, radio-frequency monitoring, and other sensors , to produce valuable data and insights for customers.",
"url": "https://www.xplore.com/press/releases/2025/06.10.2025_Xplore_Unveils_Breakthrough_Hyperspectral_Imagery.html",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "company",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_4",
"title": "World\u2019s Highest-Resolution Hyperspectral Satellite Imagery",
"snippet": "Explore Pixxel\u2019s hyperspectral satellites offering high spatial, spectral, and temporal resolutions for unmatched Earth observation and climate resilience.",
"url": "https://www.pixxel.space/hyperspectral-imagery",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "Pixxel",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_5",
"title": "Hyperspectral Satellites, Evolution, and Development History",
"snippet": "There exist at least 25 hyperspectral imagers that have been deployed into space. Among them, 19 are aboard satellites orbiting earth. Six of them are out of earth orbits for Moon, Mars, Venus, and comet missions.",
"url": "https://ieeexplore.ieee.org/document/9463743",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "have been deployed into space",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_6",
"title": "A broadband hyperspectral image sensor with high spatio ... Hyperspectral Thermal Imager (HyTI) \u2013 HSFL HysIS (Hyperspectral Imaging Satellite) - eoPortal",
"snippet": "Nov 6, 2024 \u00b7 Here we report an on-chip computational hyperspectral imaging framework with high spatial and temporal resolution. Dec 17, 2024 \u00b7 Both HSFL and HIGP have a well-established track record of designing and successfully demonstrating state-of-the-art small satellites and imaging payloads ranging from the visible to the IR, including compact hyperspectral imaging for remote-sensing observations. Nov 13, 2025 \u00b7 HysIS carries two main payloads: a VNIR sensor for visible and near-infrared imaging, and a SWIR sensor for shortwave infrared imaging. Table 2 outlines the key specifications for these instruments.",
"url": "https://www.nature.com/articles/s41586-024-08109-1",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "Hyperspectral Thermal Imager",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "academic_7",
"title": "Hyperspectral Thermal Imager (HyTI) \u2013 HSFL",
"snippet": "Dec 17, 2024 \u00b7 Both HSFL and HIGP have a well-established track record of designing and successfully demonstrating state-of-the-art small satellites and imaging payloads ranging from the visible to the IR, including compact hyperspectral imaging for remote-sensing observations.",
"url": "https://www.hsfl.hawaii.edu/missions/hyti/",
"source_type": "academic",
"source": "DuckDuckGo",
"organization": "Hyperspectral Thermal Imager",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_8",
"title": "HysIS (Hyperspectral Imaging Satellite) - eoPortal",
"snippet": "Nov 13, 2025 \u00b7 HysIS carries two main payloads: a VNIR sensor for visible and near-infrared imaging, and a SWIR sensor for shortwave infrared imaging. Table 2 outlines the key specifications for these instruments.",
"url": "https://www.eoportal.org/satellite-missions/hysis",
"source_type": "web",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_9",
"title": "Hyperspectral Imaging : Satellite Earth Observation Insights",
"snippet": "This allows them to create a detailed spectral \u201cfingerprint\u201d for each pixel in an image , offering insights into the physical and chemical composition of surface materials. These hyperspectral sensors , when deployed on satellites , scan the Earth from orbit and capture data across the visible...",
"url": "https://ongeo-intelligence.com/blog/hyperspectral-imaging-satellite",
"source_type": "web",
"source": "DuckDuckGo",
"organization": null,
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "web_10",
"title": "Hyperspectral imaging | GEO Innoter",
"snippet": "Hyperspectral imaging Remote sensing spacecraft with hyperspectral imaging capabilityDifference between hyperspectral and multispectral imaging Hyperspectral equipment is most commonly found on specialized satellite platforms with wide...",
"url": "https://Innoter.com/en/articles/hyperspectral-imaging/",
"source_type": "web",
"source": "DuckDuckGo",
"organization": "GEO Innoter",
"published_date": null,
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_1",
"title": "Palantir Technologies (NasdaqGS:PLTR) Partners With Voyager For AI-Powered Space...",
"snippet": "Palantir Technologies (NasdaqGS:PLTR), in recent market activities, expanded its partnership with...",
"url": "https://finance.yahoo.com/news/palantir-technologies-nasdaqgs-pltr-partners-172311465.html",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "Palantir Technologies",
"published_date": "2025-03-28T15:32:52+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_2",
"title": "Space Force goes commercial for space domain awareness",
"snippet": "The Space Force has been working closely with private investment firms to get a leg up on emerging technologies. The result is a \"pool\" of companies with products the service wants, a senior defense official says. \"Another innovation influence for us ...",
"url": "https://www.washingtontechnology.com/contracts/2025/09/space-force-goes-commercial-space-domain-awareness/407825/?oref=ng-author-river",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "Force goes commercial for space",
"published_date": "2025-09-01T23:59:00+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_3",
"title": "BlackSky Signs Seven-Figure Space Domain Awareness Expansion Contract with HEO for Fully Automated Non-Earth Imaging Missions",
"snippet": "HERNDON, Va.--(BUSINESS WIRE)--BlackSky Technology Inc. (NYSE: BKSY) signed a seven-figure Gen-2 space domain awareness expansion contract with HEO to provide fully-automated low-latency non-Earth imaging (NEI) services for defense, intelligence and ...",
"url": "https://www.businesswire.com/news/home/20250819468601/en/BlackSky-Signs-Seven-Figure-Space-Domain-Awareness-Expansion-Contract-with-HEO-for-Fully-Automated-Non-Earth-Imaging-Missions",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "BlackSky Technology Inc.",
"published_date": "2025-08-19T08:30:00+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_4",
"title": "Inside the new age of space domain awareness",
"snippet": "In this episode of Space Minds, host David Ariosto speaks with Doug Hendrix, co-founder and CEO of ExoAnalytic Solutions \u2014 a company born from three physicists' passion for solving hard problems in space. Hendrix shares how ExoAnalytic grew from ...",
"url": "https://spacenews.com/inside-the-new-age-of-space-domain-awareness/",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "new age of space",
"published_date": "2025-10-30T00:00:00+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_5",
"title": "Digantara, Japan's ispace to build cislunar space awareness & domain infrastructure",
"snippet": "BENGALURU: Digantara, an Indian company specialising in space domain awareness, and Japan's lunar exploration firm ispace announced on Friday that they will work together to build cislunar (between Earth and Moon) situational awareness and domain ...",
"url": "https://www.msn.com/en-in/money/markets/digantara-japan-s-ispace-to-build-cislunar-space-awareness-domain-infrastructure/ar-AA1LVmF3",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "ispace to build cislunar space",
"published_date": "2025-09-06T04:04:00+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_6",
"title": "MDA Space to deliver advanced space domain awareness for Canada's Defence",
"snippet": "\u30fbMDA Space (TSX:MDA) and ThothX Group have been selected by Canada's Department of National Defence to deliver advanced Space Domain Awareness (SDA) services, enhancing national space security \u30fbThe solution combines ThothX's Earthfence Radar ...",
"url": "https://www.msn.com/en-ca/money/topstories/mda-space-to-deliver-advanced-space-domain-awareness-for-canada-s-defence/ar-AA1NAARW",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "MDA Space",
"published_date": "2025-09-30T11:37:00+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_7",
"title": "MDA awards Lockheed $4.1B contract to upgrade battle command system",
"snippet": "The U.S. Missile Defense Agency has awarded Lockheed Martin a contract worth up to $4.1 billion to...",
"url": "https://finance.yahoo.com/news/mda-awards-lockheed-4-1b-221710879.html",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "Lockheed Martin",
"published_date": "2024-01-23T15:32:52+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
},
{
"id": "news_1",
"title": "Building the future of space defense",
"snippet": "In this episode of Space Minds, host Mike Gruss sits down with Matt Maga\u00f1a, president of space, defense and national Security at Voyager Technologies, to explore one of the most consequential national ...",
"url": "https://spacenews.com/building-the-future-of-space-defense/",
"source_type": "news",
"source": "DuckDuckGo",
"organization": "Building the future of space",
"published_date": "2025-12-11T06:00:00+00:00",
"award_amount": null,
"award_id": null,
"trl_estimate": null,
"patent_number": null,
"relevance_score": 0.0
}
]
}

257
api_server - llama3-1-8b.py Normal file
View File

@ -0,0 +1,257 @@
"""
TechScout API Server
Simple HTTP server that the dashboard calls for discovery/deep-dive operations.
"""
import json
import logging
from http.server import HTTPServer, BaseHTTPRequestHandler
from urllib.parse import parse_qs, urlparse
import threading
from techscout.pipeline.discovery import DiscoveryPipeline
from techscout.pipeline.deep_dive import DeepDivePipeline
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# Global pipelines (initialized once)
discovery_pipeline = None
deepdive_pipeline = None
def get_discovery_pipeline():
global discovery_pipeline
if discovery_pipeline is None:
logger.info("Initializing discovery pipeline...")
discovery_pipeline = DiscoveryPipeline(model='llama3:8b')
return discovery_pipeline
def get_deepdive_pipeline():
global deepdive_pipeline
if deepdive_pipeline is None:
logger.info("Initializing deep dive pipeline...")
deepdive_pipeline = DeepDivePipeline(model='llama3:8b')
return deepdive_pipeline
class TechScoutHandler(BaseHTTPRequestHandler):
def _set_cors_headers(self):
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
self.send_header('Access-Control-Allow-Headers', 'Content-Type')
def do_OPTIONS(self):
self.send_response(200)
self._set_cors_headers()
self.end_headers()
def do_GET(self):
parsed = urlparse(self.path)
if parsed.path == '/api/health':
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"status": "ok"}).encode())
elif parsed.path == '/api/discoveries':
self._list_discoveries()
elif parsed.path.startswith('/api/discoveries/'):
discovery_id = parsed.path.split('/')[-1]
self._get_discovery(discovery_id)
else:
self.send_response(404)
self.end_headers()
def do_POST(self):
parsed = urlparse(self.path)
if parsed.path == '/api/discover':
self._run_discovery()
elif parsed.path == '/api/deepdive':
self._run_deepdive()
else:
self.send_response(404)
self.end_headers()
def _run_discovery(self):
try:
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data.decode())
query = data.get('query', '')
if not query:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Query is required"}).encode())
return
logger.info(f"Starting discovery for: {query[:50]}...")
pipeline = get_discovery_pipeline()
result = pipeline.discover(
capability_gap=query,
max_results=50,
use_llm_scoring=True
)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"result": result.to_dict()}).encode())
logger.info(f"Discovery complete: {len(result.candidates)} candidates")
except Exception as e:
logger.error(f"Discovery failed: {e}")
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _run_deepdive(self):
try:
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data.decode())
organization = data.get('organization', '')
technology = data.get('technology', '')
gap = data.get('gap', '')
if not organization:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Organization is required"}).encode())
return
# Validate organization is not "Unknown" or similar placeholder
if organization.lower() in ('unknown', 'n/a', 'none', ''):
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Cannot perform deep dive on unknown organization. Please select a candidate with a known company name."}).encode())
return
logger.info(f"Starting deep dive for: {organization}")
pipeline = get_deepdive_pipeline()
result = pipeline.deep_dive(
organization=organization,
technology_context=technology,
capability_gap=gap
)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"result": result.to_dict()}).encode())
logger.info(f"Deep dive complete for: {organization}")
except Exception as e:
logger.error(f"Deep dive failed: {e}")
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _list_discoveries(self):
import os
from pathlib import Path
analyses_dir = Path(__file__).parent / "analyses"
try:
discoveries = []
if analyses_dir.exists():
for f in sorted(analyses_dir.glob("discovery_*.json"), reverse=True):
with open(f) as fp:
data = json.load(fp)
discoveries.append({
"id": data.get("id"),
"capability_gap": data.get("capability_gap"),
"timestamp": data.get("timestamp"),
"candidate_count": len(data.get("candidates", [])),
"top_score": data["candidates"][0]["score"] if data.get("candidates") else 0
})
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"discoveries": discoveries}).encode())
except Exception as e:
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _get_discovery(self, discovery_id):
from pathlib import Path
analyses_dir = Path(__file__).parent / "analyses"
file_path = analyses_dir / f"discovery_{discovery_id}.json"
try:
if not file_path.exists():
self.send_response(404)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Not found"}).encode())
return
with open(file_path) as f:
data = json.load(f)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps(data).encode())
except Exception as e:
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def log_message(self, format, *args):
logger.info("%s - %s" % (self.client_address[0], format % args))
def run_server(port=8000):
server = HTTPServer(('localhost', port), TechScoutHandler)
logger.info(f"TechScout API Server running on http://localhost:{port}")
logger.info("Endpoints:")
logger.info(" POST /api/discover - Run technology discovery")
logger.info(" POST /api/deepdive - Run deep dive analysis")
logger.info(" GET /api/discoveries - List saved discoveries")
logger.info(" GET /api/discoveries/<id> - Get specific discovery")
server.serve_forever()
if __name__ == '__main__':
run_server(port=8000)

493
api_server.py Normal file
View File

@ -0,0 +1,493 @@
"""
TechScout API Server
Simple HTTP server that the dashboard calls for discovery/deep-dive/match operations.
"""
import json
import logging
from http.server import HTTPServer, BaseHTTPRequestHandler
from urllib.parse import parse_qs, urlparse
import threading
from techscout.pipeline.discovery import DiscoveryPipeline
from techscout.pipeline.deep_dive import DeepDivePipeline
from techscout.pipeline.capability_matcher import CapabilityMatcherPipeline
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# Global pipelines (initialized once)
discovery_pipeline = None
deepdive_pipeline = None
matcher_pipeline = None
def get_discovery_pipeline():
global discovery_pipeline
if discovery_pipeline is None:
logger.info("Initializing discovery pipeline...")
discovery_pipeline = DiscoveryPipeline(model='mistral-nemo:12b')
return discovery_pipeline
def get_deepdive_pipeline():
global deepdive_pipeline
if deepdive_pipeline is None:
logger.info("Initializing deep dive pipeline...")
deepdive_pipeline = DeepDivePipeline(model='mistral-nemo:12b')
return deepdive_pipeline
def get_matcher_pipeline():
global matcher_pipeline
if matcher_pipeline is None:
logger.info("Initializing capability matcher pipeline...")
try:
matcher_pipeline = CapabilityMatcherPipeline(model='mistral-nemo:12b')
logger.info("Capability matcher pipeline initialized successfully")
except Exception as e:
logger.error(f"Failed to initialize matcher pipeline: {e}")
import traceback
traceback.print_exc()
raise
return matcher_pipeline
class TechScoutHandler(BaseHTTPRequestHandler):
def _set_cors_headers(self):
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
self.send_header('Access-Control-Allow-Headers', 'Content-Type')
def do_OPTIONS(self):
print(f"[DEBUG] do_OPTIONS: path={self.path}", flush=True)
self.send_response(200)
self._set_cors_headers()
self.end_headers()
def do_GET(self):
parsed = urlparse(self.path)
if parsed.path == '/api/health':
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"status": "ok"}).encode())
elif parsed.path == '/api/discoveries':
self._list_discoveries()
elif parsed.path.startswith('/api/discoveries/'):
discovery_id = parsed.path.split('/')[-1]
self._get_discovery(discovery_id)
else:
self.send_response(404)
self.end_headers()
def do_POST(self):
parsed = urlparse(self.path)
print(f"[DEBUG] do_POST: path={parsed.path}", flush=True)
if parsed.path == '/api/discover':
self._run_discovery()
elif parsed.path == '/api/deepdive':
self._run_deepdive()
elif parsed.path == '/api/match':
self._run_match()
elif parsed.path == '/api/match/search':
self._run_match_search()
elif parsed.path == '/api/match/extract':
self._run_match_extract()
elif parsed.path == '/api/match/evaluate':
self._run_match_evaluate()
else:
self.send_response(404)
self.end_headers()
def _run_discovery(self):
try:
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data.decode())
query = data.get('query', '')
if not query:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Query is required"}).encode())
return
logger.info(f"Starting discovery for: {query[:50]}...")
pipeline = get_discovery_pipeline()
result = pipeline.discover(
capability_gap=query,
max_results=50,
use_llm_scoring=True
)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"result": result.to_dict()}).encode())
logger.info(f"Discovery complete: {len(result.candidates)} candidates")
except Exception as e:
logger.error(f"Discovery failed: {e}")
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _run_deepdive(self):
try:
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data.decode())
organization = data.get('organization', '')
technology = data.get('technology', '')
gap = data.get('gap', '')
if not organization:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Organization is required"}).encode())
return
# Validate organization is not "Unknown" or similar placeholder
if organization.lower() in ('unknown', 'n/a', 'none', ''):
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Cannot perform deep dive on unknown organization. Please select a candidate with a known company name."}).encode())
return
logger.info(f"Starting deep dive for: {organization}")
pipeline = get_deepdive_pipeline()
result = pipeline.deep_dive(
organization=organization,
technology_context=technology,
capability_gap=gap
)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"result": result.to_dict()}).encode())
logger.info(f"Deep dive complete for: {organization}")
except Exception as e:
logger.error(f"Deep dive failed: {e}")
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _run_match(self):
"""Run capability-to-technology matching (new pipeline)."""
try:
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data.decode())
query = data.get('query', '')
if not query:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Query is required"}).encode())
return
# Optional parameters
max_technologies = data.get('max_technologies', 15)
min_fit_score = data.get('min_fit_score', 25)
sources = data.get('sources', None)
logger.info(f"Starting capability match for: {query[:50]}...")
pipeline = get_matcher_pipeline()
result = pipeline.match(
user_input=query,
max_technologies=max_technologies,
min_fit_score=min_fit_score,
sources=sources
)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"result": result.to_dict()}).encode())
logger.info(f"Match complete: {len(result.technologies)} technologies found")
except Exception as e:
logger.error(f"Match failed: {e}")
import traceback
traceback.print_exc()
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _run_match_search(self):
"""Step 1: Parse capability and search sources."""
print("[DEBUG] _run_match_search: Handler started", flush=True)
logger.info("_run_match_search: Handler started")
try:
content_length = int(self.headers['Content-Length'])
print(f"[DEBUG] _run_match_search: Reading {content_length} bytes", flush=True)
logger.info(f"_run_match_search: Reading {content_length} bytes")
post_data = self.rfile.read(content_length)
print("[DEBUG] _run_match_search: Parsing JSON", flush=True)
logger.info(f"_run_match_search: Parsing JSON")
data = json.loads(post_data.decode())
print(f"[DEBUG] _run_match_search: Got data: {list(data.keys())}", flush=True)
logger.info(f"_run_match_search: Got data: {list(data.keys())}")
query = data.get('query', '')
if not query:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Query is required"}).encode())
return
sources = data.get('sources', None)
logger.info(f"Step 1 - Search: {query[:50]}...")
logger.info("Getting matcher pipeline...")
pipeline = get_matcher_pipeline()
logger.info("Got pipeline, calling step_search...")
try:
result = pipeline.step_search(
user_input=query,
sources=sources
)
logger.info(f"step_search returned: success={result.success}")
except Exception as e:
logger.error(f"step_search raised exception: {e}")
import traceback
traceback.print_exc()
raise
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"result": result.to_dict()}).encode())
logger.info(f"Step 1 complete: {len(result.search_results)} results found")
except Exception as e:
logger.error(f"Match search failed: {e}")
import traceback
traceback.print_exc()
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _run_match_extract(self):
"""Step 2: Extract technologies from search results."""
try:
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data.decode())
search_id = data.get('search_id', '')
if not search_id:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "search_id is required"}).encode())
return
logger.info(f"Step 2 - Extract: search_id={search_id}")
pipeline = get_matcher_pipeline()
result = pipeline.step_extract(search_id=search_id)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"result": result.to_dict()}).encode())
logger.info(f"Step 2 complete: {len(result.technologies)} technologies extracted")
except Exception as e:
logger.error(f"Match extract failed: {e}")
import traceback
traceback.print_exc()
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _run_match_evaluate(self):
"""Step 3: Evaluate selected technologies."""
try:
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length)
data = json.loads(post_data.decode())
extraction_id = data.get('extraction_id', '')
technology_ids = data.get('technology_ids', [])
if not extraction_id:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "extraction_id is required"}).encode())
return
if not technology_ids:
self.send_response(400)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "technology_ids is required"}).encode())
return
logger.info(f"Step 3 - Evaluate: {len(technology_ids)} technologies")
pipeline = get_matcher_pipeline()
result = pipeline.step_evaluate(
extraction_id=extraction_id,
technology_ids=technology_ids
)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"result": result.to_dict()}).encode())
logger.info(f"Step 3 complete: {len(result.technologies)} technologies evaluated")
except Exception as e:
logger.error(f"Match evaluate failed: {e}")
import traceback
traceback.print_exc()
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _list_discoveries(self):
import os
from pathlib import Path
analyses_dir = Path(__file__).parent / "analyses"
try:
discoveries = []
if analyses_dir.exists():
for f in sorted(analyses_dir.glob("discovery_*.json"), reverse=True):
with open(f) as fp:
data = json.load(fp)
discoveries.append({
"id": data.get("id"),
"capability_gap": data.get("capability_gap"),
"timestamp": data.get("timestamp"),
"candidate_count": len(data.get("candidates", [])),
"top_score": data["candidates"][0]["score"] if data.get("candidates") else 0
})
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"discoveries": discoveries}).encode())
except Exception as e:
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def _get_discovery(self, discovery_id):
from pathlib import Path
analyses_dir = Path(__file__).parent / "analyses"
file_path = analyses_dir / f"discovery_{discovery_id}.json"
try:
if not file_path.exists():
self.send_response(404)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": "Not found"}).encode())
return
with open(file_path) as f:
data = json.load(f)
self.send_response(200)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps(data).encode())
except Exception as e:
self.send_response(500)
self.send_header('Content-Type', 'application/json')
self._set_cors_headers()
self.end_headers()
self.wfile.write(json.dumps({"error": str(e)}).encode())
def log_message(self, format, *args):
logger.info("%s - %s" % (self.client_address[0], format % args))
def run_server(port=8000):
server = HTTPServer(('localhost', port), TechScoutHandler)
logger.info(f"TechScout API Server running on http://localhost:{port}")
logger.info("Endpoints:")
logger.info(" POST /api/discover - Run technology discovery (legacy)")
logger.info(" POST /api/deepdive - Run deep dive analysis")
logger.info("")
logger.info(" Step-based Capability Matching (Guided Workflow):")
logger.info(" POST /api/match/search - Step 1: Parse & Search")
logger.info(" POST /api/match/extract - Step 2: Extract Technologies")
logger.info(" POST /api/match/evaluate - Step 3: Evaluate Selected")
logger.info("")
logger.info(" POST /api/match - Run full matching pipeline (may timeout)")
logger.info(" GET /api/discoveries - List saved discoveries")
logger.info(" GET /api/discoveries/<id> - Get specific discovery")
server.serve_forever()
if __name__ == '__main__':
run_server(port=8000)

41
dashboard/.gitignore vendored Normal file
View File

@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# env files (can opt-in for committing if needed)
.env*
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts

36
dashboard/README.md Normal file
View File

@ -0,0 +1,36 @@
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.

View File

@ -0,0 +1,120 @@
import { NextRequest, NextResponse } from 'next/server';
import { spawn } from 'child_process';
import * as path from 'path';
import * as fs from 'fs';
export async function POST(request: NextRequest) {
const { query } = await request.json();
if (!query) {
return NextResponse.json({ error: 'Query is required' }, { status: 400 });
}
// Create a streaming response
const encoder = new TextEncoder();
const stream = new ReadableStream({
async start(controller) {
// Send initial status
controller.enqueue(encoder.encode(JSON.stringify({ status: 'Starting discovery...' }) + '\n'));
// Path to Python script
const techscoutDir = path.resolve(process.cwd(), '..');
const pythonScript = path.join(techscoutDir, 'run_discovery.py');
// Create a temporary Python script to run the discovery
const scriptContent = `
import sys
import json
sys.path.insert(0, r'${techscoutDir}')
from techscout.pipeline.discovery import DiscoveryPipeline
def main():
pipeline = DiscoveryPipeline(model='llama3:8b')
# Status updates via print
print(json.dumps({"status": "Decomposing capability gap..."}), flush=True)
result = pipeline.discover(
capability_gap="""${query.replace(/"/g, '\\"')}""",
max_results=50,
use_llm_scoring=True
)
# Output result
print(json.dumps({"result": result.to_dict()}), flush=True)
if __name__ == '__main__':
main()
`;
// Write temporary script
fs.writeFileSync(pythonScript, scriptContent);
try {
const python = spawn('python', [pythonScript], {
cwd: techscoutDir,
env: { ...process.env, PYTHONUNBUFFERED: '1' }
});
python.stdout.on('data', (data: Buffer) => {
const lines = data.toString().split('\n').filter(Boolean);
for (const line of lines) {
try {
// Try to parse as JSON
JSON.parse(line);
controller.enqueue(encoder.encode(line + '\n'));
} catch {
// Not JSON, send as status
controller.enqueue(encoder.encode(JSON.stringify({ status: line }) + '\n'));
}
}
});
python.stderr.on('data', (data: Buffer) => {
const message = data.toString();
// Check if it's a progress message (from logging)
if (message.includes('INFO')) {
const match = message.match(/- (.+)$/);
if (match) {
controller.enqueue(encoder.encode(JSON.stringify({ status: match[1] }) + '\n'));
}
}
});
await new Promise<void>((resolve, reject) => {
python.on('close', (code: number) => {
if (code === 0) {
resolve();
} else {
reject(new Error(`Python process exited with code ${code}`));
}
});
python.on('error', reject);
});
} catch (error) {
controller.enqueue(encoder.encode(JSON.stringify({
error: `Discovery failed: ${error}`
}) + '\n'));
} finally {
// Cleanup
try {
fs.unlinkSync(pythonScript);
} catch {
// Ignore cleanup errors
}
controller.close();
}
}
});
return new Response(stream, {
headers: {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
},
});
}

View File

@ -0,0 +1,26 @@
import { NextRequest, NextResponse } from 'next/server';
import * as fs from 'fs';
import * as path from 'path';
export async function GET(
request: NextRequest,
{ params }: { params: Promise<{ id: string }> }
) {
const { id } = await params;
const analysesDir = path.resolve(process.cwd(), '..', 'analyses');
const filePath = path.join(analysesDir, `discovery_${id}.json`);
try {
if (!fs.existsSync(filePath)) {
return NextResponse.json({ error: 'Discovery not found' }, { status: 404 });
}
const content = fs.readFileSync(filePath, 'utf-8');
const data = JSON.parse(content);
return NextResponse.json(data);
} catch (error) {
console.error('Failed to load discovery:', error);
return NextResponse.json({ error: String(error) }, { status: 500 });
}
}

View File

@ -0,0 +1,36 @@
import { NextResponse } from 'next/server';
import * as fs from 'fs';
import * as path from 'path';
export async function GET() {
const analysesDir = path.resolve(process.cwd(), '..', 'analyses');
try {
if (!fs.existsSync(analysesDir)) {
return NextResponse.json({ discoveries: [] });
}
const files = fs.readdirSync(analysesDir)
.filter(f => f.startsWith('discovery_') && f.endsWith('.json'))
.sort((a, b) => b.localeCompare(a)); // Newest first
const discoveries = files.map(file => {
const filePath = path.join(analysesDir, file);
const content = fs.readFileSync(filePath, 'utf-8');
const data = JSON.parse(content);
return {
id: data.id,
capability_gap: data.capability_gap,
timestamp: data.timestamp,
candidate_count: data.candidates?.length || 0,
top_score: data.candidates?.[0]?.score || 0,
};
});
return NextResponse.json({ discoveries });
} catch (error) {
console.error('Failed to list discoveries:', error);
return NextResponse.json({ discoveries: [], error: String(error) });
}
}

View File

@ -0,0 +1,33 @@
'use client';
import { FiTrendingUp } from 'react-icons/fi';
import Link from 'next/link';
export default function ComparePage() {
return (
<div className="max-w-4xl mx-auto">
<div className="mb-8">
<h1 className="text-3xl font-bold mb-2">
<span className="gradient-text">Compare Candidates</span>
</h1>
<p className="text-gray-400">
Side-by-side comparison of technology candidates
</p>
</div>
<div className="bg-[#12121a] rounded-2xl border border-[#1e1e2e] p-12 text-center">
<FiTrendingUp className="mx-auto text-4xl text-gray-600 mb-4" />
<p className="text-gray-500 mb-4">No candidates selected for comparison</p>
<p className="text-gray-600 text-sm mb-6">
Run a discovery search and select multiple candidates to compare
</p>
<Link
href="/"
className="inline-block px-6 py-3 bg-gradient-to-r from-[#00d4ff] to-[#7c3aed] rounded-lg font-semibold hover:opacity-90 transition-opacity"
>
Start Discovery
</Link>
</div>
</div>
);
}

View File

@ -0,0 +1,67 @@
'use client';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { FiSearch, FiTarget, FiList, FiTrendingUp, FiDatabase, FiSettings } from 'react-icons/fi';
const navItems = [
{ href: '/', label: 'Scout', icon: FiSearch },
{ href: '/discoveries', label: 'Discoveries', icon: FiList },
{ href: '/deep-dives', label: 'Deep Dives', icon: FiTarget },
{ href: '/compare', label: 'Compare', icon: FiTrendingUp },
];
export default function Sidebar() {
const pathname = usePathname();
return (
<aside className="w-64 bg-[#12121a] border-r border-[#1e1e2e] h-screen sticky top-0 flex flex-col">
{/* Logo */}
<div className="p-6 border-b border-[#1e1e2e]">
<Link href="/" className="flex items-center gap-3">
<div className="w-10 h-10 bg-gradient-to-br from-[#00d4ff] to-[#7c3aed] rounded-lg flex items-center justify-center">
<FiDatabase className="text-white text-xl" />
</div>
<div>
<h1 className="font-bold text-lg gradient-text">TECHSCOUT</h1>
<p className="text-xs text-gray-500">Technology Discovery</p>
</div>
</Link>
</div>
{/* Navigation */}
<nav className="flex-1 p-4">
<ul className="space-y-2">
{navItems.map(item => {
const isActive = pathname === item.href;
const Icon = item.icon;
return (
<li key={item.href}>
<Link
href={item.href}
className={`flex items-center gap-3 px-4 py-3 rounded-lg transition-all ${
isActive
? 'bg-gradient-to-r from-[#00d4ff]/20 to-[#7c3aed]/20 text-[#00d4ff] border border-[#00d4ff]/30'
: 'text-gray-400 hover:text-white hover:bg-[#1e1e2e]'
}`}
>
<Icon className={isActive ? 'text-[#00d4ff]' : ''} />
<span className="font-medium">{item.label}</span>
</Link>
</li>
);
})}
</ul>
</nav>
{/* Footer */}
<div className="p-4 border-t border-[#1e1e2e]">
<div className="text-xs text-gray-500 text-center">
<p>TechScout v0.1.0</p>
<p className="mt-1">100% Local Processing</p>
</div>
</div>
</aside>
);
}

View File

@ -0,0 +1,33 @@
'use client';
import { FiTarget } from 'react-icons/fi';
import Link from 'next/link';
export default function DeepDivesPage() {
return (
<div className="max-w-4xl mx-auto">
<div className="mb-8">
<h1 className="text-3xl font-bold mb-2">
<span className="gradient-text">Deep Dive Analyses</span>
</h1>
<p className="text-gray-400">
Comprehensive company and technology investigations
</p>
</div>
<div className="bg-[#12121a] rounded-2xl border border-[#1e1e2e] p-12 text-center">
<FiTarget className="mx-auto text-4xl text-gray-600 mb-4" />
<p className="text-gray-500 mb-4">No deep dives yet</p>
<p className="text-gray-600 text-sm mb-6">
Run a discovery search first, then select candidates for deep dive analysis
</p>
<Link
href="/"
className="inline-block px-6 py-3 bg-gradient-to-r from-[#00d4ff] to-[#7c3aed] rounded-lg font-semibold hover:opacity-90 transition-opacity"
>
Start Discovery
</Link>
</div>
</div>
);
}

View File

@ -0,0 +1,524 @@
'use client';
import { useEffect, useState } from 'react';
import { useParams } from 'next/navigation';
import Link from 'next/link';
import { FiArrowLeft, FiExternalLink, FiDownload, FiLoader } from 'react-icons/fi';
import type { DiscoveryResult, TechnologyCandidate, DeepDiveResult } from '../../types';
export default function DiscoveryDetailPage() {
const params = useParams();
const [discovery, setDiscovery] = useState<DiscoveryResult | null>(null);
const [loading, setLoading] = useState(true);
const [selectedCandidate, setSelectedCandidate] = useState<TechnologyCandidate | null>(null);
const [deepDiveLoading, setDeepDiveLoading] = useState(false);
const [deepDiveResult, setDeepDiveResult] = useState<DeepDiveResult | null>(null);
useEffect(() => {
if (params.id) {
fetch(`/api/discoveries/${params.id}`)
.then(res => res.json())
.then(data => {
setDiscovery(data);
setLoading(false);
})
.catch(err => {
console.error('Failed to load discovery:', err);
setLoading(false);
});
}
}, [params.id]);
const handleExport = () => {
if (!discovery) return;
// Create CSV content
const headers = ['Rank', 'Title', 'Organization', 'Score', 'TRL', 'Source', 'Award Amount', 'URL'];
const rows = discovery.candidates.map((c, i) => [
i + 1,
`"${c.title.replace(/"/g, '""')}"`,
`"${c.organization.replace(/"/g, '""')}"`,
(c.score * 100).toFixed(1) + '%',
c.trl_estimate || 'N/A',
c.source_type,
c.award_amount ? `$${c.award_amount.toLocaleString()}` : 'N/A',
c.url
]);
const csv = [headers.join(','), ...rows.map(r => r.join(','))].join('\n');
// Download
const blob = new Blob([csv], { type: 'text/csv' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `techscout_${discovery.id}_results.csv`;
a.click();
URL.revokeObjectURL(url);
};
const handleDeepDive = async (candidate: TechnologyCandidate) => {
if (!candidate || !discovery) return;
setDeepDiveLoading(true);
setDeepDiveResult(null);
try {
const response = await fetch('http://localhost:8000/api/deepdive', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
organization: candidate.organization,
technology: candidate.description,
gap: discovery.capability_gap,
}),
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(errorData.error || 'Deep dive failed');
}
const data = await response.json();
if (data.error) {
throw new Error(data.error);
}
if (data.result) {
setDeepDiveResult(data.result);
}
} catch (error) {
console.error('Deep dive failed:', error);
alert(`Deep dive failed: ${error}`);
} finally {
setDeepDiveLoading(false);
}
};
if (loading) {
return (
<div className="flex items-center justify-center h-64">
<div className="text-gray-500">Loading discovery...</div>
</div>
);
}
if (!discovery) {
return (
<div className="text-center py-12">
<p className="text-gray-500">Discovery not found</p>
<Link href="/discoveries" className="text-[#00d4ff] hover:underline mt-4 inline-block">
Back to discoveries
</Link>
</div>
);
}
return (
<div className="max-w-6xl mx-auto">
{/* Header */}
<div className="mb-6">
<Link href="/discoveries" className="text-gray-500 hover:text-white flex items-center gap-2 mb-4">
<FiArrowLeft /> Back to discoveries
</Link>
<div className="flex items-start justify-between">
<div>
<h1 className="text-2xl font-bold mb-2">{discovery.capability_gap}</h1>
<div className="flex items-center gap-4 text-sm text-gray-500">
<span>{new Date(discovery.timestamp).toLocaleString()}</span>
<span>{discovery.search_duration_seconds.toFixed(1)}s</span>
<span>{discovery.total_results_found} total results</span>
</div>
</div>
<button
onClick={handleExport}
className="flex items-center gap-2 px-4 py-2 bg-[#1e1e2e] rounded-lg hover:bg-[#2e2e3e] transition-colors"
>
<FiDownload /> Export CSV
</button>
</div>
</div>
{/* Query Analysis */}
<div className="bg-[#12121a] rounded-2xl border border-[#1e1e2e] p-6 mb-6">
<h2 className="text-lg font-semibold text-[#00d4ff] mb-3">Query Analysis</h2>
<p className="text-gray-300 mb-4">{discovery.decomposition.understanding}</p>
<div className="flex flex-wrap gap-2 mb-4">
{discovery.decomposition.technical_domains.map((domain, i) => (
<span
key={i}
className="px-3 py-1 bg-[#7c3aed]/20 text-[#7c3aed] rounded-full text-sm border border-[#7c3aed]/30"
>
{domain}
</span>
))}
</div>
<div className="grid grid-cols-2 md:grid-cols-5 gap-4 text-center">
<StatCard label="Candidates" value={discovery.candidates.length} color="#00d4ff" />
<StatCard label="SBIR" value={discovery.source_stats.sbir || 0} color="#22c55e" />
<StatCard label="Patents" value={discovery.source_stats.patents || 0} color="#f59e0b" />
<StatCard label="Contracts" value={discovery.source_stats.contracts || 0} color="#7c3aed" />
<StatCard label="Web" value={discovery.source_stats.web || 0} color="#ef4444" />
</div>
</div>
{/* Results */}
<div className="flex gap-6">
{/* Candidate List */}
<div className="flex-1">
<h2 className="text-lg font-semibold mb-4">Technology Candidates ({discovery.candidates.length})</h2>
<div className="space-y-3">
{discovery.candidates.map((candidate, i) => (
<div
key={candidate.id}
onClick={() => setSelectedCandidate(candidate)}
className={`bg-[#12121a] rounded-xl border p-4 cursor-pointer transition-all ${
selectedCandidate?.id === candidate.id
? 'border-[#00d4ff] glow-accent'
: 'border-[#1e1e2e] hover:border-[#2e2e3e]'
}`}
>
<div className="flex items-start justify-between mb-2">
<div className="flex items-center gap-2">
<span className="text-xs font-mono text-gray-500">#{i + 1}</span>
<span className={`text-xs px-2 py-0.5 rounded ${
candidate.source_type === 'sbir' ? 'bg-[#22c55e]/20 text-[#22c55e]' :
candidate.source_type === 'patent' ? 'bg-[#f59e0b]/20 text-[#f59e0b]' :
candidate.source_type === 'contract' ? 'bg-[#00d4ff]/20 text-[#00d4ff]' :
'bg-[#1e1e2e] text-gray-400'
}`}>
{candidate.source_type}
</span>
</div>
<div className="text-right">
<div className="text-sm font-semibold text-[#00d4ff]">
{(candidate.score * 100).toFixed(0)}%
</div>
{candidate.trl_estimate && (
<div className="text-xs text-gray-500">TRL {candidate.trl_estimate}</div>
)}
</div>
</div>
<h3 className="font-medium text-white mb-1">{candidate.title}</h3>
<p className="text-sm text-gray-500">{candidate.organization}</p>
{candidate.award_amount && (
<p className="text-xs text-[#22c55e] mt-1">${candidate.award_amount.toLocaleString()}</p>
)}
</div>
))}
</div>
</div>
{/* Selected Candidate Detail */}
{selectedCandidate && (
<div className="w-96 bg-[#12121a] rounded-2xl border border-[#00d4ff] p-6 sticky top-8 h-fit glow-accent">
<h3 className="text-lg font-semibold text-white mb-4">{selectedCandidate.title}</h3>
<div className="space-y-4">
<div>
<label className="text-xs text-gray-500">Organization</label>
<p className="text-white">{selectedCandidate.organization}</p>
</div>
<div>
<label className="text-xs text-gray-500">Description</label>
<p className="text-gray-300 text-sm">{selectedCandidate.description}</p>
</div>
<div className="grid grid-cols-2 gap-4">
<div>
<label className="text-xs text-gray-500">Score</label>
<p className="text-[#00d4ff] font-semibold">{(selectedCandidate.score * 100).toFixed(1)}%</p>
</div>
<div>
<label className="text-xs text-gray-500">TRL</label>
<p className="text-white">{selectedCandidate.trl_estimate || 'Unknown'}</p>
</div>
<div>
<label className="text-xs text-gray-500">Source</label>
<p className="text-white capitalize">{selectedCandidate.source_type}</p>
</div>
<div>
<label className="text-xs text-gray-500">Date</label>
<p className="text-white">{selectedCandidate.published_date || 'N/A'}</p>
</div>
</div>
{selectedCandidate.award_amount && (
<div>
<label className="text-xs text-gray-500">Award Amount</label>
<p className="text-[#22c55e] font-semibold">${selectedCandidate.award_amount.toLocaleString()}</p>
</div>
)}
<div className="flex gap-2 pt-4">
<a
href={selectedCandidate.url}
target="_blank"
rel="noopener noreferrer"
className="flex-1 py-2 bg-[#1e1e2e] text-center text-sm rounded-lg hover:bg-[#2e2e3e] transition-colors flex items-center justify-center gap-2"
>
<FiExternalLink /> View Source
</a>
<button
onClick={() => handleDeepDive(selectedCandidate)}
disabled={deepDiveLoading || selectedCandidate.organization === 'Unknown'}
title={selectedCandidate.organization === 'Unknown' ? 'Deep Dive requires a known organization' : 'Run deep dive analysis'}
className="flex-1 py-2 bg-gradient-to-r from-[#00d4ff] to-[#7c3aed] text-center text-sm rounded-lg font-semibold hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2"
>
{deepDiveLoading ? (
<>
<FiLoader className="animate-spin" />
Analyzing...
</>
) : selectedCandidate.organization === 'Unknown' ? (
'No Organization'
) : (
'Deep Dive'
)}
</button>
</div>
</div>
</div>
)}
</div>
{/* Deep Dive Modal */}
{deepDiveResult && (
<DeepDiveModal
result={deepDiveResult}
onClose={() => setDeepDiveResult(null)}
/>
)}
</div>
);
}
function StatCard({ label, value, color }: { label: string; value: number; color: string }) {
return (
<div className="bg-[#0a0a12] rounded-lg p-3">
<div className="text-2xl font-bold" style={{ color }}>{value}</div>
<div className="text-xs text-gray-500">{label}</div>
</div>
);
}
function DeepDiveModal({
result,
onClose
}: {
result: DeepDiveResult;
onClose: () => void;
}) {
return (
<div className="fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-8">
<div className="bg-[#0a0a12] rounded-2xl border border-[#1e1e2e] max-w-4xl w-full max-h-[90vh] overflow-y-auto">
{/* Header */}
<div className="sticky top-0 bg-[#0a0a12] border-b border-[#1e1e2e] p-6 flex items-start justify-between">
<div>
<h2 className="text-2xl font-bold gradient-text">{result.organization}</h2>
<p className="text-gray-500 text-sm mt-1">Deep Dive Analysis</p>
</div>
<button
onClick={onClose}
className="text-gray-500 hover:text-white text-2xl"
>
&times;
</button>
</div>
<div className="p-6 space-y-6">
{/* Recommendation Banner */}
<div className={`p-4 rounded-xl border ${
result.recommendation.includes('STRONGLY RECOMMEND') ? 'bg-[#22c55e]/10 border-[#22c55e]/30 text-[#22c55e]' :
result.recommendation.includes('RECOMMEND') ? 'bg-[#00d4ff]/10 border-[#00d4ff]/30 text-[#00d4ff]' :
result.recommendation.includes('CONSIDER') ? 'bg-[#f59e0b]/10 border-[#f59e0b]/30 text-[#f59e0b]' :
'bg-[#ef4444]/10 border-[#ef4444]/30 text-[#ef4444]'
}`}>
<div className="font-semibold text-lg">{result.recommendation}</div>
</div>
{/* Assessment */}
<Section title="Assessment">
<p className="text-gray-300 whitespace-pre-wrap">{result.assessment}</p>
</Section>
{/* Company Profile */}
<Section title="Company Profile">
<div className="grid grid-cols-2 gap-4">
<InfoItem label="Headquarters" value={result.company_profile.headquarters} />
<InfoItem label="Founded" value={result.company_profile.founded} />
<InfoItem label="Employees" value={result.company_profile.employee_count} />
<InfoItem label="Website" value={result.company_profile.website} isLink />
</div>
<p className="text-gray-400 mt-4 text-sm">{result.company_profile.description}</p>
{result.company_profile.leadership.length > 0 && (
<div className="mt-4">
<label className="text-xs text-gray-500">Leadership</label>
<div className="flex flex-wrap gap-2 mt-1">
{result.company_profile.leadership.map((leader, i) => (
<span key={i} className="px-3 py-1 bg-[#1e1e2e] rounded-full text-sm">
{leader.name} - {leader.title}
</span>
))}
</div>
</div>
)}
</Section>
{/* Technology Profile */}
<Section title="Technology Profile">
<div className="grid grid-cols-2 gap-4 mb-4">
<InfoItem label="TRL Assessment" value={`TRL ${result.technology_profile.trl_assessment}`} />
<InfoItem label="Technology" value={result.technology_profile.name} />
</div>
<div className="mb-4">
<label className="text-xs text-gray-500">Technical Approach</label>
<p className="text-gray-300 text-sm mt-1">{result.technology_profile.technical_approach}</p>
</div>
<div className="mb-4">
<label className="text-xs text-gray-500">Competitive Advantage</label>
<p className="text-gray-300 text-sm mt-1">{result.technology_profile.competitive_advantage}</p>
</div>
{result.technology_profile.key_capabilities.length > 0 && (
<div className="mb-4">
<label className="text-xs text-gray-500">Key Capabilities</label>
<ul className="list-disc list-inside text-gray-300 text-sm mt-1">
{result.technology_profile.key_capabilities.map((cap, i) => (
<li key={i}>{cap}</li>
))}
</ul>
</div>
)}
{result.technology_profile.limitations.length > 0 && (
<div>
<label className="text-xs text-gray-500">Limitations</label>
<ul className="list-disc list-inside text-gray-400 text-sm mt-1">
{result.technology_profile.limitations.map((lim, i) => (
<li key={i}>{lim}</li>
))}
</ul>
</div>
)}
</Section>
{/* Contract History */}
<Section title="Contract History">
<div className="grid grid-cols-3 gap-4 mb-4">
<div className="bg-[#1e1e2e] rounded-lg p-4 text-center">
<div className="text-2xl font-bold text-[#00d4ff]">{result.contract_history.total_contracts}</div>
<div className="text-xs text-gray-500">Total Contracts</div>
</div>
<div className="bg-[#1e1e2e] rounded-lg p-4 text-center">
<div className="text-2xl font-bold text-[#22c55e]">
${(result.contract_history.total_value / 1000000).toFixed(1)}M
</div>
<div className="text-xs text-gray-500">Total Value</div>
</div>
<div className="bg-[#1e1e2e] rounded-lg p-4 text-center">
<div className="text-2xl font-bold text-[#f59e0b]">{result.contract_history.sbir_awards.length}</div>
<div className="text-xs text-gray-500">SBIR Awards</div>
</div>
</div>
{result.contract_history.primary_agencies.length > 0 && (
<div className="mb-4">
<label className="text-xs text-gray-500">Primary Agencies</label>
<div className="flex flex-wrap gap-2 mt-1">
{result.contract_history.primary_agencies.map((agency, i) => (
<span key={i} className="px-3 py-1 bg-[#7c3aed]/20 text-[#7c3aed] rounded-full text-sm">
{agency}
</span>
))}
</div>
</div>
)}
</Section>
{/* Risk Factors */}
{result.risk_factors.length > 0 && (
<Section title="Risk Factors">
<ul className="space-y-2">
{result.risk_factors.map((risk, i) => (
<li key={i} className="flex items-start gap-2 text-[#f59e0b]">
<span className="text-[#f59e0b]">!</span>
<span className="text-gray-300">{risk}</span>
</li>
))}
</ul>
</Section>
)}
{/* News Mentions */}
{result.news_mentions.length > 0 && (
<Section title="Recent News">
<div className="space-y-3">
{result.news_mentions.slice(0, 5).map((news, i) => (
<a
key={i}
href={news.url}
target="_blank"
rel="noopener noreferrer"
className="block p-3 bg-[#1e1e2e] rounded-lg hover:bg-[#2e2e3e] transition-colors"
>
<div className="font-medium text-white text-sm">{news.title}</div>
<div className="text-gray-500 text-xs mt-1">{news.date}</div>
</a>
))}
</div>
</Section>
)}
</div>
</div>
</div>
);
}
function Section({ title, children }: { title: string; children: React.ReactNode }) {
return (
<div className="bg-[#12121a] rounded-xl border border-[#1e1e2e] p-5">
<h3 className="text-lg font-semibold text-[#00d4ff] mb-4">{title}</h3>
{children}
</div>
);
}
function InfoItem({ label, value, isLink }: { label: string; value: unknown; isLink?: boolean }) {
if (!value) return null;
// Convert value to string, handling objects
let displayValue: string;
if (typeof value === 'object' && value !== null) {
const obj = value as Record<string, unknown>;
// Handle common object shapes like {location: "..."}
if (obj.location) {
displayValue = String(obj.location);
} else if (obj.name) {
displayValue = String(obj.name);
} else if (obj.value) {
displayValue = String(obj.value);
} else {
// Fallback to JSON for unknown object shapes
displayValue = JSON.stringify(value);
}
} else {
displayValue = String(value);
}
return (
<div>
<label className="text-xs text-gray-500">{label}</label>
{isLink ? (
<a href={displayValue} target="_blank" rel="noopener noreferrer" className="block text-[#00d4ff] hover:underline text-sm">
{displayValue}
</a>
) : (
<p className="text-white text-sm">{displayValue}</p>
)}
</div>
);
}

View File

@ -0,0 +1,98 @@
'use client';
import { useEffect, useState } from 'react';
import Link from 'next/link';
import { FiClock, FiTarget, FiTrendingUp } from 'react-icons/fi';
import type { DiscoverySummary } from '../types';
export default function DiscoveriesPage() {
const [discoveries, setDiscoveries] = useState<DiscoverySummary[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
fetch('/api/discoveries')
.then(res => res.json())
.then(data => {
setDiscoveries(data.discoveries || []);
setLoading(false);
})
.catch(err => {
console.error('Failed to load discoveries:', err);
setLoading(false);
});
}, []);
if (loading) {
return (
<div className="flex items-center justify-center h-64">
<div className="text-gray-500">Loading discoveries...</div>
</div>
);
}
return (
<div className="max-w-4xl mx-auto">
<div className="mb-8">
<h1 className="text-3xl font-bold mb-2">
<span className="gradient-text">Discovery History</span>
</h1>
<p className="text-gray-400">
Previous technology scouting searches
</p>
</div>
{discoveries.length === 0 ? (
<div className="bg-[#12121a] rounded-2xl border border-[#1e1e2e] p-12 text-center">
<FiTarget className="mx-auto text-4xl text-gray-600 mb-4" />
<p className="text-gray-500 mb-4">No discoveries yet</p>
<Link
href="/"
className="inline-block px-6 py-3 bg-gradient-to-r from-[#00d4ff] to-[#7c3aed] rounded-lg font-semibold hover:opacity-90 transition-opacity"
>
Start Your First Search
</Link>
</div>
) : (
<div className="space-y-4">
{discoveries.map(discovery => (
<Link
key={discovery.id}
href={`/discoveries/${discovery.id}`}
className="block bg-[#12121a] rounded-xl border border-[#1e1e2e] p-6 hover:border-[#00d4ff]/50 transition-all group"
>
<div className="flex items-start justify-between mb-3">
<div className="flex items-center gap-2 text-sm text-gray-500">
<FiClock />
{new Date(discovery.timestamp).toLocaleString()}
</div>
<div className="flex items-center gap-4">
<div className="text-right">
<div className="text-sm text-gray-500">Candidates</div>
<div className="text-lg font-semibold text-[#00d4ff]">
{discovery.candidate_count}
</div>
</div>
<div className="text-right">
<div className="text-sm text-gray-500">Top Score</div>
<div className="text-lg font-semibold text-[#22c55e]">
{(discovery.top_score * 100).toFixed(0)}%
</div>
</div>
</div>
</div>
<h2 className="text-lg font-medium text-white group-hover:text-[#00d4ff] transition-colors">
{discovery.capability_gap}
</h2>
<div className="mt-4 flex items-center gap-2 text-sm text-gray-500 group-hover:text-[#00d4ff] transition-colors">
<FiTrendingUp />
View Results
</div>
</Link>
))}
</div>
)}
</div>
);
}

BIN
dashboard/app/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

105
dashboard/app/globals.css Normal file
View File

@ -0,0 +1,105 @@
@import "tailwindcss";
:root {
--background: #0a0a12;
--foreground: #ededed;
--accent: #00d4ff;
--accent-secondary: #7c3aed;
--accent-dim: #0099cc;
--card-bg: #12121a;
--card-border: #1e1e2e;
--success: #22c55e;
--warning: #f59e0b;
--danger: #ef4444;
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
}
body {
background: var(--background);
color: var(--foreground);
font-family: Arial, Helvetica, sans-serif;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: var(--card-bg);
}
::-webkit-scrollbar-thumb {
background: var(--card-border);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #2a2a3a;
}
/* Animations */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes pulse-glow {
0%, 100% {
box-shadow: 0 0 5px rgba(0, 212, 255, 0.3);
}
50% {
box-shadow: 0 0 20px rgba(0, 212, 255, 0.6);
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.animate-fadeIn {
animation: fadeIn 0.3s ease-out forwards;
}
.animate-pulse-glow {
animation: pulse-glow 2s ease-in-out infinite;
}
.animate-spin {
animation: spin 1s linear infinite;
}
/* Gradient text */
.gradient-text {
background: linear-gradient(135deg, var(--accent), var(--accent-secondary));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Glow effects */
.glow-accent {
box-shadow: 0 0 20px rgba(0, 212, 255, 0.3);
}
.glow-purple {
box-shadow: 0 0 20px rgba(124, 58, 237, 0.3);
}

40
dashboard/app/layout.tsx Normal file
View File

@ -0,0 +1,40 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
import Sidebar from "./components/Sidebar";
const geistSans = Geist({
variable: "--font-geist-sans",
subsets: ["latin"],
});
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "TechScout - Technology Scouting Dashboard",
description: "Requirements-driven technology discovery and capability gap analysis",
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
<body
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
>
<div className="flex min-h-screen">
<Sidebar />
<main className="flex-1 p-8 overflow-auto">
{children}
</main>
</div>
</body>
</html>
);
}

1475
dashboard/app/page.tsx Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,294 @@
// TypeScript types for TechScout dashboard
// ===== Legacy Types (for /api/discover) =====
export interface TechnologyCandidate {
id: string;
title: string;
organization: string;
description: string;
source_type: string;
source: string;
url: string;
score: number;
relevance_score: number;
trl_estimate: number | null;
award_amount: number | null;
published_date: string | null;
award_id: string | null;
patent_number: string | null;
}
export interface Decomposition {
original_query: string;
understanding: string;
technical_domains: string[];
search_queries: string[];
sbir_queries: string[];
patent_queries: string[];
news_queries: string[];
keywords: string[];
exclusions: string[];
target_trl_range: [number, number];
}
export interface DiscoveryResult {
id: string;
capability_gap: string;
timestamp: string;
decomposition: Decomposition;
candidates: TechnologyCandidate[];
source_stats: Record<string, number>;
total_results_found: number;
search_duration_seconds: number;
success: boolean;
error?: string;
}
// ===== New Types (for /api/match - Capability-Technology Matching) =====
export interface CapabilityNeed {
functional_need: string;
domain: string;
implied_constraints: string[];
technology_types_sought: string[];
}
export interface CapabilityCriterion {
criterion: string;
weight: 'must_have' | 'should_have' | 'nice_to_have';
keywords: string[];
}
export interface SourceEvidence {
source_type: string;
source_name: string;
title: string;
url: string;
snippet: string;
contribution: string;
published_date: string | null;
award_amount: number | null;
award_id: string | null;
patent_number: string | null;
}
export interface Developer {
name: string;
type: 'company' | 'university' | 'government' | 'lab' | 'unknown';
location: string | null;
}
export interface CriterionResult {
criterion: string;
weight: string;
assessment: 'SUPPORTS' | 'PARTIAL' | 'DOES_NOT_SUPPORT' | 'UNKNOWN';
evidence: string;
source: string | null;
}
export interface CapabilityMatch {
overall_fit: 'HIGH' | 'MEDIUM' | 'LOW' | 'UNCERTAIN';
fit_score: number;
criteria_results: CriterionResult[];
how_it_addresses_need: string;
key_strengths: string[];
key_limitations: string[];
key_unknowns: string[];
investigation_worthy: boolean;
investigation_rationale: string;
}
export interface Technology {
id: string;
canonical_name: string;
alternate_names: string[];
technology_type: string;
description: string;
capabilities: string[];
mechanism: string | null;
developers: Developer[];
trl_estimate: number | null;
trl_confidence: number;
trl_evidence: string[];
sources: SourceEvidence[];
source_count: number;
grouping_confidence: number;
grouped_from: string[];
// Added during evaluation
capability_match: CapabilityMatch;
}
export interface MatchSummary {
total_technologies: number;
high_fit_count: number;
medium_fit_count: number;
low_fit_count: number;
uncertain_count: number;
top_recommendation: string | null;
}
export interface SearchMetadata {
total_documents_searched: number;
technologies_extracted: number;
technologies_after_grouping: number;
sources_used: string[];
processing_time_seconds: number;
}
export interface CapabilityMatchResult {
id: string;
timestamp: string;
user_input: string;
capability_need: CapabilityNeed | null;
capability_criteria: CapabilityCriterion[];
technologies: Technology[];
summary: MatchSummary;
metadata: SearchMetadata;
success: boolean;
error: string | null;
}
export interface CompanyProfile {
name: string;
description: string;
website: string | null;
headquarters: string | null;
employee_count: string | null;
founded: string | null;
leadership: Array<{ name: string; title: string }>;
}
export interface TechnologyProfile {
name: string;
description: string;
technical_approach: string;
trl_assessment: number;
key_capabilities: string[];
limitations: string[];
competitive_advantage: string;
related_patents: Array<{ title: string; number: string; url: string }>;
}
export interface ContractHistory {
total_contracts: number;
total_value: number;
primary_agencies: string[];
recent_contracts: Array<{
title: string;
amount: number | null;
date: string | null;
agency: string;
url: string;
}>;
sbir_awards: Array<{
title: string;
amount: number | null;
phase: string;
year: string | null;
url: string;
}>;
}
export interface DeepDiveResult {
id: string;
candidate_id: string;
organization: string;
timestamp: string;
company_profile: CompanyProfile;
technology_profile: TechnologyProfile;
contract_history: ContractHistory;
other_offerings: Array<{ title: string; description: string; url: string }>;
news_mentions: Array<{ title: string; snippet: string; date: string | null; url: string }>;
assessment: string;
risk_factors: string[];
recommendation: string;
duration_seconds: number;
success: boolean;
error?: string;
}
export interface DiscoverySummary {
id: string;
capability_gap: string;
timestamp: string;
candidate_count: number;
top_score: number;
}
export interface DeepDiveSummary {
id: string;
organization: string;
timestamp: string;
recommendation: string;
}
// ===== Step-Based Workflow Types (for guided capability matching) =====
export interface SearchResultItem {
id: string;
title: string;
snippet: string;
url: string;
source_type: string;
source_name: string;
organization: string | null;
published_date: string | null;
award_amount: number | null;
trl_estimate: number | null;
}
export interface StepSearchResult {
id: string;
timestamp: string;
user_input: string;
capability_need: CapabilityNeed | null;
capability_criteria: CapabilityCriterion[];
parsed_capability: unknown;
search_results: SearchResultItem[];
source_counts: Record<string, number>;
processing_time_seconds: number;
success: boolean;
error: string | null;
guidance_message: string;
}
export interface TechnologyItem {
id: string;
canonical_name: string;
technology_type: string;
description: string;
capabilities: string[];
developers: Developer[];
trl_estimate: number | null;
source_count: number;
sources: SourceEvidence[];
}
export interface StepExtractionResult {
id: string;
timestamp: string;
search_id: string;
technologies: TechnologyItem[];
raw_extractions: number;
after_grouping: number;
processing_time_seconds: number;
success: boolean;
error: string | null;
guidance_message: string;
}
export interface StepEvaluationResult {
id: string;
timestamp: string;
search_id: string;
technologies: Technology[];
summary: MatchSummary;
processing_time_seconds: number;
success: boolean;
error: string | null;
guidance_message: string;
}
// Workflow step type
export type WorkflowStep = 'input' | 'search' | 'extract' | 'evaluate';

View File

@ -0,0 +1,18 @@
import { defineConfig, globalIgnores } from "eslint/config";
import nextVitals from "eslint-config-next/core-web-vitals";
import nextTs from "eslint-config-next/typescript";
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
// Override default ignores of eslint-config-next.
globalIgnores([
// Default ignores of eslint-config-next:
".next/**",
"out/**",
"build/**",
"next-env.d.ts",
]),
]);
export default eslintConfig;

7
dashboard/next.config.ts Normal file
View File

@ -0,0 +1,7 @@
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
/* config options here */
};
export default nextConfig;

6654
dashboard/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

28
dashboard/package.json Normal file
View File

@ -0,0 +1,28 @@
{
"name": "dashboard",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint"
},
"dependencies": {
"next": "16.1.1",
"react": "19.2.3",
"react-dom": "19.2.3",
"react-icons": "^5.5.0",
"vis-network": "^10.0.2"
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "16.1.1",
"tailwindcss": "^4",
"typescript": "^5"
}
}

View File

@ -0,0 +1,7 @@
const config = {
plugins: {
"@tailwindcss/postcss": {},
},
};
export default config;

View File

@ -0,0 +1 @@
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 391 B

View File

@ -0,0 +1 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 128 B

View File

@ -0,0 +1 @@
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>

After

Width:  |  Height:  |  Size: 385 B

34
dashboard/tsconfig.json Normal file
View File

@ -0,0 +1,34 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react-jsx",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./*"]
}
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts",
"**/*.mts"
],
"exclude": ["node_modules"]
}

79
install.bat Normal file
View File

@ -0,0 +1,79 @@
@echo off
echo ============================================================
echo TECHSCOUT - Installation Script
echo Technology Scouting ^& Capability Gap Analysis
echo ============================================================
echo.
:: Check for Python
echo [1/4] Checking Python installation...
python --version >nul 2>&1
if errorlevel 1 (
echo ERROR: Python is not installed or not in PATH
echo Please install Python from https://www.python.org/downloads/
echo Make sure to check "Add Python to PATH" during installation
pause
exit /b 1
)
echo Python found!
:: Check for Node.js
echo [2/4] Checking Node.js installation...
node --version >nul 2>&1
if errorlevel 1 (
echo ERROR: Node.js is not installed or not in PATH
echo Please install Node.js from https://nodejs.org/
pause
exit /b 1
)
echo Node.js found!
:: Check for Ollama
echo [3/4] Checking Ollama installation...
ollama --version >nul 2>&1
if errorlevel 1 (
echo WARNING: Ollama not found in PATH
echo TechScout requires Ollama for AI analysis.
echo Please install from https://ollama.ai
echo After installing, run: ollama pull mistral-nemo:12b
echo.
echo Press any key to continue anyway...
pause >nul
) else (
echo Ollama found!
)
:: Install Python dependencies
echo [4/4] Installing dependencies...
echo.
echo Installing Python packages...
pip install -r "%~dp0requirements.txt" --quiet
if errorlevel 1 (
echo ERROR: Failed to install Python dependencies
pause
exit /b 1
)
echo Installing Dashboard packages...
cd "%~dp0dashboard"
call npm install --silent
if errorlevel 1 (
echo ERROR: Failed to install Dashboard dependencies
pause
exit /b 1
)
cd "%~dp0"
echo.
echo ============================================================
echo Installation Complete!
echo ============================================================
echo.
echo To start TechScout, double-click: launch.bat
echo.
echo Make sure Ollama is running with mistral-nemo:12b model:
echo 1. Open a terminal and run: ollama serve
echo 2. In another terminal run: ollama pull mistral-nemo:12b
echo.
pause

65
launch.bat Normal file
View File

@ -0,0 +1,65 @@
@echo off
title TechScout Launcher
echo ============================================================
echo TECHSCOUT - Technology Scouting Dashboard
echo ============================================================
echo.
:: Check if Ollama is running
echo [1/3] Checking Ollama status...
curl -s http://localhost:11434/api/tags >nul 2>&1
if errorlevel 1 (
echo.
echo Ollama is not running. Starting it now...
start "Ollama Server" cmd /c "ollama serve"
echo Waiting for Ollama to start...
timeout /t 5 /nobreak >nul
:: Check again
curl -s http://localhost:11434/api/tags >nul 2>&1
if errorlevel 1 (
echo.
echo ERROR: Could not start Ollama automatically.
echo Please install Ollama from https://ollama.ai
echo Then run this launcher again.
pause
exit /b 1
)
)
echo Ollama is running!
:: Start API server
echo.
echo [2/3] Starting API server...
start "TechScout API Server" cmd /k "cd /d %~dp0 && python api_server.py"
:: Wait for API server to start
timeout /t 3 /nobreak >nul
:: Verify API server
curl -s http://localhost:8000/api/health >nul 2>&1
if errorlevel 1 (
echo WARNING: API server may still be starting...
timeout /t 3 /nobreak >nul
)
echo API server started!
:: Start dashboard
echo.
echo [3/3] Starting dashboard...
echo.
echo ============================================================
echo TechScout is ready!
echo.
echo Dashboard: http://localhost:3001
echo API Server: http://localhost:8000
echo.
echo Your browser will open automatically.
echo.
echo TO STOP: Close all TechScout windows, or press Ctrl+C here
echo ============================================================
echo.
cd "%~dp0dashboard"
start "" http://localhost:3001
npm run dev -- -p 3001

16
requirements.txt Normal file
View File

@ -0,0 +1,16 @@
# TechScout Dependencies
# All free/open-source, no API keys required
# Web Search
ddgs>=6.0
# HTTP requests
requests>=2.31
aiohttp>=3.9
# Data handling
pyyaml>=6.0
# Note: Ollama must be installed separately
# Download from: https://ollama.ai
# Then run: ollama pull mistral-nemo:12b

14
start_api.bat Normal file
View File

@ -0,0 +1,14 @@
@echo off
echo ============================================================
echo TECHSCOUT - API Server
echo ============================================================
echo.
echo This server handles discovery and deep-dive requests.
echo Keep this window open while using TechScout.
echo.
echo Press Ctrl+C to stop the server.
echo ============================================================
echo.
cd "%~dp0"
python api_server.py

20
start_ollama.bat Normal file
View File

@ -0,0 +1,20 @@
@echo off
echo ============================================================
echo Starting Ollama AI Server
echo ============================================================
echo.
echo This window must stay open while using TechScout.
echo.
echo If this is your first time, the model will download (~4GB)
echo.
:: Check if model exists, if not pull it
ollama list | findstr "mistral-nemo:12b" >nul 2>&1
if errorlevel 1 (
echo Downloading mistral-nemo:12b model (this may take a few minutes)...
ollama pull mistral-nemo:12b
)
echo Starting Ollama server...
echo.
ollama serve

15
techscout/__init__.py Normal file
View File

@ -0,0 +1,15 @@
"""
TechScout - Technology Scouting & Capability Gap Analysis Tool
A requirements-driven technology discovery platform that:
- Decomposes capability gaps into technical search queries
- Searches multiple defense/tech data sources
- Scores results on problem-solution fit
- Provides deep-dive company analysis
Two-phase approach:
- Phase 1: Discovery & Initial Scoring
- Phase 2: Deep Dive Investigation
"""
__version__ = "0.1.0"

View File

@ -0,0 +1,16 @@
"""Capability parsing module for TechScout."""
from .parser import CapabilityParser
from .types import (
ParsedCapability,
CapabilityNeed,
CapabilityCriterion,
TechnologyIndicators,
)
__all__ = [
"CapabilityParser",
"ParsedCapability",
"CapabilityNeed",
"CapabilityCriterion",
"TechnologyIndicators",
]

View File

@ -0,0 +1,285 @@
"""
Capability Parser for TechScout.
Transforms natural language capability descriptions into structured
capability needs, evaluation criteria, and optimized search queries.
This replaces the simpler query decomposition with capability-focused parsing.
"""
import json
import logging
from typing import Optional, List
from ..extraction.llm_client import OllamaClient
from .types import (
ParsedCapability,
CapabilityNeed,
CapabilityCriterion,
TechnologyIndicators,
)
logger = logging.getLogger(__name__)
class CapabilityParser:
"""
Parses capability gap descriptions into structured capability needs.
Output is used for:
1. Optimized search queries (finding technologies, not topic discussions)
2. Technology extraction criteria (what makes something a technology)
3. Capability fit evaluation (does technology X provide capability Y)
"""
SYSTEM_PROMPT = """You are a defense technology analyst specializing in capability gap analysis.
Your task is to analyze a natural language description of a capability need and:
1. Extract the core functional requirements
2. Define criteria for evaluating whether a technology addresses the need
3. Generate search queries optimized for finding TECHNOLOGIES (not topic discussions)
4. Identify indicators that distinguish actual technologies from general content
Think about what specific, nameable technologies could solve the problem.
Focus on finding solutions, not understanding problems."""
CAPABILITY_PARSE_PROMPT = """Analyze this capability need and generate a structured capability assessment.
CAPABILITY NEED:
{query}
Respond with a JSON object containing:
{{
"understanding": "Your 2-3 sentence technical understanding of what's needed",
"technical_domains": ["relevant", "technical", "domains"],
"capability_need": {{
"functional_need": "The core capability being sought (1-2 sentences)",
"domain": "Primary domain (e.g., Space Domain Awareness, Cyber, Electronic Warfare)",
"implied_constraints": ["constraint1", "constraint2"],
"technology_types_sought": ["sensor", "algorithm", "material", "system", "platform"]
}},
"capability_criteria": [
{{
"criterion": "What the technology must do to address this need",
"weight": "must_have",
"keywords": ["terms", "indicating", "this", "criterion", "is", "met"]
}},
{{
"criterion": "Secondary capability that would be valuable",
"weight": "should_have",
"keywords": ["relevant", "keywords"]
}},
{{
"criterion": "Nice-to-have capability",
"weight": "nice_to_have",
"keywords": ["keywords"]
}}
],
"search_queries": [
"technology-focused query 1 (include terms like: prototype, system, device, demonstrated)",
"technology-focused query 2",
"technology-focused query 3",
"technology-focused query 4",
"technology-focused query 5"
],
"sbir_queries": [
"SBIR-optimized query focusing on R&D and development terms",
"Another SBIR query with different technical angle"
],
"patent_queries": [
"Patent search with technical terminology and apparatus/method/system",
"Alternative patent query"
],
"news_queries": [
"News query for recent technology announcements",
"Industry/defense news query"
],
"keywords": ["key", "technical", "terms"],
"exclusions": ["terms", "to", "exclude", "overview", "introduction", "challenge"],
"technology_indicators": {{
"positive": ["prototype", "demonstrated", "developed", "patent", "Phase II", "system", "device", "sensor", "algorithm", "tested", "deployed"],
"negative": ["overview", "challenge", "problem", "review", "survey", "introduction", "future", "potential", "could", "might"]
}},
"target_trl": {{
"min": 4,
"max": 7,
"rationale": "Why this TRL range"
}}
}}
IMPORTANT:
- Generate at least 3 capability_criteria (at least 1 must_have)
- Search queries should find TECHNOLOGIES, not topic discussions
- Include technology indicator terms (prototype, demonstrated, etc.) in queries
- Exclude vague terms (overview, challenge, potential) where possible"""
def __init__(
self,
ollama_client: Optional[OllamaClient] = None,
model: str = "mistral-nemo:12b"
):
self.client = ollama_client or OllamaClient()
self.model = model
def parse(self, query: str) -> ParsedCapability:
"""
Parse a capability gap description into structured capability needs.
Args:
query: Natural language capability gap description
Returns:
ParsedCapability with structured needs, criteria, and search queries
"""
logger.info(f"Parsing capability: {query[:100]}...")
prompt = self.CAPABILITY_PARSE_PROMPT.format(query=query)
response = self.client.generate(
prompt=prompt,
model=self.model,
system=self.SYSTEM_PROMPT,
temperature=0.2,
format="json"
)
if not response.success:
logger.error(f"LLM call failed: {response.error}")
return self._create_fallback(query, response.error)
# Parse response
try:
data = json.loads(response.content)
except json.JSONDecodeError:
data = self.client.extract_json_from_text(response.content)
if not data:
logger.error("Failed to parse LLM response as JSON")
return self._create_fallback(query, "Failed to parse LLM response")
return self._build_parsed_capability(query, data)
def _build_parsed_capability(self, query: str, data: dict) -> ParsedCapability:
"""Build ParsedCapability from LLM response data."""
# Extract capability need
cap_need_data = data.get("capability_need", {})
capability_need = CapabilityNeed(
functional_need=cap_need_data.get("functional_need", ""),
domain=cap_need_data.get("domain", ""),
implied_constraints=cap_need_data.get("implied_constraints", []),
technology_types_sought=cap_need_data.get("technology_types_sought", []),
)
# Extract capability criteria
criteria_data = data.get("capability_criteria", [])
capability_criteria = []
for c in criteria_data:
weight = c.get("weight", "should_have")
if weight not in ("must_have", "should_have", "nice_to_have"):
weight = "should_have"
capability_criteria.append(CapabilityCriterion(
criterion=c.get("criterion", ""),
weight=weight,
keywords=c.get("keywords", []),
))
# Ensure at least one must_have criterion
if not any(c.weight == "must_have" for c in capability_criteria):
if capability_criteria:
capability_criteria[0].weight = "must_have"
else:
capability_criteria.append(CapabilityCriterion(
criterion=capability_need.functional_need or "Address the capability need",
weight="must_have",
keywords=data.get("keywords", []),
))
# Extract technology indicators
indicators_data = data.get("technology_indicators", {})
technology_indicators = TechnologyIndicators(
positive=indicators_data.get("positive", [
"prototype", "demonstrated", "developed", "patent",
"Phase II", "system", "device", "sensor", "tested"
]),
negative=indicators_data.get("negative", [
"overview", "challenge", "problem", "review",
"survey", "introduction", "future", "potential"
]),
)
# Extract TRL range
trl_data = data.get("target_trl", {})
trl_range = (
trl_data.get("min", 4),
trl_data.get("max", 7)
)
return ParsedCapability(
original_query=query,
understanding=data.get("understanding", ""),
technical_domains=data.get("technical_domains", []),
search_queries=data.get("search_queries", []),
sbir_queries=data.get("sbir_queries", []),
patent_queries=data.get("patent_queries", []),
news_queries=data.get("news_queries", []),
keywords=data.get("keywords", []),
exclusions=data.get("exclusions", []),
target_trl_range=trl_range,
capability_need=capability_need,
capability_criteria=capability_criteria,
technology_indicators=technology_indicators,
success=True,
)
def _create_fallback(self, query: str, error: str) -> ParsedCapability:
"""Create a fallback ParsedCapability when LLM fails."""
# Generate basic queries from the input
words = query.split()
basic_queries = [
query,
" ".join(words[:min(5, len(words))]) + " technology",
" ".join(words[:min(5, len(words))]) + " system prototype",
]
return ParsedCapability(
original_query=query,
understanding="",
technical_domains=[],
search_queries=basic_queries,
sbir_queries=basic_queries[:2],
patent_queries=basic_queries[:2],
news_queries=basic_queries[:2],
keywords=words[:10],
exclusions=[],
capability_need=CapabilityNeed(
functional_need=query,
domain="",
implied_constraints=[],
technology_types_sought=["system", "technology"],
),
capability_criteria=[
CapabilityCriterion(
criterion="Address the stated capability need",
weight="must_have",
keywords=words[:5],
)
],
technology_indicators=TechnologyIndicators(
positive=["prototype", "demonstrated", "system", "device"],
negative=["overview", "challenge", "review"],
),
success=False,
error=error,
)

View File

@ -0,0 +1,107 @@
"""
Type definitions for Capability Parsing.
These types represent the structured output of capability parsing,
which flows downstream to technology extraction and evaluation.
"""
from dataclasses import dataclass, field
from typing import List, Dict, Any, Optional, Literal
@dataclass
class CapabilityNeed:
"""Structured representation of what the user needs."""
functional_need: str # Core capability being sought
domain: str # Domain area (e.g., "Space Domain Awareness")
implied_constraints: List[str] # Constraints inferred from the description
technology_types_sought: List[str] # Types of tech that might help (sensor, algorithm, etc.)
def to_dict(self) -> Dict[str, Any]:
return {
"functional_need": self.functional_need,
"domain": self.domain,
"implied_constraints": self.implied_constraints,
"technology_types_sought": self.technology_types_sought,
}
@dataclass
class CapabilityCriterion:
"""A single criterion for evaluating technology fit."""
criterion: str # What the technology must do
weight: Literal["must_have", "should_have", "nice_to_have"]
keywords: List[str] # Terms that indicate this criterion is met
def to_dict(self) -> Dict[str, Any]:
return {
"criterion": self.criterion,
"weight": self.weight,
"keywords": self.keywords,
}
@dataclass
class TechnologyIndicators:
"""Indicators for identifying actual technologies in search results."""
positive: List[str] # Terms suggesting result describes a technology
negative: List[str] # Terms suggesting result is just topic discussion
def to_dict(self) -> Dict[str, Any]:
return {
"positive": self.positive,
"negative": self.negative,
}
@dataclass
class ParsedCapability:
"""
Complete result of capability parsing.
Extends the original query decomposition with structured capability
information used for technology extraction and evaluation.
"""
# Original input
original_query: str
# Understanding (from original decomposer)
understanding: str
technical_domains: List[str]
# Search queries (from original decomposer)
search_queries: List[str]
sbir_queries: List[str]
patent_queries: List[str]
news_queries: List[str]
keywords: List[str]
exclusions: List[str]
target_trl_range: tuple = (4, 7)
# NEW: Structured capability parsing
capability_need: Optional[CapabilityNeed] = None
capability_criteria: List[CapabilityCriterion] = field(default_factory=list)
technology_indicators: Optional[TechnologyIndicators] = None
# Status
success: bool = True
error: Optional[str] = None
def to_dict(self) -> Dict[str, Any]:
return {
"original_query": self.original_query,
"understanding": self.understanding,
"technical_domains": self.technical_domains,
"search_queries": self.search_queries,
"sbir_queries": self.sbir_queries,
"patent_queries": self.patent_queries,
"news_queries": self.news_queries,
"keywords": self.keywords,
"exclusions": self.exclusions,
"target_trl_range": list(self.target_trl_range),
"capability_need": self.capability_need.to_dict() if self.capability_need else None,
"capability_criteria": [c.to_dict() for c in self.capability_criteria],
"technology_indicators": self.technology_indicators.to_dict() if self.technology_indicators else None,
"success": self.success,
"error": self.error,
}

278
techscout/cli.py Normal file
View File

@ -0,0 +1,278 @@
"""
TechScout CLI
Command-line interface for technology scouting.
"""
import argparse
import logging
import sys
import json
from pathlib import Path
from .config import config
from .pipeline.discovery import DiscoveryPipeline
from .pipeline.deep_dive import DeepDivePipeline
from .extraction.llm_client import OllamaClient
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
def cmd_discover(args):
"""Run Phase 1 discovery."""
print(f"\n{'='*60}")
print("TECHSCOUT - Phase 1: Discovery")
print(f"{'='*60}\n")
pipeline = DiscoveryPipeline(model=args.model)
print(f"Capability Gap: {args.query}\n")
print("Starting discovery process...\n")
result = pipeline.discover(
capability_gap=args.query,
max_results=args.max_results,
use_llm_scoring=not args.fast
)
if not result.success:
print(f"\nError: {result.error}")
return
# Display results
print(f"\n{'='*60}")
print("DISCOVERY RESULTS")
print(f"{'='*60}\n")
print(f"Query Understanding:")
print(f" {result.decomposition.get('understanding', 'N/A')}\n")
print(f"Technical Domains: {', '.join(result.decomposition.get('technical_domains', []))}\n")
print(f"Source Statistics:")
for source, count in result.source_stats.items():
print(f" - {source}: {count} results")
print(f"\nTotal Results: {result.total_results_found}")
print(f"Search Time: {result.search_duration_seconds:.1f}s\n")
print(f"TOP {len(result.candidates)} CANDIDATES:")
print("-" * 60)
for i, candidate in enumerate(result.candidates[:20], 1):
print(f"\n{i}. {candidate.title[:70]}")
print(f" Organization: {candidate.organization}")
print(f" Source: {candidate.source_type} | Score: {candidate.score:.2f}")
if candidate.trl_estimate:
print(f" TRL: {candidate.trl_estimate}")
if candidate.award_amount:
print(f" Award: ${candidate.award_amount:,.0f}")
print(f" URL: {candidate.url[:60]}...")
print(f"\n\nResults saved to: {config.analyses_dir / f'discovery_{result.id}.json'}")
def cmd_deepdive(args):
"""Run Phase 2 deep dive."""
print(f"\n{'='*60}")
print("TECHSCOUT - Phase 2: Deep Dive")
print(f"{'='*60}\n")
pipeline = DeepDivePipeline(model=args.model)
print(f"Organization: {args.organization}")
print(f"Technology: {args.technology}\n")
print("Starting deep dive analysis...\n")
result = pipeline.deep_dive(
organization=args.organization,
technology_context=args.technology,
capability_gap=args.gap
)
if not result.success:
print(f"\nError: {result.error}")
return
# Display results
print(f"\n{'='*60}")
print("DEEP DIVE RESULTS")
print(f"{'='*60}\n")
print("COMPANY PROFILE")
print("-" * 40)
print(f"Name: {result.company_profile.name}")
print(f"Description: {result.company_profile.description}")
print(f"Headquarters: {result.company_profile.headquarters or 'Unknown'}")
print(f"Founded: {result.company_profile.founded or 'Unknown'}")
if result.company_profile.leadership:
print("Leadership:")
for leader in result.company_profile.leadership[:3]:
print(f" - {leader.get('name', 'Unknown')}: {leader.get('title', 'Unknown')}")
print(f"\nTECHNOLOGY PROFILE")
print("-" * 40)
print(f"Technology: {result.technology_profile.name}")
print(f"TRL Assessment: {result.technology_profile.trl_assessment}")
print(f"Approach: {result.technology_profile.technical_approach[:200]}...")
print(f"Key Capabilities:")
for cap in result.technology_profile.key_capabilities[:5]:
print(f" - {cap}")
print(f"Competitive Advantage: {result.technology_profile.competitive_advantage}")
print(f"\nCONTRACT HISTORY")
print("-" * 40)
print(f"Total Contracts: {result.contract_history.total_contracts}")
print(f"Total Value: ${result.contract_history.total_value:,.0f}")
print(f"Primary Agencies: {', '.join(result.contract_history.primary_agencies[:3])}")
print(f"SBIR Awards: {len(result.contract_history.sbir_awards)}")
print(f"\nASSESSMENT")
print("-" * 40)
print(result.assessment)
print(f"\nRISK FACTORS")
for risk in result.risk_factors:
print(f" - {risk}")
print(f"\nRECOMMENDATION: {result.recommendation}")
print(f"\n\nResults saved to: {config.analyses_dir / f'deepdive_{result.id}.json'}")
def cmd_list(args):
"""List saved analyses."""
print("\nSaved Analyses:")
print("-" * 60)
discoveries = list(config.analyses_dir.glob("discovery_*.json"))
deep_dives = list(config.analyses_dir.glob("deepdive_*.json"))
if discoveries:
print("\nPhase 1 - Discovery:")
for f in sorted(discoveries, reverse=True)[:10]:
with open(f) as fp:
data = json.load(fp)
print(f" {f.stem}: {data.get('capability_gap', 'Unknown')[:50]}...")
if deep_dives:
print("\nPhase 2 - Deep Dive:")
for f in sorted(deep_dives, reverse=True)[:10]:
with open(f) as fp:
data = json.load(fp)
print(f" {f.stem}: {data.get('organization', 'Unknown')}")
if not discoveries and not deep_dives:
print(" No analyses found.")
def cmd_check(args):
"""Check system status."""
print("\nTechScout System Check")
print("-" * 40)
# Check Ollama
client = OllamaClient()
if client.is_available():
print("Ollama: RUNNING")
models = client.list_models()
print(f" Available models: {', '.join(models[:5])}")
else:
print("Ollama: NOT RUNNING")
print(" Please start Ollama: ollama serve")
# Check directories
print(f"\nDirectories:")
print(f" Analyses: {config.analyses_dir} ({'exists' if config.analyses_dir.exists() else 'MISSING'})")
print(f" Exports: {config.exports_dir} ({'exists' if config.exports_dir.exists() else 'MISSING'})")
def main():
parser = argparse.ArgumentParser(
description="TechScout - Technology Scouting & Capability Gap Analysis"
)
subparsers = parser.add_subparsers(dest="command", help="Commands")
# Discover command
discover_parser = subparsers.add_parser(
"discover",
help="Phase 1: Discover technologies for a capability gap"
)
discover_parser.add_argument(
"query",
help="Natural language capability gap description"
)
discover_parser.add_argument(
"--model", "-m",
default="mistral-nemo:12b",
help="Ollama model to use"
)
discover_parser.add_argument(
"--max-results", "-n",
type=int,
default=50,
help="Maximum candidates to return"
)
discover_parser.add_argument(
"--fast",
action="store_true",
help="Skip LLM scoring for faster results"
)
# Deep dive command
deepdive_parser = subparsers.add_parser(
"deepdive",
help="Phase 2: Deep dive into a company/technology"
)
deepdive_parser.add_argument(
"organization",
help="Company name to investigate"
)
deepdive_parser.add_argument(
"--technology", "-t",
required=True,
help="Technology context/description"
)
deepdive_parser.add_argument(
"--gap", "-g",
required=True,
help="Original capability gap"
)
deepdive_parser.add_argument(
"--model", "-m",
default="mistral-nemo:12b",
help="Ollama model to use"
)
# List command
list_parser = subparsers.add_parser(
"list",
help="List saved analyses"
)
# Check command
check_parser = subparsers.add_parser(
"check",
help="Check system status"
)
args = parser.parse_args()
if args.command == "discover":
cmd_discover(args)
elif args.command == "deepdive":
cmd_deepdive(args)
elif args.command == "list":
cmd_list(args)
elif args.command == "check":
cmd_check(args)
else:
parser.print_help()
if __name__ == "__main__":
main()

83
techscout/config.py Normal file
View File

@ -0,0 +1,83 @@
"""
TechScout Configuration
Central configuration for all components.
"""
from dataclasses import dataclass, field
from typing import List, Optional
from pathlib import Path
@dataclass
class OllamaConfig:
"""Ollama LLM configuration."""
base_url: str = "http://localhost:11434"
fast_model: str = "llama3.2:latest" # Quick decomposition
default_model: str = "mistral-nemo:12b" # Standard analysis
quality_model: str = "qwen2.5:14b" # Deep analysis
temperature: float = 0.1
max_tokens: int = 4096
@dataclass
class SearchConfig:
"""Search configuration."""
max_results_per_source: int = 20
request_delay: float = 1.0 # Rate limiting
timeout: int = 30
# Source weights for scoring
source_weights: dict = field(default_factory=lambda: {
"sbir_sttr": 1.2, # High relevance for defense tech
"uspto": 1.1, # Patents indicate innovation
"usaspending": 1.0, # Contract history
"defense_news": 0.9, # News/press
"web_search": 0.8, # General web
"arxiv": 1.0, # Academic research
})
@dataclass
class ScoringConfig:
"""Scoring and ranking configuration."""
# Weights for different scoring factors
technical_relevance_weight: float = 0.35
trl_match_weight: float = 0.20
recency_weight: float = 0.15
source_authority_weight: float = 0.15
funding_indicator_weight: float = 0.15
# TRL preferences (target TRL range)
target_trl_min: int = 4
target_trl_max: int = 7
# Recency decay (years)
recency_half_life: float = 2.0
@dataclass
class TechScoutConfig:
"""Main TechScout configuration."""
# Paths
base_dir: Path = field(default_factory=lambda: Path(__file__).parent.parent)
personas_dir: Path = field(default_factory=lambda: Path(__file__).parent.parent / "personas")
analyses_dir: Path = field(default_factory=lambda: Path(__file__).parent.parent / "analyses")
exports_dir: Path = field(default_factory=lambda: Path(__file__).parent.parent / "exports")
# Sub-configs
ollama: OllamaConfig = field(default_factory=OllamaConfig)
search: SearchConfig = field(default_factory=SearchConfig)
scoring: ScoringConfig = field(default_factory=ScoringConfig)
# Analysis settings
max_phase1_results: int = 50
max_phase2_candidates: int = 10
def __post_init__(self):
"""Ensure directories exist."""
self.analyses_dir.mkdir(parents=True, exist_ok=True)
self.exports_dir.mkdir(parents=True, exist_ok=True)
# Global config instance
config = TechScoutConfig()

View File

@ -0,0 +1,7 @@
"""Extraction module for TechScout."""
from .llm_client import OllamaClient
from .decomposer import QueryDecomposer
from .scorer import ResultScorer
from .org_extractor import OrganizationExtractor
__all__ = ["OllamaClient", "QueryDecomposer", "ResultScorer", "OrganizationExtractor"]

View File

@ -0,0 +1,238 @@
"""
Query Decomposition for TechScout.
Takes a natural language capability gap description and decomposes it
into specific technical search queries optimized for different data sources.
"""
import json
import logging
from dataclasses import dataclass, field
from typing import List, Dict, Any, Optional
from .llm_client import OllamaClient
logger = logging.getLogger(__name__)
@dataclass
class DecomposedQuery:
"""Result of query decomposition."""
original_query: str
understanding: str # LLM's understanding of the problem
technical_domains: List[str] # Identified technical areas
search_queries: List[str] # General search queries
sbir_queries: List[str] # Optimized for SBIR search
patent_queries: List[str] # Optimized for patent search
news_queries: List[str] # Optimized for news search
keywords: List[str] # Key technical terms
exclusions: List[str] # Terms to exclude (reduce noise)
target_trl_range: tuple = (4, 7) # Target TRL range
success: bool = True
error: Optional[str] = None
def to_dict(self) -> Dict[str, Any]:
return {
"original_query": self.original_query,
"understanding": self.understanding,
"technical_domains": self.technical_domains,
"search_queries": self.search_queries,
"sbir_queries": self.sbir_queries,
"patent_queries": self.patent_queries,
"news_queries": self.news_queries,
"keywords": self.keywords,
"exclusions": self.exclusions,
"target_trl_range": list(self.target_trl_range),
"success": self.success,
"error": self.error
}
class QueryDecomposer:
"""
Decomposes capability gap descriptions into technical search queries.
"""
SYSTEM_PROMPT = """You are a defense technology analyst specializing in translating operational capability gaps into technical search strategies.
Your task is to take a natural language description of a capability need and:
1. Understand the underlying technical problem
2. Identify relevant technical domains and approaches
3. Generate optimized search queries for different data sources
4. Identify key technical terms and exclusions
Be specific and technical. Think about what technologies, methods, and approaches could solve the problem.
Consider both mature solutions and emerging technologies."""
DECOMPOSITION_PROMPT = """Analyze this capability gap and generate search strategies:
CAPABILITY GAP:
{query}
Respond with a JSON object containing:
{{
"understanding": "Your technical understanding of what's needed (2-3 sentences)",
"technical_domains": ["list", "of", "relevant", "technical", "domains"],
"search_queries": [
"general technical search query 1",
"general technical search query 2",
"general technical search query 3",
"general technical search query 4",
"general technical search query 5"
],
"sbir_queries": [
"SBIR-optimized query focusing on R&D terms",
"Another SBIR query with different technical angle"
],
"patent_queries": [
"Patent search query with technical terminology",
"Alternative patent query with different approach"
],
"news_queries": [
"News query for recent developments",
"Industry news angle query"
],
"keywords": ["key", "technical", "terms", "for", "filtering"],
"exclusions": ["terms", "to", "exclude", "reduce", "noise"],
"target_trl": {{
"min": 4,
"max": 7,
"rationale": "Why this TRL range is appropriate"
}}
}}
Generate diverse queries that approach the problem from different angles.
SBIR queries should use R&D terminology.
Patent queries should use precise technical language.
News queries should be more accessible.
Provide at least 5 general search queries covering different technical approaches."""
def __init__(
self,
ollama_client: Optional[OllamaClient] = None,
model: str = "mistral-nemo:12b"
):
self.client = ollama_client or OllamaClient()
self.model = model
def decompose(self, query: str) -> DecomposedQuery:
"""
Decompose a capability gap into search queries.
Args:
query: Natural language capability gap description
Returns:
DecomposedQuery with optimized search strategies
"""
prompt = self.DECOMPOSITION_PROMPT.format(query=query)
response = self.client.generate(
prompt=prompt,
model=self.model,
system=self.SYSTEM_PROMPT,
temperature=0.2,
format="json"
)
if not response.success:
return DecomposedQuery(
original_query=query,
understanding="",
technical_domains=[],
search_queries=[],
sbir_queries=[],
patent_queries=[],
news_queries=[],
keywords=[],
exclusions=[],
success=False,
error=response.error
)
# Parse response
try:
data = json.loads(response.content)
except json.JSONDecodeError:
data = self.client.extract_json_from_text(response.content)
if not data:
return DecomposedQuery(
original_query=query,
understanding="",
technical_domains=[],
search_queries=[],
sbir_queries=[],
patent_queries=[],
news_queries=[],
keywords=[],
exclusions=[],
success=False,
error="Failed to parse LLM response"
)
# Extract TRL range
trl_data = data.get("target_trl", {})
trl_range = (
trl_data.get("min", 4),
trl_data.get("max", 7)
)
return DecomposedQuery(
original_query=query,
understanding=data.get("understanding", ""),
technical_domains=data.get("technical_domains", []),
search_queries=data.get("search_queries", []),
sbir_queries=data.get("sbir_queries", []),
patent_queries=data.get("patent_queries", []),
news_queries=data.get("news_queries", []),
keywords=data.get("keywords", []),
exclusions=data.get("exclusions", []),
target_trl_range=trl_range,
success=True
)
def enhance_query(self, base_query: str, context: str) -> List[str]:
"""
Generate additional queries based on initial results context.
Args:
base_query: Original capability gap
context: Summary of initial findings
Returns:
List of refined search queries
"""
prompt = f"""Based on initial search results, generate refined queries.
ORIGINAL CAPABILITY GAP:
{base_query}
INITIAL FINDINGS:
{context}
Generate 3-5 refined search queries that:
1. Drill deeper into promising approaches found
2. Explore adjacent technical areas
3. Target specific companies or technologies identified
Respond with a JSON object:
{{
"refined_queries": ["query1", "query2", "query3"]
}}"""
response = self.client.generate(
prompt=prompt,
model=self.model,
temperature=0.3,
format="json"
)
if not response.success:
return []
try:
data = json.loads(response.content)
return data.get("refined_queries", [])
except json.JSONDecodeError:
return []

View File

@ -0,0 +1,151 @@
"""
Ollama LLM Client for TechScout.
Handles all LLM interactions for query decomposition, analysis, and scoring.
"""
import json
import logging
import re
import requests
from dataclasses import dataclass
from typing import Optional, Dict, Any, List
logger = logging.getLogger(__name__)
@dataclass
class LLMResponse:
"""Response from LLM."""
content: str
success: bool
error: Optional[str] = None
model: str = ""
tokens_used: int = 0
class OllamaClient:
"""
Client for Ollama local LLM.
"""
def __init__(
self,
base_url: str = "http://localhost:11434",
default_model: str = "mistral-nemo:12b"
):
self.base_url = base_url.rstrip("/")
self.default_model = default_model
def generate(
self,
prompt: str,
model: Optional[str] = None,
system: Optional[str] = None,
temperature: float = 0.1,
max_tokens: int = 4096,
format: Optional[str] = None # "json" for JSON mode
) -> LLMResponse:
"""
Generate a response from Ollama.
Args:
prompt: The user prompt
model: Model to use (defaults to self.default_model)
system: System prompt
temperature: Sampling temperature
max_tokens: Max tokens to generate
format: Response format ("json" for JSON mode)
Returns:
LLMResponse object
"""
model = model or self.default_model
payload = {
"model": model,
"prompt": prompt,
"stream": False,
"options": {
"temperature": temperature,
"num_predict": max_tokens,
}
}
if system:
payload["system"] = system
if format == "json":
payload["format"] = "json"
try:
response = requests.post(
f"{self.base_url}/api/generate",
json=payload,
timeout=120
)
response.raise_for_status()
data = response.json()
return LLMResponse(
content=data.get("response", ""),
success=True,
model=model,
tokens_used=data.get("eval_count", 0)
)
except requests.exceptions.Timeout:
return LLMResponse(
content="",
success=False,
error="Request timed out",
model=model
)
except requests.exceptions.RequestException as e:
return LLMResponse(
content="",
success=False,
error=str(e),
model=model
)
def extract_json_from_text(self, text: str) -> Optional[Dict[str, Any]]:
"""Extract JSON from text that might contain other content."""
# Try to find JSON block
json_patterns = [
r'```json\s*([\s\S]*?)\s*```',
r'```\s*([\s\S]*?)\s*```',
r'\{[\s\S]*\}',
]
for pattern in json_patterns:
matches = re.findall(pattern, text)
for match in matches:
try:
return json.loads(match)
except json.JSONDecodeError:
continue
# Try parsing the whole text
try:
return json.loads(text)
except json.JSONDecodeError:
return None
def is_available(self) -> bool:
"""Check if Ollama is running and accessible."""
try:
response = requests.get(f"{self.base_url}/api/tags", timeout=5)
return response.status_code == 200
except Exception:
return False
def list_models(self) -> List[str]:
"""List available models."""
try:
response = requests.get(f"{self.base_url}/api/tags", timeout=10)
response.raise_for_status()
data = response.json()
return [m["name"] for m in data.get("models", [])]
except Exception as e:
logger.error(f"Failed to list models: {e}")
return []

View File

@ -0,0 +1,369 @@
"""
Organization Extractor for TechScout.
Hybrid approach: Fast regex patterns first, LLM fallback for ambiguous cases.
Extracts company/organization names from unstructured text like news articles and web pages.
"""
import re
import logging
from typing import Optional, List, Tuple
from dataclasses import dataclass
logger = logging.getLogger(__name__)
@dataclass
class ExtractionResult:
"""Result of organization extraction."""
organization: Optional[str]
confidence: float # 0.0 to 1.0
method: str # "regex", "llm", or "none"
class OrganizationExtractor:
"""
Extracts organization names from text using hybrid regex + LLM approach.
Strategy:
1. Try fast regex patterns for common company suffixes
2. Try stock ticker extraction (NYSE:XXX, NASDAQ:XXX)
3. Try news source patterns (BUSINESS WIRE, PR Newswire headers)
4. Fall back to LLM for ambiguous cases
"""
def __init__(self, llm_client=None, model: str = "mistral-nemo:12b"):
self.llm_client = llm_client
self.model = model
# Common company suffixes - ordered by specificity
self.company_suffixes = [
r"Inc\.",
r"Inc",
r"LLC",
r"L\.L\.C\.",
r"Corp\.",
r"Corp",
r"Corporation",
r"Ltd\.",
r"Ltd",
r"Limited",
r"Co\.",
r"Company",
r"Technologies",
r"Technology",
r"Systems",
r"Solutions",
r"Industries",
r"Aerospace",
r"Defense",
r"Dynamics",
r"Sciences",
r"Labs",
r"Laboratories",
r"Group",
r"Holdings",
r"Partners",
r"Ventures",
r"Analytics",
r"Robotics",
r"Space",
r"Aviation",
]
# Build regex pattern for company names
suffix_pattern = "|".join(self.company_suffixes)
# Match: 1-4 capitalized words followed by a suffix
self.company_pattern = re.compile(
rf'\b([A-Z][a-zA-Z]*(?:\s+[A-Z][a-zA-Z]*)?(?:\s+[A-Z][a-zA-Z]*)?(?:\s+[A-Z][a-zA-Z]*)?)\s+({suffix_pattern})\b',
re.IGNORECASE
)
# Stock ticker patterns
self.ticker_patterns = [
re.compile(r'\((?:NYSE|NASDAQ|AMEX|OTC):\s*([A-Z]{1,5})\)', re.IGNORECASE),
re.compile(r'(?:NYSE|NASDAQ|AMEX|OTC):\s*([A-Z]{1,5})\b', re.IGNORECASE),
re.compile(r'\(([A-Z]{2,5})\)', re.IGNORECASE), # Just ticker in parens like (BKSY)
]
# News wire header patterns - company often appears right after location
self.news_wire_pattern = re.compile(
r'(?:HERNDON|SAN FRANCISCO|NEW YORK|LOS ANGELES|WASHINGTON|DENVER|SEATTLE|BOSTON|AUSTIN|ARLINGTON|'
r'BOULDER|HUNTSVILLE|COLORADO SPRINGS|MOUNTAIN VIEW|PALO ALTO|REDMOND|SAN DIEGO|PHOENIX|DALLAS|'
r'HOUSTON|CHICAGO|ATLANTA|MIAMI|TAMPA|ORLANDO|RESTON|MCLEAN|CHANTILLY|STERLING),?\s+'
r'(?:[A-Za-z\.]+,?\s*)?--?\s*' # State abbreviation
r'(?:\([^)]+\)--?\s*)?' # Optional source like (BUSINESS WIRE)
r'([A-Z][A-Za-z]+(?:\s+[A-Z][a-zA-Z]+)*(?:\s+(?:Inc|LLC|Corp|Ltd|Technologies|Technology|Systems|Solutions|'
r'Aerospace|Defense|Dynamics|Sciences|Space|Aviation)\.?)?)',
re.IGNORECASE
)
# University/research institution patterns
self.institution_patterns = [
re.compile(r'\b((?:University of [A-Z][a-z]+(?:\s+[A-Z][a-z]+)?|'
r'[A-Z][a-z]+(?:\s+[A-Z][a-z]+)?\s+University|'
r'MIT|Caltech|Stanford|Harvard|Carnegie Mellon|Georgia Tech|'
r'[A-Z][a-z]+\s+Institute of Technology))\b'),
re.compile(r'\b((?:[A-Z][a-z]+\s+)?(?:National Laboratory|Research Center|Research Institute))\b'),
]
# Known defense/space companies for quick matching
self.known_companies = {
"blacksky": "BlackSky Technology Inc.",
"spacex": "SpaceX",
"northrop": "Northrop Grumman",
"lockheed": "Lockheed Martin",
"raytheon": "Raytheon",
"boeing": "Boeing",
"general dynamics": "General Dynamics",
"bae systems": "BAE Systems",
"l3harris": "L3Harris Technologies",
"leidos": "Leidos",
"saic": "SAIC",
"maxar": "Maxar Technologies",
"planet labs": "Planet Labs",
"capella space": "Capella Space",
"rocket lab": "Rocket Lab",
"aerojet": "Aerojet Rocketdyne",
"ball aerospace": "Ball Aerospace",
"sierra nevada": "Sierra Nevada Corporation",
"relativity space": "Relativity Space",
"anduril": "Anduril Industries",
"palantir": "Palantir Technologies",
"shield ai": "Shield AI",
"heo robotics": "HEO Robotics",
"mda space": "MDA Space",
"mda": "MDA Space",
"thales": "Thales Group",
"airbus": "Airbus Defence and Space",
"blue origin": "Blue Origin",
"virgin orbit": "Virgin Orbit",
"astra": "Astra Space",
"spire global": "Spire Global",
"hawkeye 360": "HawkEye 360",
"iceye": "ICEYE",
"umbra": "Umbra Space",
"terran orbital": "Terran Orbital",
"momentus": "Momentus Space",
"ast spacemobile": "AST SpaceMobile",
"viasat": "Viasat",
"iridium": "Iridium Communications",
"ses": "SES S.A.",
"intelsat": "Intelsat",
"eutelsat": "Eutelsat",
"telesat": "Telesat",
"oneweb": "OneWeb",
"starlink": "SpaceX Starlink",
"amazon kuiper": "Amazon Kuiper",
}
def extract(self, title: str, snippet: str) -> ExtractionResult:
"""
Extract organization from title and snippet.
Args:
title: Article/result title
snippet: Description/body text
Returns:
ExtractionResult with organization name, confidence, and method
"""
combined_text = f"{title} {snippet}"
# Try methods in order of speed and confidence
# 1. Check known companies first (fastest, highest confidence)
result = self._extract_known_company(combined_text)
if result:
return ExtractionResult(organization=result, confidence=0.95, method="known")
# 2. Try stock ticker extraction (very reliable when present)
result = self._extract_from_ticker(combined_text)
if result:
return ExtractionResult(organization=result, confidence=0.9, method="ticker")
# 3. Try news wire header pattern
result = self._extract_from_news_wire(snippet)
if result:
return ExtractionResult(organization=result, confidence=0.85, method="news_wire")
# 4. Try company suffix pattern
result = self._extract_from_suffix(combined_text)
if result:
return ExtractionResult(organization=result, confidence=0.8, method="suffix")
# 5. Try institution patterns
result = self._extract_institution(combined_text)
if result:
return ExtractionResult(organization=result, confidence=0.75, method="institution")
# 6. Fall back to LLM if available
if self.llm_client:
result = self._extract_with_llm(title, snippet)
if result:
return ExtractionResult(organization=result, confidence=0.7, method="llm")
# No extraction possible
return ExtractionResult(organization=None, confidence=0.0, method="none")
def _extract_known_company(self, text: str) -> Optional[str]:
"""Check for known defense/space companies."""
text_lower = text.lower()
for keyword, full_name in self.known_companies.items():
if keyword in text_lower:
return full_name
return None
def _extract_from_ticker(self, text: str) -> Optional[str]:
"""Extract company name associated with stock ticker."""
for pattern in self.ticker_patterns:
match = pattern.search(text)
if match:
ticker = match.group(1).upper()
# Try to find the company name near the ticker
# Look for pattern like "Company Name (NYSE:XXX)" or "Company Name (XXX)"
before_ticker = text[:match.start()]
# Find company name pattern before ticker
company_match = self.company_pattern.search(before_ticker[-100:])
if company_match:
name = f"{company_match.group(1)} {company_match.group(2)}"
return self._clean_company_name(name)
# Try to get the last few capitalized words before ticker
words_before = before_ticker.strip().split()[-5:]
if words_before:
# Look for capitalized sequence
company_words = []
for word in reversed(words_before):
clean_word = word.strip('(),-:')
if clean_word and clean_word[0].isupper():
company_words.insert(0, clean_word)
elif company_words:
break
if company_words:
return " ".join(company_words)
return None
def _extract_from_news_wire(self, text: str) -> Optional[str]:
"""Extract from news wire format (CITY -- Company Name announced...)."""
match = self.news_wire_pattern.search(text)
if match:
return self._clean_company_name(match.group(1))
return None
def _extract_from_suffix(self, text: str) -> Optional[str]:
"""Extract using company suffix patterns."""
matches = list(self.company_pattern.finditer(text))
if matches:
# Prefer matches from title (earlier in combined text)
# Take the first substantial match
for match in matches:
name = f"{match.group(1)} {match.group(2)}"
cleaned = self._clean_company_name(name)
if cleaned and len(cleaned) > 3:
return cleaned
return None
def _extract_institution(self, text: str) -> Optional[str]:
"""Extract university or research institution names."""
for pattern in self.institution_patterns:
match = pattern.search(text)
if match:
return match.group(1)
return None
def _extract_with_llm(self, title: str, snippet: str) -> Optional[str]:
"""Use LLM to extract organization name as fallback."""
if not self.llm_client:
return None
prompt = f"""Extract the primary company or organization name from this text.
Title: {title}
Description: {snippet}
Rules:
- Return ONLY the organization name, nothing else
- If it's a company, include the suffix (Inc, LLC, Corp, etc.) if known
- If no clear organization can be identified, return "NONE"
- Do not make up or guess organization names
- Prefer companies over universities/agencies if both are mentioned
Organization name:"""
try:
response = self.llm_client.generate(
prompt=prompt,
model=self.model,
temperature=0.0, # Deterministic
max_tokens=50
)
if response.success:
result = response.content.strip()
# Validate result
if result and result.upper() != "NONE" and len(result) > 2:
# Basic validation - should look like a company name
if not any(x in result.lower() for x in ["i don't", "cannot", "no ", "none", "unknown"]):
return self._clean_company_name(result)
except Exception as e:
logger.warning(f"LLM extraction failed: {e}")
return None
def _clean_company_name(self, name: str) -> str:
"""Clean and normalize company name."""
if not name:
return ""
# Remove common prefixes
prefixes_to_remove = [
"the ", "a ", "an ",
"by ", "from ", "at ",
"-- ", "- ",
]
name_lower = name.lower()
for prefix in prefixes_to_remove:
if name_lower.startswith(prefix):
name = name[len(prefix):]
name_lower = name.lower()
# Remove trailing punctuation
name = name.rstrip('.,;:')
# Normalize whitespace
name = " ".join(name.split())
return name.strip()
def extract_batch(
self,
items: List[Tuple[str, str]],
use_llm_fallback: bool = True
) -> List[ExtractionResult]:
"""
Extract organizations from multiple items.
Args:
items: List of (title, snippet) tuples
use_llm_fallback: Whether to use LLM for items that regex can't handle
Returns:
List of ExtractionResult objects
"""
results = []
for title, snippet in items:
# extract() already includes LLM fallback
result = self.extract(title, snippet)
# Log extraction for debugging
if result.organization:
logger.info(f"Extracted '{result.organization}' from '{title[:50]}...' (method: {result.method})")
else:
logger.debug(f"No organization found in '{title[:50]}...'")
results.append(result)
return results

View File

@ -0,0 +1,321 @@
"""
Result Scoring for TechScout.
Scores search results based on problem-solution fit using LLM analysis
and heuristic factors.
"""
import json
import logging
import math
from dataclasses import dataclass
from datetime import datetime
from typing import List, Dict, Any, Optional
from .llm_client import OllamaClient
from ..search.base import SearchResult
logger = logging.getLogger(__name__)
@dataclass
class ScoringWeights:
"""Weights for different scoring factors."""
technical_relevance: float = 0.35
trl_match: float = 0.20
recency: float = 0.15
source_authority: float = 0.15
funding_indicator: float = 0.15
class ResultScorer:
"""
Scores and ranks search results based on problem-solution fit.
"""
SOURCE_AUTHORITY = {
"sbir": 0.9,
"patent": 0.85,
"contract": 0.8,
"government": 0.85,
"academic": 0.75,
"news": 0.6,
"web": 0.5,
}
def __init__(
self,
ollama_client: Optional[OllamaClient] = None,
model: str = "mistral-nemo:12b",
weights: Optional[ScoringWeights] = None
):
self.client = ollama_client or OllamaClient()
self.model = model
self.weights = weights or ScoringWeights()
def score_results(
self,
results: List[SearchResult],
capability_gap: str,
target_trl: tuple = (4, 7),
use_llm: bool = True
) -> List[SearchResult]:
"""
Score all results and return sorted by final score.
Args:
results: List of search results to score
capability_gap: Original capability gap description
target_trl: Target TRL range (min, max)
use_llm: Whether to use LLM for relevance scoring
Returns:
Sorted list of results with scores populated
"""
if not results:
return []
# Score each result
for result in results:
# LLM-based relevance score
if use_llm:
result.relevance_score = self._score_relevance_llm(
result, capability_gap
)
else:
result.relevance_score = self._score_relevance_heuristic(
result, capability_gap
)
# Calculate component scores
trl_score = self._score_trl(result.trl_estimate, target_trl)
recency_score = self._score_recency(result.published_date)
authority_score = self.SOURCE_AUTHORITY.get(result.source_type, 0.5)
funding_score = self._score_funding(result.award_amount)
# Calculate final weighted score
result.final_score = (
self.weights.technical_relevance * result.relevance_score +
self.weights.trl_match * trl_score +
self.weights.recency * recency_score +
self.weights.source_authority * authority_score +
self.weights.funding_indicator * funding_score
)
# Sort by final score descending
results.sort(key=lambda x: x.final_score, reverse=True)
return results
def _score_relevance_llm(
self,
result: SearchResult,
capability_gap: str
) -> float:
"""Score relevance using LLM."""
prompt = f"""Rate how well this technology/solution addresses the capability gap.
CAPABILITY GAP:
{capability_gap}
POTENTIAL SOLUTION:
Title: {result.title}
Description: {result.snippet}
Organization: {result.organization or 'Unknown'}
Source: {result.source_type}
Rate the relevance from 0.0 to 1.0 where:
- 0.0-0.2: Not relevant
- 0.2-0.4: Tangentially related
- 0.4-0.6: Somewhat relevant
- 0.6-0.8: Highly relevant
- 0.8-1.0: Direct solution
Respond with JSON:
{{
"score": 0.0-1.0,
"rationale": "Brief explanation"
}}"""
response = self.client.generate(
prompt=prompt,
model=self.model,
temperature=0.1,
format="json"
)
if not response.success:
return self._score_relevance_heuristic(result, capability_gap)
try:
data = json.loads(response.content)
return min(1.0, max(0.0, float(data.get("score", 0.5))))
except (json.JSONDecodeError, ValueError, TypeError):
return self._score_relevance_heuristic(result, capability_gap)
def _score_relevance_heuristic(
self,
result: SearchResult,
capability_gap: str
) -> float:
"""Score relevance using keyword matching heuristics."""
# Simple keyword overlap scoring
gap_words = set(capability_gap.lower().split())
result_text = f"{result.title} {result.snippet}".lower()
result_words = set(result_text.split())
# Remove common words
stopwords = {'the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been',
'being', 'have', 'has', 'had', 'do', 'does', 'did', 'will',
'would', 'could', 'should', 'may', 'might', 'must', 'shall',
'can', 'need', 'for', 'of', 'to', 'in', 'on', 'at', 'by',
'from', 'with', 'and', 'or', 'not', 'that', 'this', 'it'}
gap_words -= stopwords
result_words -= stopwords
if not gap_words:
return 0.5
overlap = len(gap_words & result_words)
score = overlap / len(gap_words)
return min(1.0, score)
def _score_trl(self, trl: Optional[int], target_range: tuple) -> float:
"""Score based on TRL match."""
if trl is None:
return 0.5 # Unknown TRL
min_trl, max_trl = target_range
if min_trl <= trl <= max_trl:
return 1.0
elif trl < min_trl:
# Too early stage
distance = min_trl - trl
return max(0.2, 1.0 - (distance * 0.2))
else:
# Too mature (might be less innovative)
distance = trl - max_trl
return max(0.4, 1.0 - (distance * 0.15))
def _score_recency(self, date_str: Optional[str]) -> float:
"""Score based on how recent the result is."""
if not date_str:
return 0.5
try:
# Try to parse various date formats
for fmt in ["%Y-%m-%d", "%Y-%m", "%Y", "%m/%d/%Y"]:
try:
date = datetime.strptime(date_str[:len(fmt.replace('%', '0'))], fmt)
break
except ValueError:
continue
else:
# Try to extract year
import re
year_match = re.search(r'20\d{2}', date_str)
if year_match:
date = datetime(int(year_match.group()), 6, 1)
else:
return 0.5
# Calculate age in years
age_days = (datetime.now() - date).days
age_years = age_days / 365.25
# Exponential decay with 2-year half-life
score = math.exp(-0.347 * age_years) # ln(2)/2 ≈ 0.347
return max(0.1, min(1.0, score))
except Exception:
return 0.5
def _score_funding(self, amount: Optional[float]) -> float:
"""Score based on funding amount (higher = more validated)."""
if amount is None:
return 0.5
# Log scale scoring
if amount <= 0:
return 0.3
elif amount < 100000: # < $100K
return 0.5
elif amount < 500000: # $100K - $500K
return 0.65
elif amount < 1000000: # $500K - $1M
return 0.75
elif amount < 5000000: # $1M - $5M
return 0.85
else: # > $5M
return 0.95
def batch_score_relevance(
self,
results: List[SearchResult],
capability_gap: str,
batch_size: int = 5
) -> List[float]:
"""
Score multiple results in batches for efficiency.
Args:
results: Results to score
capability_gap: Capability gap description
batch_size: How many to score per LLM call
Returns:
List of relevance scores
"""
scores = []
for i in range(0, len(results), batch_size):
batch = results[i:i + batch_size]
# Build batch prompt
items = []
for j, result in enumerate(batch):
items.append(f"""
Item {j + 1}:
Title: {result.title}
Description: {result.snippet[:200]}
Organization: {result.organization or 'Unknown'}""")
prompt = f"""Rate how well each item addresses this capability gap.
CAPABILITY GAP:
{capability_gap}
ITEMS TO SCORE:
{''.join(items)}
Respond with JSON:
{{
"scores": [
{{"item": 1, "score": 0.0-1.0}},
{{"item": 2, "score": 0.0-1.0}},
...
]
}}"""
response = self.client.generate(
prompt=prompt,
model=self.model,
temperature=0.1,
format="json"
)
if response.success:
try:
data = json.loads(response.content)
batch_scores = {s["item"]: s["score"] for s in data.get("scores", [])}
for j in range(len(batch)):
scores.append(batch_scores.get(j + 1, 0.5))
except (json.JSONDecodeError, KeyError):
scores.extend([0.5] * len(batch))
else:
scores.extend([0.5] * len(batch))
return scores

View File

@ -0,0 +1,11 @@
"""Pipeline module for TechScout."""
from .discovery import DiscoveryPipeline
from .deep_dive import DeepDivePipeline
from .capability_matcher import CapabilityMatcherPipeline, CapabilityMatchResult
__all__ = [
"DiscoveryPipeline",
"DeepDivePipeline",
"CapabilityMatcherPipeline",
"CapabilityMatchResult",
]

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,523 @@
"""
Phase 2: Deep Dive Pipeline
Takes selected technology candidates and performs comprehensive
company and technology analysis.
"""
import json
import logging
from dataclasses import dataclass, field
from datetime import datetime
from pathlib import Path
from typing import List, Dict, Any, Optional
import uuid
from ..config import TechScoutConfig, config as default_config
from ..extraction.llm_client import OllamaClient
from ..search.web import WebSearcher
from ..search.base import SearchResult
from ..sources.sbir import SBIRSearcher
from ..sources.patents import PatentSearcher
from ..sources.contracts import ContractSearcher
logger = logging.getLogger(__name__)
@dataclass
class CompanyProfile:
"""Comprehensive company profile."""
name: str
description: str
website: Optional[str] = None
headquarters: Optional[str] = None
employee_count: Optional[str] = None
founded: Optional[str] = None
leadership: List[Dict[str, str]] = field(default_factory=list)
def to_dict(self) -> Dict[str, Any]:
return {
"name": self.name,
"description": self.description,
"website": self.website,
"headquarters": self.headquarters,
"employee_count": self.employee_count,
"founded": self.founded,
"leadership": self.leadership,
}
@dataclass
class TechnologyProfile:
"""Detailed technology profile."""
name: str
description: str
technical_approach: str
trl_assessment: int
key_capabilities: List[str]
limitations: List[str]
competitive_advantage: str
related_patents: List[Dict[str, Any]] = field(default_factory=list)
def to_dict(self) -> Dict[str, Any]:
return {
"name": self.name,
"description": self.description,
"technical_approach": self.technical_approach,
"trl_assessment": self.trl_assessment,
"key_capabilities": self.key_capabilities,
"limitations": self.limitations,
"competitive_advantage": self.competitive_advantage,
"related_patents": self.related_patents,
}
@dataclass
class ContractHistory:
"""Company's federal contract history."""
total_contracts: int
total_value: float
primary_agencies: List[str]
recent_contracts: List[Dict[str, Any]]
sbir_awards: List[Dict[str, Any]]
def to_dict(self) -> Dict[str, Any]:
return {
"total_contracts": self.total_contracts,
"total_value": self.total_value,
"primary_agencies": self.primary_agencies,
"recent_contracts": self.recent_contracts,
"sbir_awards": self.sbir_awards,
}
@dataclass
class DeepDiveResult:
"""Result of Phase 2 deep dive."""
id: str
candidate_id: str
organization: str
timestamp: str
company_profile: CompanyProfile
technology_profile: TechnologyProfile
contract_history: ContractHistory
other_offerings: List[Dict[str, Any]]
news_mentions: List[Dict[str, Any]]
assessment: str # LLM-generated overall assessment
risk_factors: List[str]
recommendation: str
duration_seconds: float
success: bool = True
error: Optional[str] = None
def to_dict(self) -> Dict[str, Any]:
return {
"id": self.id,
"candidate_id": self.candidate_id,
"organization": self.organization,
"timestamp": self.timestamp,
"company_profile": self.company_profile.to_dict(),
"technology_profile": self.technology_profile.to_dict(),
"contract_history": self.contract_history.to_dict(),
"other_offerings": self.other_offerings,
"news_mentions": self.news_mentions,
"assessment": self.assessment,
"risk_factors": self.risk_factors,
"recommendation": self.recommendation,
"duration_seconds": self.duration_seconds,
"success": self.success,
"error": self.error,
}
def save(self, path: Path):
"""Save result to JSON file."""
with open(path, "w") as f:
json.dump(self.to_dict(), f, indent=2)
class DeepDivePipeline:
"""
Phase 2 Deep Dive Pipeline.
1. Research company background
2. Analyze technology capabilities
3. Pull contract history
4. Find related patents
5. Search for news/press
6. Generate comprehensive assessment
"""
def __init__(
self,
config: Optional[TechScoutConfig] = None,
model: str = "mistral-nemo:12b"
):
self.config = config or default_config
self.model = model
# Initialize components
self.llm_client = OllamaClient(
base_url=self.config.ollama.base_url,
default_model=model
)
# Initialize searchers
self.web_searcher = WebSearcher()
self.sbir_searcher = SBIRSearcher()
self.patent_searcher = PatentSearcher()
self.contract_searcher = ContractSearcher()
def deep_dive(
self,
organization: str,
technology_context: str,
capability_gap: str,
candidate_id: str = ""
) -> DeepDiveResult:
"""
Run Phase 2 deep dive on a company/technology.
Args:
organization: Company name
technology_context: Description of the technology
capability_gap: Original capability gap
candidate_id: ID from Phase 1 candidate
Returns:
DeepDiveResult with comprehensive analysis
"""
start_time = datetime.now()
result_id = str(uuid.uuid4())[:8]
logger.info(f"Starting deep dive on: {organization}")
# 1. Research company profile
logger.info("Researching company profile...")
company_profile = self._research_company(organization)
# 2. Analyze technology
logger.info("Analyzing technology...")
tech_profile = self._analyze_technology(
organization, technology_context, capability_gap
)
# 3. Get contract history
logger.info("Fetching contract history...")
contract_history = self._get_contract_history(organization)
# 4. Find other offerings
logger.info("Finding other company offerings...")
other_offerings = self._find_other_offerings(organization)
# 5. Search news
logger.info("Searching news mentions...")
news_mentions = self._search_news(organization)
# 6. Generate assessment
logger.info("Generating assessment...")
assessment, risk_factors, recommendation = self._generate_assessment(
organization,
technology_context,
capability_gap,
company_profile,
tech_profile,
contract_history
)
duration = (datetime.now() - start_time).total_seconds()
result = DeepDiveResult(
id=result_id,
candidate_id=candidate_id,
organization=organization,
timestamp=datetime.now().isoformat(),
company_profile=company_profile,
technology_profile=tech_profile,
contract_history=contract_history,
other_offerings=other_offerings,
news_mentions=news_mentions,
assessment=assessment,
risk_factors=risk_factors,
recommendation=recommendation,
duration_seconds=duration,
success=True
)
# Save result
save_path = self.config.analyses_dir / f"deepdive_{result_id}.json"
result.save(save_path)
logger.info(f"Saved deep dive result to {save_path}")
return result
def _research_company(self, organization: str) -> CompanyProfile:
"""Research company background."""
# Search web for company info
results = self.web_searcher.search(
f'"{organization}" company about founded headquarters',
max_results=5
)
# Build context from results
context = "\n".join([f"- {r.title}: {r.snippet}" for r in results])
# Use LLM to extract structured info
prompt = f"""Extract company information from these search results.
Company: {organization}
Search Results:
{context}
Respond with JSON:
{{
"description": "Brief company description",
"website": "company website if found",
"headquarters": "location if found",
"employee_count": "approximate if found",
"founded": "year if found",
"leadership": [
{{"name": "CEO Name", "title": "CEO"}},
{{"name": "CTO Name", "title": "CTO"}}
]
}}
Only include information explicitly found. Use null for unknown fields."""
response = self.llm_client.generate(
prompt=prompt,
temperature=0.1,
format="json"
)
if response.success:
try:
data = json.loads(response.content)
return CompanyProfile(
name=organization,
description=data.get("description", ""),
website=data.get("website"),
headquarters=data.get("headquarters"),
employee_count=data.get("employee_count"),
founded=data.get("founded"),
leadership=data.get("leadership", [])
)
except json.JSONDecodeError:
pass
return CompanyProfile(name=organization, description="Information not available")
def _analyze_technology(
self,
organization: str,
technology_context: str,
capability_gap: str
) -> TechnologyProfile:
"""Analyze the technology in depth."""
# Search for patents by this organization
patents = self.patent_searcher.search(
capability_gap.split()[0], # First keyword
max_results=5,
assignee=organization
)
patent_context = "\n".join([
f"- {p.title}" for p in patents
]) if patents else "No patents found"
prompt = f"""Analyze this technology's capabilities.
Company: {organization}
Technology Context: {technology_context}
Capability Gap: {capability_gap}
Related Patents: {patent_context}
Provide a technical assessment as JSON:
{{
"name": "Technology name",
"description": "Detailed technical description",
"technical_approach": "How the technology works",
"trl_assessment": 1-9,
"key_capabilities": ["capability 1", "capability 2"],
"limitations": ["limitation 1", "limitation 2"],
"competitive_advantage": "What makes this approach unique"
}}"""
response = self.llm_client.generate(
prompt=prompt,
temperature=0.2,
format="json"
)
related_patents = [
{"title": p.title, "number": p.patent_number, "url": p.url}
for p in patents
]
if response.success:
try:
data = json.loads(response.content)
return TechnologyProfile(
name=data.get("name", "Unknown"),
description=data.get("description", ""),
technical_approach=data.get("technical_approach", ""),
trl_assessment=data.get("trl_assessment", 5),
key_capabilities=data.get("key_capabilities", []),
limitations=data.get("limitations", []),
competitive_advantage=data.get("competitive_advantage", ""),
related_patents=related_patents
)
except json.JSONDecodeError:
pass
return TechnologyProfile(
name="Unknown",
description=technology_context,
technical_approach="",
trl_assessment=5,
key_capabilities=[],
limitations=[],
competitive_advantage="",
related_patents=related_patents
)
def _get_contract_history(self, organization: str) -> ContractHistory:
"""Get federal contract history."""
# Get contracts
contracts = self.contract_searcher.get_company_contracts(organization, max_results=20)
# Get SBIR awards
sbir_results = self.sbir_searcher.search(f'"{organization}"', max_results=10)
# Calculate totals
total_value = sum(c.award_amount or 0 for c in contracts)
# Get agency breakdown
agencies = {}
for c in contracts:
agency = c.raw_data.get("Awarding Agency", "Unknown")
agencies[agency] = agencies.get(agency, 0) + 1
primary_agencies = sorted(agencies.keys(), key=lambda x: agencies[x], reverse=True)[:5]
return ContractHistory(
total_contracts=len(contracts),
total_value=total_value,
primary_agencies=primary_agencies,
recent_contracts=[
{
"title": c.title,
"amount": c.award_amount,
"date": c.published_date,
"agency": c.raw_data.get("Awarding Agency"),
"url": c.url
}
for c in contracts[:10]
],
sbir_awards=[
{
"title": s.title,
"amount": s.award_amount,
"phase": s.raw_data.get("phase"),
"year": s.published_date,
"url": s.url
}
for s in sbir_results
]
)
def _find_other_offerings(self, organization: str) -> List[Dict[str, Any]]:
"""Find other products/services from this company."""
results = self.web_searcher.search(
f'"{organization}" products services solutions offerings',
max_results=10
)
offerings = []
for r in results:
offerings.append({
"title": r.title,
"description": r.snippet,
"url": r.url
})
return offerings
def _search_news(self, organization: str) -> List[Dict[str, Any]]:
"""Search recent news about the company."""
results = self.web_searcher.search(
f'"{organization}"',
max_results=10,
news_only=True,
time_filter="y" # Last year
)
news = []
for r in results:
news.append({
"title": r.title,
"snippet": r.snippet,
"date": r.published_date,
"url": r.url
})
return news
def _generate_assessment(
self,
organization: str,
technology_context: str,
capability_gap: str,
company: CompanyProfile,
tech: TechnologyProfile,
contracts: ContractHistory
) -> tuple:
"""Generate overall assessment using LLM."""
prompt = f"""Generate an investment/partnership assessment.
CAPABILITY GAP:
{capability_gap}
COMPANY: {organization}
{company.description}
Headquarters: {company.headquarters or 'Unknown'}
Founded: {company.founded or 'Unknown'}
TECHNOLOGY:
{tech.description}
TRL: {tech.trl_assessment}
Approach: {tech.technical_approach}
CONTRACT HISTORY:
Total Contracts: {contracts.total_contracts}
Total Value: ${contracts.total_value:,.0f}
Primary Agencies: {', '.join(contracts.primary_agencies[:3])}
SBIR Awards: {len(contracts.sbir_awards)}
Provide assessment as JSON:
{{
"assessment": "2-3 paragraph overall assessment of fit for the capability gap",
"risk_factors": ["risk 1", "risk 2", "risk 3"],
"recommendation": "STRONGLY RECOMMEND | RECOMMEND | CONSIDER | DO NOT RECOMMEND",
"recommendation_rationale": "Brief explanation"
}}"""
response = self.llm_client.generate(
prompt=prompt,
model=self.model,
temperature=0.3,
format="json"
)
if response.success:
try:
data = json.loads(response.content)
return (
data.get("assessment", "Assessment not available"),
data.get("risk_factors", []),
f"{data.get('recommendation', 'CONSIDER')}: {data.get('recommendation_rationale', '')}"
)
except json.JSONDecodeError:
pass
return ("Assessment generation failed", [], "CONSIDER: Insufficient data")

View File

@ -0,0 +1,321 @@
"""
Phase 1: Discovery Pipeline
Takes a capability gap, decomposes it into searches, queries multiple sources,
scores results, and returns ranked candidates.
"""
import json
import logging
from dataclasses import dataclass, field
from datetime import datetime
from pathlib import Path
from typing import List, Dict, Any, Optional
import uuid
from ..config import TechScoutConfig, config as default_config
from ..extraction.llm_client import OllamaClient
from ..extraction.decomposer import QueryDecomposer, DecomposedQuery
from ..extraction.scorer import ResultScorer
from ..extraction.org_extractor import OrganizationExtractor
from ..search.web import WebSearcher
from ..search.base import SearchResult
from ..sources.sbir import SBIRSearcher
from ..sources.patents import PatentSearcher
from ..sources.contracts import ContractSearcher
logger = logging.getLogger(__name__)
@dataclass
class TechnologyCandidate:
"""A scored technology candidate."""
id: str
title: str
organization: str
description: str
source_type: str
source: str
url: str
score: float
relevance_score: float
trl_estimate: Optional[int]
award_amount: Optional[float]
published_date: Optional[str]
award_id: Optional[str]
patent_number: Optional[str]
def to_dict(self) -> Dict[str, Any]:
return {
"id": self.id,
"title": self.title,
"organization": self.organization,
"description": self.description,
"source_type": self.source_type,
"source": self.source,
"url": self.url,
"score": self.score,
"relevance_score": self.relevance_score,
"trl_estimate": self.trl_estimate,
"award_amount": self.award_amount,
"published_date": self.published_date,
"award_id": self.award_id,
"patent_number": self.patent_number,
}
@dataclass
class DiscoveryResult:
"""Result of Phase 1 discovery."""
id: str
capability_gap: str
timestamp: str
decomposition: Dict[str, Any]
candidates: List[TechnologyCandidate]
source_stats: Dict[str, int]
total_results_found: int
search_duration_seconds: float
success: bool = True
error: Optional[str] = None
def to_dict(self) -> Dict[str, Any]:
return {
"id": self.id,
"capability_gap": self.capability_gap,
"timestamp": self.timestamp,
"decomposition": self.decomposition,
"candidates": [c.to_dict() for c in self.candidates],
"source_stats": self.source_stats,
"total_results_found": self.total_results_found,
"search_duration_seconds": self.search_duration_seconds,
"success": self.success,
"error": self.error,
}
def save(self, path: Path):
"""Save result to JSON file."""
with open(path, "w") as f:
json.dump(self.to_dict(), f, indent=2)
class DiscoveryPipeline:
"""
Phase 1 Discovery Pipeline.
1. Decompose capability gap into search queries
2. Search multiple sources (SBIR, patents, contracts, web)
3. Score and rank results
4. Return top candidates
"""
def __init__(
self,
config: Optional[TechScoutConfig] = None,
model: str = "mistral-nemo:12b"
):
self.config = config or default_config
self.model = model
# Initialize components
self.llm_client = OllamaClient(
base_url=self.config.ollama.base_url,
default_model=model
)
self.decomposer = QueryDecomposer(self.llm_client, model)
self.scorer = ResultScorer(self.llm_client, model)
self.org_extractor = OrganizationExtractor(self.llm_client, model)
# Initialize searchers
self.web_searcher = WebSearcher()
self.sbir_searcher = SBIRSearcher()
self.patent_searcher = PatentSearcher()
self.contract_searcher = ContractSearcher()
def discover(
self,
capability_gap: str,
max_results: int = 50,
use_llm_scoring: bool = True,
sources: Optional[List[str]] = None
) -> DiscoveryResult:
"""
Run Phase 1 discovery.
Args:
capability_gap: Natural language description of capability need
max_results: Maximum candidates to return
use_llm_scoring: Use LLM for relevance scoring (slower but better)
sources: Which sources to search (default: all)
Returns:
DiscoveryResult with ranked candidates
"""
start_time = datetime.now()
result_id = str(uuid.uuid4())[:8]
sources = sources or ["sbir", "patents", "contracts", "web", "news"]
logger.info(f"Starting discovery for: {capability_gap[:100]}...")
# Step 1: Decompose the query
logger.info("Decomposing capability gap into search queries...")
decomposition = self.decomposer.decompose(capability_gap)
if not decomposition.success:
return DiscoveryResult(
id=result_id,
capability_gap=capability_gap,
timestamp=datetime.now().isoformat(),
decomposition={},
candidates=[],
source_stats={},
total_results_found=0,
search_duration_seconds=0,
success=False,
error=f"Query decomposition failed: {decomposition.error}"
)
logger.info(f"Generated {len(decomposition.search_queries)} search queries")
# Step 2: Search all sources
all_results: List[SearchResult] = []
source_stats: Dict[str, int] = {}
# SBIR/STTR
if "sbir" in sources:
logger.info("Searching SBIR/STTR awards...")
for query in decomposition.sbir_queries[:3]:
try:
results = self.sbir_searcher.search(query, max_results=15)
all_results.extend(results)
except Exception as e:
logger.warning(f"SBIR search failed: {e}")
source_stats["sbir"] = len([r for r in all_results if r.source_type == "sbir"])
# Patents
if "patents" in sources:
logger.info("Searching patents...")
for query in decomposition.patent_queries[:3]:
try:
results = self.patent_searcher.search(query, max_results=15)
all_results.extend(results)
except Exception as e:
logger.warning(f"Patent search failed: {e}")
source_stats["patents"] = len([r for r in all_results if r.source_type == "patent"])
# Federal contracts
if "contracts" in sources:
logger.info("Searching federal contracts...")
for query in decomposition.search_queries[:2]:
try:
results = self.contract_searcher.search_dod(query, max_results=10)
all_results.extend(results)
except Exception as e:
logger.warning(f"Contract search failed: {e}")
source_stats["contracts"] = len([r for r in all_results if r.source_type == "contract"])
# Web search
if "web" in sources:
logger.info("Searching web...")
for query in decomposition.search_queries[:4]:
try:
results = self.web_searcher.search(query, max_results=10)
all_results.extend(results)
except Exception as e:
logger.warning(f"Web search failed: {e}")
source_stats["web"] = len([r for r in all_results if r.source_type == "web"])
# News search
if "news" in sources:
logger.info("Searching defense news...")
for query in decomposition.news_queries[:2]:
try:
results = self.web_searcher.search(query, max_results=10, news_only=True)
all_results.extend(results)
except Exception as e:
logger.warning(f"News search failed: {e}")
source_stats["news"] = len([r for r in all_results if r.source_type == "news"])
total_found = len(all_results)
logger.info(f"Found {total_found} total results")
# Step 3: Deduplicate by URL
seen_urls = set()
unique_results = []
for result in all_results:
if result.url and result.url not in seen_urls:
seen_urls.add(result.url)
unique_results.append(result)
logger.info(f"After deduplication: {len(unique_results)} unique results")
# Step 3.5: Extract organizations for web/news results that don't have them
logger.info("Extracting organizations from web/news results...")
results_needing_org = [
(i, r) for i, r in enumerate(unique_results)
if r.source_type in ("web", "news", "government", "academic") and not r.organization
]
if results_needing_org:
# Extract organizations using hybrid regex + LLM approach
items_to_extract = [(r.title, r.snippet) for _, r in results_needing_org]
extractions = self.org_extractor.extract_batch(items_to_extract, use_llm_fallback=True)
# Update results with extracted organizations
for (idx, result), extraction in zip(results_needing_org, extractions):
if extraction.organization:
unique_results[idx].organization = extraction.organization
logger.debug(f"Extracted org '{extraction.organization}' from '{result.title[:50]}' (method: {extraction.method})")
extracted_count = sum(1 for e in extractions if e.organization)
logger.info(f"Extracted organizations for {extracted_count}/{len(results_needing_org)} web/news results")
# Step 4: Score and rank
logger.info("Scoring results...")
scored_results = self.scorer.score_results(
unique_results,
capability_gap,
target_trl=decomposition.target_trl_range,
use_llm=use_llm_scoring
)
# Step 5: Convert to candidates
candidates = []
for i, result in enumerate(scored_results[:max_results]):
candidates.append(TechnologyCandidate(
id=f"{result_id}-{i}",
title=result.title,
organization=result.organization or "Unknown",
description=result.snippet,
source_type=result.source_type,
source=result.source,
url=result.url,
score=result.final_score,
relevance_score=result.relevance_score,
trl_estimate=result.trl_estimate,
award_amount=result.award_amount,
published_date=result.published_date,
award_id=result.award_id,
patent_number=result.patent_number,
))
duration = (datetime.now() - start_time).total_seconds()
discovery_result = DiscoveryResult(
id=result_id,
capability_gap=capability_gap,
timestamp=datetime.now().isoformat(),
decomposition=decomposition.to_dict(),
candidates=candidates,
source_stats=source_stats,
total_results_found=total_found,
search_duration_seconds=duration,
success=True
)
# Save result
save_path = self.config.analyses_dir / f"discovery_{result_id}.json"
discovery_result.save(save_path)
logger.info(f"Saved discovery result to {save_path}")
return discovery_result

View File

@ -0,0 +1,5 @@
"""Search module for TechScout."""
from .base import BaseSearcher, SearchResult
from .web import WebSearcher
__all__ = ["BaseSearcher", "SearchResult", "WebSearcher"]

111
techscout/search/base.py Normal file
View File

@ -0,0 +1,111 @@
"""
Base search classes for TechScout.
"""
from abc import ABC, abstractmethod
from dataclasses import dataclass, field
from typing import List, Optional, Dict, Any
from datetime import datetime
@dataclass
class SearchResult:
"""A single search result from any source."""
title: str
url: str
snippet: str
source: str # Which searcher found this
source_type: str # sbir, patent, contract, news, web
rank: int = 0 # Position in results
# Metadata
published_date: Optional[str] = None
organization: Optional[str] = None # Company/institution name
award_amount: Optional[float] = None # For contracts/grants
trl_estimate: Optional[int] = None # Technology readiness level
# Identifiers
award_id: Optional[str] = None # SBIR award ID, contract number
patent_number: Optional[str] = None
# Raw data for later processing
raw_data: Dict[str, Any] = field(default_factory=dict)
# Scoring (filled in later)
relevance_score: float = 0.0
final_score: float = 0.0
def to_dict(self) -> Dict[str, Any]:
return {
"title": self.title,
"url": self.url,
"snippet": self.snippet,
"source": self.source,
"source_type": self.source_type,
"rank": self.rank,
"published_date": self.published_date,
"organization": self.organization,
"award_amount": self.award_amount,
"trl_estimate": self.trl_estimate,
"award_id": self.award_id,
"patent_number": self.patent_number,
"relevance_score": self.relevance_score,
"final_score": self.final_score,
}
class BaseSearcher(ABC):
"""Abstract base class for all searchers."""
@property
@abstractmethod
def name(self) -> str:
"""Return the name of this searcher."""
pass
@property
@abstractmethod
def source_type(self) -> str:
"""Return the type of source (sbir, patent, contract, news, web)."""
pass
@abstractmethod
def search(self, query: str, max_results: int = 20, **kwargs) -> List[SearchResult]:
"""
Execute a search.
Args:
query: Search query
max_results: Maximum results to return
Returns:
List of SearchResult objects
"""
pass
def search_multiple(
self,
queries: List[str],
max_results_per_query: int = 10
) -> List[SearchResult]:
"""
Execute multiple searches and deduplicate.
Args:
queries: List of search queries
max_results_per_query: Max results per query
Returns:
Deduplicated list of results
"""
all_results = []
seen_urls = set()
for query in queries:
results = self.search(query, max_results=max_results_per_query)
for result in results:
if result.url not in seen_urls:
seen_urls.add(result.url)
all_results.append(result)
return all_results

157
techscout/search/web.py Normal file
View File

@ -0,0 +1,157 @@
"""
Web Search using DuckDuckGo.
General web search for technology scouting.
"""
import logging
from typing import List, Optional
from urllib.parse import urlparse
from datetime import datetime
from .base import BaseSearcher, SearchResult
logger = logging.getLogger(__name__)
class WebSearcher(BaseSearcher):
"""
General web search using DuckDuckGo.
Used for defense news, tech publications, and general discovery.
"""
def __init__(self, delay_between_searches: float = 1.0):
self.delay = delay_between_searches
self._last_search_time: Optional[datetime] = None
@property
def name(self) -> str:
return "DuckDuckGo"
@property
def source_type(self) -> str:
return "web"
def _extract_domain(self, url: str) -> str:
try:
parsed = urlparse(url)
return parsed.netloc
except Exception:
return ""
def _rate_limit(self):
if self._last_search_time is not None:
import time
elapsed = (datetime.now() - self._last_search_time).total_seconds()
if elapsed < self.delay:
time.sleep(self.delay - elapsed)
self._last_search_time = datetime.now()
def search(
self,
query: str,
max_results: int = 20,
news_only: bool = False,
time_filter: Optional[str] = None
) -> List[SearchResult]:
"""
Execute DuckDuckGo search.
Args:
query: Search query
max_results: Maximum results
news_only: Search news instead of web
time_filter: d=day, w=week, m=month, y=year
"""
try:
from ddgs import DDGS
except ImportError:
raise ImportError("ddgs not installed. Run: pip install ddgs")
self._rate_limit()
results = []
try:
with DDGS() as ddgs:
if news_only:
search_results = list(ddgs.news(
query,
timelimit=time_filter,
max_results=max_results
))
for rank, result in enumerate(search_results, 1):
results.append(SearchResult(
title=result.get("title", ""),
url=result.get("url", ""),
snippet=result.get("body", ""),
source=self.name,
source_type="news",
rank=rank,
published_date=result.get("date"),
raw_data=result
))
else:
search_results = list(ddgs.text(
query,
timelimit=time_filter,
max_results=max_results
))
for rank, result in enumerate(search_results, 1):
# Detect source type based on domain
url = result.get("href", "")
domain = self._extract_domain(url)
source_type = self._classify_domain(domain)
results.append(SearchResult(
title=result.get("title", ""),
url=url,
snippet=result.get("body", ""),
source=self.name,
source_type=source_type,
rank=rank,
raw_data=result
))
logger.info(f"Web search for '{query}' returned {len(results)} results")
except Exception as e:
logger.error(f"Web search failed: {e}")
raise
return results
def _classify_domain(self, domain: str) -> str:
"""Classify domain into source type."""
domain = domain.lower()
# Defense/government sources
if any(x in domain for x in ['.gov', '.mil']):
return "government"
# News sources
if any(x in domain for x in [
'news', 'reuters', 'bloomberg', 'defensenews',
'spacenews', 'aviationweek', 'janes', 'breakingdefense'
]):
return "news"
# Academic
if any(x in domain for x in ['.edu', 'arxiv', 'ieee', 'springer', 'nature']):
return "academic"
# Patent databases
if any(x in domain for x in ['patent', 'uspto', 'espacenet']):
return "patent"
return "web"
def search_defense_news(self, query: str, max_results: int = 15) -> List[SearchResult]:
"""Search specifically for defense news."""
defense_query = f"{query} site:defensenews.com OR site:breakingdefense.com OR site:janes.com OR site:aviationweek.com"
return self.search(defense_query, max_results=max_results)
def search_space_tech(self, query: str, max_results: int = 15) -> List[SearchResult]:
"""Search specifically for space technology news."""
space_query = f"{query} site:spacenews.com OR site:spaceflightnow.com OR site:nasaspaceflight.com"
return self.search(space_query, max_results=max_results)

View File

@ -0,0 +1,15 @@
"""
Specialized data source integrations for TechScout.
Free APIs:
- SBIR.gov - SBIR/STTR awards
- USPTO - Patent data
- USASpending.gov - Federal contracts
- SAM.gov - Company registrations
"""
from .sbir import SBIRSearcher
from .patents import PatentSearcher
from .contracts import ContractSearcher
__all__ = ["SBIRSearcher", "PatentSearcher", "ContractSearcher"]

View File

@ -0,0 +1,268 @@
"""
USASpending.gov Contract Search
Search federal contract awards to understand company capabilities,
contract history, and funding relationships.
API Documentation: https://api.usaspending.gov/
Free, no API key required.
"""
import logging
import requests
from typing import List, Optional, Dict, Any
from datetime import datetime, timedelta
from ..search.base import BaseSearcher, SearchResult
logger = logging.getLogger(__name__)
class ContractSearcher(BaseSearcher):
"""
Search USASpending.gov for federal contracts.
Useful for:
- Finding companies with relevant contract experience
- Understanding funding levels for technologies
- Identifying prime contractors and their focus areas
"""
BASE_URL = "https://api.usaspending.gov/api/v2"
def __init__(self, timeout: int = 30):
self.timeout = timeout
@property
def name(self) -> str:
return "USASpending"
@property
def source_type(self) -> str:
return "contract"
def search(
self,
query: str,
max_results: int = 20,
agency: Optional[str] = None,
min_amount: Optional[float] = None,
years_back: int = 5
) -> List[SearchResult]:
"""
Search federal contracts.
Args:
query: Keyword search
max_results: Maximum results
agency: Filter by agency (e.g., "Department of Defense")
min_amount: Minimum contract value
years_back: How many years back to search
Returns:
List of SearchResult objects
"""
# Calculate date range
end_date = datetime.now()
start_date = end_date - timedelta(days=years_back * 365)
payload = {
"filters": {
"keywords": [query],
"time_period": [{
"start_date": start_date.strftime("%Y-%m-%d"),
"end_date": end_date.strftime("%Y-%m-%d")
}]
},
"fields": [
"Award ID",
"Recipient Name",
"Description",
"Award Amount",
"Start Date",
"Awarding Agency",
"Awarding Sub Agency",
"Contract Award Type"
],
"page": 1,
"limit": min(max_results, 100),
"sort": "Award Amount",
"order": "desc"
}
if agency:
payload["filters"]["agencies"] = [{
"type": "awarding",
"tier": "toptier",
"name": agency
}]
if min_amount:
payload["filters"]["award_amounts"] = [{
"lower_bound": min_amount
}]
results = []
try:
response = requests.post(
f"{self.BASE_URL}/search/spending_by_award/",
json=payload,
timeout=self.timeout,
headers={"Content-Type": "application/json"}
)
response.raise_for_status()
data = response.json()
for rank, award in enumerate(data.get("results", []), 1):
if rank > max_results:
break
award_id = award.get("Award ID", "")
# USASpending award detail URL
url = f"https://www.usaspending.gov/award/{award_id}" if award_id else ""
results.append(SearchResult(
title=award.get("Description", "")[:200] if award.get("Description") else "Contract Award",
url=url,
snippet=award.get("Description", "")[:500] if award.get("Description") else "",
source=self.name,
source_type=self.source_type,
rank=rank,
published_date=award.get("Start Date"),
organization=award.get("Recipient Name", ""),
award_amount=self._parse_amount(award.get("Award Amount")),
award_id=award_id,
trl_estimate=6, # Contracts typically for more mature tech
raw_data=award
))
logger.info(f"Contract search for '{query}' returned {len(results)} results")
except requests.exceptions.RequestException as e:
logger.error(f"USASpending API request failed: {e}")
except Exception as e:
logger.error(f"Contract search error: {e}")
return results
def _parse_amount(self, amount) -> Optional[float]:
"""Parse award amount to float."""
if amount is None:
return None
try:
return float(amount)
except (ValueError, TypeError):
return None
def search_dod(self, query: str, max_results: int = 20) -> List[SearchResult]:
"""Search specifically DOD contracts."""
return self.search(query, max_results=max_results, agency="Department of Defense")
def search_space_force(self, query: str, max_results: int = 20) -> List[SearchResult]:
"""Search Space Force / space-related DOD contracts."""
space_query = f"{query} (space OR satellite OR orbital OR launch)"
return self.search(space_query, max_results=max_results, agency="Department of Defense")
def get_recipient_profile(self, recipient_name: str) -> Dict[str, Any]:
"""
Get profile information about a contract recipient.
Returns summary of their contract history.
"""
payload = {
"filters": {
"recipient_search_text": [recipient_name],
"time_period": [{
"start_date": "2019-01-01",
"end_date": datetime.now().strftime("%Y-%m-%d")
}]
},
"category": "awarding_agency",
"limit": 10
}
try:
response = requests.post(
f"{self.BASE_URL}/search/spending_by_category/",
json=payload,
timeout=self.timeout,
headers={"Content-Type": "application/json"}
)
response.raise_for_status()
data = response.json()
return {
"recipient_name": recipient_name,
"total_contracts": data.get("total", 0),
"agencies": data.get("results", [])
}
except Exception as e:
logger.error(f"Failed to get recipient profile: {e}")
return {"recipient_name": recipient_name, "error": str(e)}
def get_company_contracts(
self,
company_name: str,
max_results: int = 50
) -> List[SearchResult]:
"""Get all recent contracts for a specific company."""
payload = {
"filters": {
"recipient_search_text": [company_name],
"time_period": [{
"start_date": "2020-01-01",
"end_date": datetime.now().strftime("%Y-%m-%d")
}]
},
"fields": [
"Award ID",
"Recipient Name",
"Description",
"Award Amount",
"Start Date",
"Awarding Agency",
"Awarding Sub Agency"
],
"page": 1,
"limit": min(max_results, 100),
"sort": "Start Date",
"order": "desc"
}
results = []
try:
response = requests.post(
f"{self.BASE_URL}/search/spending_by_award/",
json=payload,
timeout=self.timeout,
headers={"Content-Type": "application/json"}
)
response.raise_for_status()
data = response.json()
for rank, award in enumerate(data.get("results", []), 1):
award_id = award.get("Award ID", "")
url = f"https://www.usaspending.gov/award/{award_id}" if award_id else ""
results.append(SearchResult(
title=award.get("Description", "")[:200] if award.get("Description") else "Contract",
url=url,
snippet=f"Agency: {award.get('Awarding Agency', 'Unknown')}",
source=self.name,
source_type=self.source_type,
rank=rank,
published_date=award.get("Start Date"),
organization=award.get("Recipient Name", ""),
award_amount=self._parse_amount(award.get("Award Amount")),
award_id=award_id,
raw_data=award
))
logger.info(f"Found {len(results)} contracts for {company_name}")
except Exception as e:
logger.error(f"Company contract search failed: {e}")
return results

View File

@ -0,0 +1,203 @@
"""
USPTO Patent Search
Uses the USPTO PatentsView API for patent searches.
Free, no API key required.
API Documentation: https://patentsview.org/apis/api-endpoints
"""
import logging
import requests
from typing import List, Optional, Dict, Any
from datetime import datetime
from ..search.base import BaseSearcher, SearchResult
logger = logging.getLogger(__name__)
class PatentSearcher(BaseSearcher):
"""
Search USPTO patent database via PatentsView API.
Patents indicate active R&D and can reveal technical approaches
to solving capability gaps.
"""
BASE_URL = "https://api.patentsview.org/patents/query"
def __init__(self, timeout: int = 30):
self.timeout = timeout
@property
def name(self) -> str:
return "USPTO Patents"
@property
def source_type(self) -> str:
return "patent"
def search(
self,
query: str,
max_results: int = 20,
year_start: Optional[int] = None,
assignee: Optional[str] = None
) -> List[SearchResult]:
"""
Search USPTO patents.
Args:
query: Text search (searches title, abstract, claims)
max_results: Maximum results
year_start: Only patents from this year forward
assignee: Filter by assignee/company name
Returns:
List of SearchResult objects
"""
# Build query filter
query_parts = [{"_text_any": {"patent_abstract": query}}]
if year_start:
query_parts.append({
"_gte": {"patent_date": f"{year_start}-01-01"}
})
if assignee:
query_parts.append({
"_text_any": {"assignee_organization": assignee}
})
# Combine with AND
if len(query_parts) > 1:
query_filter = {"_and": query_parts}
else:
query_filter = query_parts[0]
payload = {
"q": query_filter,
"f": [
"patent_number",
"patent_title",
"patent_abstract",
"patent_date",
"assignee_organization",
"inventor_first_name",
"inventor_last_name"
],
"o": {"per_page": min(max_results, 100)},
"s": [{"patent_date": "desc"}] # Most recent first
}
results = []
try:
response = requests.post(
self.BASE_URL,
json=payload,
timeout=self.timeout,
headers={"Content-Type": "application/json"}
)
response.raise_for_status()
data = response.json()
patents = data.get("patents", [])
for rank, patent in enumerate(patents, 1):
if rank > max_results:
break
patent_number = patent.get("patent_number", "")
url = f"https://patents.google.com/patent/US{patent_number}" if patent_number else ""
# Get primary assignee
assignees = patent.get("assignees", [])
org = assignees[0].get("assignee_organization", "") if assignees else ""
results.append(SearchResult(
title=patent.get("patent_title", ""),
url=url,
snippet=patent.get("patent_abstract", "")[:500] if patent.get("patent_abstract") else "",
source=self.name,
source_type=self.source_type,
rank=rank,
published_date=patent.get("patent_date"),
organization=org,
patent_number=patent_number,
trl_estimate=5, # Patents typically represent mid-TRL tech
raw_data=patent
))
logger.info(f"Patent search for '{query}' returned {len(results)} results")
except requests.exceptions.RequestException as e:
logger.error(f"USPTO API request failed: {e}")
except Exception as e:
logger.error(f"Patent search error: {e}")
return results
def search_defense_contractors(self, query: str, max_results: int = 20) -> List[SearchResult]:
"""Search patents from major defense contractors."""
contractors = [
"Lockheed Martin",
"Raytheon",
"Northrop Grumman",
"Boeing",
"General Dynamics",
"L3Harris",
"BAE Systems"
]
all_results = []
per_contractor = max(2, max_results // len(contractors))
for contractor in contractors:
results = self.search(
query,
max_results=per_contractor,
assignee=contractor
)
all_results.extend(results)
# Sort by date and limit
all_results.sort(key=lambda x: x.published_date or "", reverse=True)
return all_results[:max_results]
def get_patent_details(self, patent_number: str) -> Optional[Dict[str, Any]]:
"""Get detailed information about a specific patent."""
payload = {
"q": {"patent_number": patent_number},
"f": [
"patent_number",
"patent_title",
"patent_abstract",
"patent_date",
"patent_type",
"assignee_organization",
"assignee_type",
"inventor_first_name",
"inventor_last_name",
"inventor_city",
"inventor_state",
"cpc_section_id",
"cpc_subsection_title"
]
}
try:
response = requests.post(
self.BASE_URL,
json=payload,
timeout=self.timeout,
headers={"Content-Type": "application/json"}
)
response.raise_for_status()
data = response.json()
patents = data.get("patents", [])
return patents[0] if patents else None
except Exception as e:
logger.error(f"Failed to get patent details: {e}")
return None

176
techscout/sources/sbir.py Normal file
View File

@ -0,0 +1,176 @@
"""
SBIR/STTR Award Search
Uses the SBIR.gov API to search for Small Business Innovation Research
and Small Business Technology Transfer awards.
API Documentation: https://www.sbir.gov/api
Free, no API key required.
"""
import logging
import requests
from typing import List, Optional, Dict, Any
from datetime import datetime
from ..search.base import BaseSearcher, SearchResult
logger = logging.getLogger(__name__)
class SBIRSearcher(BaseSearcher):
"""
Search SBIR/STTR awards database.
The SBIR program funds R&D at small businesses, making it
excellent for finding emerging defense technologies.
"""
BASE_URL = "https://www.sbir.gov/api/awards.json"
def __init__(self, timeout: int = 30):
self.timeout = timeout
@property
def name(self) -> str:
return "SBIR.gov"
@property
def source_type(self) -> str:
return "sbir"
def search(
self,
query: str,
max_results: int = 20,
agency: Optional[str] = None,
year_start: Optional[int] = None,
year_end: Optional[int] = None,
phase: Optional[str] = None # "Phase I", "Phase II", "Phase III"
) -> List[SearchResult]:
"""
Search SBIR/STTR awards.
Args:
query: Keyword search
max_results: Maximum results to return
agency: Filter by agency (e.g., "DOD", "NASA", "DOE")
year_start: Start year filter
year_end: End year filter
phase: Filter by phase
Returns:
List of SearchResult objects
"""
params = {
"keyword": query,
"rows": min(max_results, 100), # API limit
}
if agency:
params["agency"] = agency
if year_start:
params["year_start"] = year_start
if year_end:
params["year_end"] = year_end
if phase:
params["phase"] = phase
results = []
try:
response = requests.get(
self.BASE_URL,
params=params,
timeout=self.timeout
)
response.raise_for_status()
data = response.json()
for rank, award in enumerate(data, 1):
if rank > max_results:
break
# Estimate TRL based on phase
trl_estimate = self._estimate_trl(award.get("phase", ""))
# Build URL to award page
award_id = award.get("award_id", "")
url = f"https://www.sbir.gov/sbirsearch/detail/{award_id}" if award_id else ""
results.append(SearchResult(
title=award.get("award_title", ""),
url=url,
snippet=award.get("abstract", "")[:500] if award.get("abstract") else "",
source=self.name,
source_type=self.source_type,
rank=rank,
published_date=award.get("award_year"),
organization=award.get("firm", ""),
award_amount=self._parse_amount(award.get("award_amount")),
trl_estimate=trl_estimate,
award_id=award_id,
raw_data=award
))
logger.info(f"SBIR search for '{query}' returned {len(results)} results")
except requests.exceptions.RequestException as e:
logger.error(f"SBIR API request failed: {e}")
except Exception as e:
logger.error(f"SBIR search error: {e}")
return results
def _estimate_trl(self, phase: str) -> int:
"""Estimate TRL based on SBIR phase."""
phase = phase.lower()
if "phase i" in phase and "ii" not in phase:
return 3 # Proof of concept
elif "phase ii" in phase and "iii" not in phase:
return 5 # Prototype development
elif "phase iii" in phase:
return 7 # Production ready
return 4 # Default mid-range
def _parse_amount(self, amount) -> Optional[float]:
"""Parse award amount to float."""
if amount is None:
return None
try:
if isinstance(amount, str):
amount = amount.replace("$", "").replace(",", "")
return float(amount)
except (ValueError, TypeError):
return None
def search_defense(self, query: str, max_results: int = 20) -> List[SearchResult]:
"""Search specifically DOD SBIR awards."""
return self.search(query, max_results=max_results, agency="DOD")
def search_space(self, query: str, max_results: int = 20) -> List[SearchResult]:
"""Search NASA and Space Force SBIR awards."""
# Search NASA
nasa_results = self.search(query, max_results=max_results // 2, agency="NASA")
# Search DOD (includes Space Force)
dod_results = self.search(
f"{query} space OR satellite OR orbital",
max_results=max_results // 2,
agency="DOD"
)
return nasa_results + dod_results
def get_award_details(self, award_id: str) -> Optional[Dict[str, Any]]:
"""Get detailed information about a specific award."""
try:
response = requests.get(
self.BASE_URL,
params={"award_id": award_id},
timeout=self.timeout
)
response.raise_for_status()
data = response.json()
return data[0] if data else None
except Exception as e:
logger.error(f"Failed to get award details: {e}")
return None

View File

@ -0,0 +1,28 @@
"""Technology extraction, grouping, and evaluation module for TechScout."""
from .types import (
ExtractedTechnology,
GroupedTechnology,
SourceEvidence,
Developer,
CapabilityMatch,
CriterionResult,
EvaluatedTechnology,
)
from .extractor import TechnologyExtractor
from .grouper import TechnologyGrouper
from .evaluator import CapabilityEvaluator
__all__ = [
# Types
"ExtractedTechnology",
"GroupedTechnology",
"SourceEvidence",
"Developer",
"CapabilityMatch",
"CriterionResult",
"EvaluatedTechnology",
# Services
"TechnologyExtractor",
"TechnologyGrouper",
"CapabilityEvaluator",
]

View File

@ -0,0 +1,362 @@
"""
Capability Evaluator for TechScout.
Evaluates how well each technology matches the user's capability need.
Produces structured capability-fit assessments.
This is Stage 5 of the Capability-Technology Matching pipeline.
"""
import json
import logging
from typing import List, Optional
from ..extraction.llm_client import OllamaClient
from ..capability.types import CapabilityNeed, CapabilityCriterion
from .types import (
GroupedTechnology,
CapabilityMatch,
CriterionResult,
EvaluatedTechnology,
)
logger = logging.getLogger(__name__)
class CapabilityEvaluator:
"""
Evaluates technologies against capability needs.
For each technology, produces:
- Per-criterion assessments (SUPPORTS/PARTIAL/DOES_NOT_SUPPORT/UNKNOWN)
- Overall fit score (0-100)
- Narrative explanation
- Strengths, limitations, unknowns
- Investigation recommendation
"""
EVALUATION_PROMPT = """Evaluate whether this technology addresses the user's capability need.
USER'S CAPABILITY NEED:
{functional_need}
TECHNOLOGY:
Name: {tech_name}
Type: {tech_type}
Description: {description}
Capabilities: {capabilities}
Developer(s): {developers}
Maturity: TRL {trl_estimate} (Evidence: {trl_evidence})
EVALUATION CRITERIA:
{criteria_text}
INSTRUCTIONS:
For each criterion, assess:
- SUPPORTS: Technology clearly provides this capability
- PARTIAL: Technology partially addresses this, with limitations
- DOES_NOT_SUPPORT: Technology does not address this
- UNKNOWN: Insufficient information to determine
Respond with JSON:
{{
"criteria_results": [
{{
"criterion": "criterion text",
"weight": "must_have|should_have|nice_to_have",
"assessment": "SUPPORTS|PARTIAL|DOES_NOT_SUPPORT|UNKNOWN",
"evidence": "Explanation with evidence from technology description"
}}
],
"how_it_addresses_need": "2-3 sentences explaining how this technology could address the capability need",
"key_strengths": ["strength 1", "strength 2"],
"key_limitations": ["limitation 1", "limitation 2"],
"key_unknowns": ["unknown 1", "unknown 2"],
"investigation_worthy": true/false,
"investigation_rationale": "Why this technology is/isn't worth investigating further"
}}"""
def __init__(
self,
ollama_client: Optional[OllamaClient] = None,
model: str = "mistral-nemo:12b"
):
self.client = ollama_client or OllamaClient()
self.model = model
def evaluate_all(
self,
technologies: List[GroupedTechnology],
capability_need: CapabilityNeed,
capability_criteria: List[CapabilityCriterion]
) -> List[EvaluatedTechnology]:
"""
Evaluate all technologies against capability criteria.
Args:
technologies: List of grouped technologies to evaluate
capability_need: Structured capability need
capability_criteria: List of evaluation criteria
Returns:
List of evaluated technologies with fit assessments
"""
logger.info(f"Evaluating {len(technologies)} technologies against capability criteria...")
evaluated = []
for tech in technologies:
match = self._evaluate_technology(tech, capability_need, capability_criteria)
evaluated.append(EvaluatedTechnology(
technology=tech,
capability_match=match
))
# Sort by fit score descending
evaluated.sort(key=lambda e: e.capability_match.fit_score, reverse=True)
logger.info(f"Evaluation complete. Top score: {evaluated[0].capability_match.fit_score if evaluated else 0}")
return evaluated
def _evaluate_technology(
self,
tech: GroupedTechnology,
capability_need: CapabilityNeed,
capability_criteria: List[CapabilityCriterion]
) -> CapabilityMatch:
"""Evaluate a single technology against capability criteria."""
# Build criteria text for prompt
criteria_text = ""
for i, criterion in enumerate(capability_criteria, 1):
criteria_text += f"{i}. [{criterion.weight.upper()}] {criterion.criterion}\n"
criteria_text += f" Keywords: {', '.join(criterion.keywords[:5])}\n"
# Build developers text
developers_text = ", ".join(d.name for d in tech.developers) if tech.developers else "Unknown"
prompt = self.EVALUATION_PROMPT.format(
functional_need=capability_need.functional_need,
tech_name=tech.canonical_name,
tech_type=tech.technology_type,
description=tech.description[:500],
capabilities="; ".join(tech.capabilities[:5]),
developers=developers_text,
trl_estimate=tech.trl_estimate or "Unknown",
trl_evidence="; ".join(tech.trl_evidence[:3]) if tech.trl_evidence else "None",
criteria_text=criteria_text
)
response = self.client.generate(
prompt=prompt,
model=self.model,
temperature=0.1,
format="json"
)
if not response.success:
logger.warning(f"LLM evaluation failed for: {tech.canonical_name}")
return self._create_fallback_match(tech, capability_criteria)
try:
data = json.loads(response.content)
except json.JSONDecodeError:
data = self.client.extract_json_from_text(response.content)
if not data:
return self._create_fallback_match(tech, capability_criteria)
return self._build_capability_match(data, capability_criteria)
def _build_capability_match(
self,
data: dict,
capability_criteria: List[CapabilityCriterion]
) -> CapabilityMatch:
"""Build CapabilityMatch from LLM response."""
# Parse criteria results
criteria_results = []
results_data = data.get("criteria_results", [])
for result in results_data:
assessment = result.get("assessment", "UNKNOWN")
if assessment not in ("SUPPORTS", "PARTIAL", "DOES_NOT_SUPPORT", "UNKNOWN"):
assessment = "UNKNOWN"
weight = result.get("weight", "should_have")
if weight not in ("must_have", "should_have", "nice_to_have"):
weight = "should_have"
criteria_results.append(CriterionResult(
criterion=result.get("criterion", ""),
weight=weight,
assessment=assessment,
evidence=result.get("evidence", ""),
source=result.get("source")
))
# Calculate fit score
fit_score = self._calculate_fit_score(criteria_results)
# Determine overall fit
overall_fit = self._determine_overall_fit(fit_score, criteria_results)
return CapabilityMatch(
overall_fit=overall_fit,
fit_score=fit_score,
criteria_results=criteria_results,
how_it_addresses_need=data.get("how_it_addresses_need", ""),
key_strengths=data.get("key_strengths", []),
key_limitations=data.get("key_limitations", []),
key_unknowns=data.get("key_unknowns", []),
investigation_worthy=data.get("investigation_worthy", fit_score >= 50),
investigation_rationale=data.get("investigation_rationale", "")
)
def _calculate_fit_score(self, criteria_results: List[CriterionResult]) -> int:
"""
Calculate fit score based on criteria results.
Scoring:
- must_have SUPPORTS: +30 points
- must_have PARTIAL: +15 points
- must_have DOES_NOT_SUPPORT: 0 points (caps overall)
- should_have SUPPORTS: +15 points
- should_have PARTIAL: +8 points
- nice_to_have SUPPORTS: +5 points
- nice_to_have PARTIAL: +3 points
- UNKNOWN: +5 points (benefit of doubt)
Normalized to 0-100.
"""
if not criteria_results:
return 50 # Neutral score if no criteria
total_points = 0
max_points = 0
for result in criteria_results:
weight = result.weight
assessment = result.assessment
# Calculate max possible points for this criterion
if weight == "must_have":
max_points += 30
elif weight == "should_have":
max_points += 15
else: # nice_to_have
max_points += 5
# Calculate actual points
if assessment == "SUPPORTS":
if weight == "must_have":
total_points += 30
elif weight == "should_have":
total_points += 15
else:
total_points += 5
elif assessment == "PARTIAL":
if weight == "must_have":
total_points += 15
elif weight == "should_have":
total_points += 8
else:
total_points += 3
elif assessment == "UNKNOWN":
# Benefit of doubt
total_points += 5
# DOES_NOT_SUPPORT adds 0 points
# Normalize to 0-100
if max_points > 0:
score = int((total_points / max_points) * 100)
else:
score = 50
return min(100, max(0, score))
def _determine_overall_fit(
self,
score: int,
criteria_results: List[CriterionResult]
) -> str:
"""Determine overall fit category based on score and criteria results."""
# Check for must_have failures
must_have_failures = sum(
1 for r in criteria_results
if r.weight == "must_have" and r.assessment == "DOES_NOT_SUPPORT"
)
# Check for too many unknowns
unknown_count = sum(1 for r in criteria_results if r.assessment == "UNKNOWN")
unknown_ratio = unknown_count / len(criteria_results) if criteria_results else 0
# If most criteria are unknown, mark as UNCERTAIN
if unknown_ratio > 0.5:
return "UNCERTAIN"
# Apply score-based categorization with must_have penalty
if must_have_failures >= 2:
return "LOW"
elif must_have_failures == 1:
# Cap at MEDIUM if any must_have fails
if score >= 50:
return "MEDIUM"
else:
return "LOW"
else:
# No must_have failures
if score >= 75:
return "HIGH"
elif score >= 50:
return "MEDIUM"
elif score >= 25:
return "LOW"
else:
return "LOW"
def _create_fallback_match(
self,
tech: GroupedTechnology,
capability_criteria: List[CapabilityCriterion]
) -> CapabilityMatch:
"""Create a fallback capability match using heuristics."""
# Simple keyword-based assessment
tech_text = f"{tech.canonical_name} {tech.description} {' '.join(tech.capabilities)}".lower()
criteria_results = []
for criterion in capability_criteria:
# Check if any keywords appear in tech text
keyword_matches = sum(1 for kw in criterion.keywords if kw.lower() in tech_text)
if keyword_matches >= 2:
assessment = "SUPPORTS"
elif keyword_matches == 1:
assessment = "PARTIAL"
else:
assessment = "UNKNOWN"
criteria_results.append(CriterionResult(
criterion=criterion.criterion,
weight=criterion.weight,
assessment=assessment,
evidence=f"Heuristic: {keyword_matches} keyword matches",
source=None
))
fit_score = self._calculate_fit_score(criteria_results)
overall_fit = self._determine_overall_fit(fit_score, criteria_results)
return CapabilityMatch(
overall_fit=overall_fit,
fit_score=fit_score,
criteria_results=criteria_results,
how_it_addresses_need="Assessment based on keyword matching (LLM unavailable)",
key_strengths=[],
key_limitations=["Full LLM assessment unavailable"],
key_unknowns=["Detailed capability analysis not performed"],
investigation_worthy=fit_score >= 50,
investigation_rationale="Based on keyword matching only"
)

View File

@ -0,0 +1,456 @@
"""
Technology Extractor for TechScout.
Extracts specific, nameable technologies from search results.
Filters out results that are just topic discussions or generic content.
This is Stage 3 of the Capability-Technology Matching pipeline.
"""
import json
import logging
import uuid
from typing import List, Optional, Tuple
from dataclasses import dataclass
from ..extraction.llm_client import OllamaClient
from ..search.base import SearchResult
from ..capability.types import CapabilityNeed, TechnologyIndicators
from .types import ExtractedTechnology
logger = logging.getLogger(__name__)
@dataclass
class ExtractionResult:
"""Result of technology extraction from search results."""
technologies: List[ExtractedTechnology]
discarded_ids: List[str] # IDs of results that weren't technologies
extraction_stats: dict
class TechnologyExtractor:
"""
Extracts specific technologies from search results.
Uses a combination of:
1. Heuristic pre-filtering (source type, keyword indicators)
2. LLM-based extraction (for actual technology identification)
"""
EXTRACTION_PROMPT = """Analyze this search result and determine if it describes a SPECIFIC TECHNOLOGY.
CONTEXT - User is looking for:
{functional_need}
SEARCH RESULT:
Source Type: {source_type}
Title: {title}
Content: {snippet}
Organization: {organization}
INSTRUCTIONS:
1. Does this describe a SPECIFIC, NAMEABLE technology?
- YES examples: "SPAD Array Detector", "Quantum dot infrared sensor", "ML-based tracking algorithm"
- NO examples: Topic discussions, overviews, problem descriptions, generic categories like "sensor technology"
2. If YES, extract technology details. If NO, explain why.
Respond with JSON:
{{
"is_technology": true/false,
"reason": "Why this is/isn't a specific technology",
"technology": {{
"name": "Specific technology name",
"type": "sensor|algorithm|material|system|platform|device|method|software|other",
"description": "What it is (1-2 sentences)",
"capabilities": ["capability 1", "capability 2"],
"mechanism": "How it works (if described)",
"developer": "Organization name if mentioned",
"developer_type": "company|university|government|lab|unknown",
"trl_indicators": ["Phase II SBIR", "prototype demonstrated", etc.]
}}
}}
If is_technology is false, omit the technology object."""
BATCH_EXTRACTION_PROMPT = """Analyze these search results and identify which describe SPECIFIC TECHNOLOGIES.
CONTEXT - User is looking for:
{functional_need}
SEARCH RESULTS:
{results_text}
For each result, determine if it describes a specific, nameable technology (not generic category or topic discussion).
Respond with JSON:
{{
"extractions": [
{{
"item_number": 1,
"is_technology": true/false,
"reason": "brief explanation",
"technology": {{...}} or null
}},
...
]
}}
Technology object schema (when is_technology is true):
{{
"name": "Specific technology name",
"type": "sensor|algorithm|material|system|platform|device|method|software|other",
"description": "What it is",
"capabilities": ["cap1", "cap2"],
"developer": "Organization if mentioned",
"trl_indicators": ["evidence of maturity"]
}}"""
# Source types more likely to describe actual technologies
HIGH_TECH_LIKELIHOOD_SOURCES = {"sbir", "patent"}
MEDIUM_TECH_LIKELIHOOD_SOURCES = {"contract"}
LOW_TECH_LIKELIHOOD_SOURCES = {"news", "web", "academic"}
def __init__(
self,
ollama_client: Optional[OllamaClient] = None,
model: str = "mistral-nemo:12b"
):
self.client = ollama_client or OllamaClient()
self.model = model
def extract_all(
self,
results: List[SearchResult],
capability_need: CapabilityNeed,
technology_indicators: Optional[TechnologyIndicators] = None,
batch_size: int = 5
) -> ExtractionResult:
"""
Extract technologies from all search results.
Args:
results: List of search results to process
capability_need: Structured capability need for context
technology_indicators: Positive/negative indicators
batch_size: How many results to process per LLM call
Returns:
ExtractionResult with extracted technologies and stats
"""
logger.info(f"Extracting technologies from {len(results)} results...")
technologies = []
discarded_ids = []
# Separate by likelihood of being a technology
high_priority = []
medium_priority = []
low_priority = []
for result in results:
if result.source_type in self.HIGH_TECH_LIKELIHOOD_SOURCES:
high_priority.append(result)
elif result.source_type in self.MEDIUM_TECH_LIKELIHOOD_SOURCES:
medium_priority.append(result)
else:
low_priority.append(result)
# Process high priority (all)
if high_priority:
logger.info(f"Processing {len(high_priority)} high-priority results (SBIR/patents)...")
techs, discarded = self._process_batch_results(
high_priority, capability_need, batch_size
)
technologies.extend(techs)
discarded_ids.extend(discarded)
# Process medium priority (all)
if medium_priority:
logger.info(f"Processing {len(medium_priority)} medium-priority results (contracts)...")
techs, discarded = self._process_batch_results(
medium_priority, capability_need, batch_size
)
technologies.extend(techs)
discarded_ids.extend(discarded)
# Process low priority with pre-filtering
if low_priority:
# Apply heuristic filter first
filtered_low = self._heuristic_filter(low_priority, technology_indicators)
logger.info(f"Processing {len(filtered_low)}/{len(low_priority)} low-priority results (passed heuristic filter)...")
if filtered_low:
techs, discarded = self._process_batch_results(
filtered_low, capability_need, batch_size
)
technologies.extend(techs)
discarded_ids.extend(discarded)
# Add filtered-out results to discarded
filtered_out_ids = [
r.url for r in low_priority if r not in filtered_low
]
discarded_ids.extend(filtered_out_ids)
logger.info(f"Extracted {len(technologies)} technologies, discarded {len(discarded_ids)} results")
return ExtractionResult(
technologies=technologies,
discarded_ids=discarded_ids,
extraction_stats={
"total_results": len(results),
"high_priority_processed": len(high_priority),
"medium_priority_processed": len(medium_priority),
"low_priority_processed": len(low_priority),
"technologies_extracted": len(technologies),
"results_discarded": len(discarded_ids),
}
)
def _heuristic_filter(
self,
results: List[SearchResult],
indicators: Optional[TechnologyIndicators]
) -> List[SearchResult]:
"""Apply heuristic filtering to identify likely technology results."""
if not indicators:
# Default indicators
positive = {"prototype", "demonstrated", "system", "device", "sensor",
"developed", "patent", "phase ii", "tested", "deployed"}
negative = {"overview", "challenge", "review", "introduction", "survey",
"future", "potential", "could", "might", "problems"}
else:
positive = set(w.lower() for w in indicators.positive)
negative = set(w.lower() for w in indicators.negative)
filtered = []
for result in results:
text = f"{result.title} {result.snippet}".lower()
# Count positive and negative indicators
pos_count = sum(1 for term in positive if term in text)
neg_count = sum(1 for term in negative if term in text)
# Include if more positive than negative, or any positive found
if pos_count > 0 and pos_count >= neg_count:
filtered.append(result)
elif pos_count > 0:
filtered.append(result)
return filtered
def _process_batch_results(
self,
results: List[SearchResult],
capability_need: CapabilityNeed,
batch_size: int
) -> Tuple[List[ExtractedTechnology], List[str]]:
"""Process results in batches using LLM."""
technologies = []
discarded = []
for i in range(0, len(results), batch_size):
batch = results[i:i + batch_size]
if len(batch) == 1:
# Single result - use single extraction
result = batch[0]
tech = self._extract_single(result, capability_need)
if tech:
technologies.append(tech)
else:
discarded.append(result.url)
else:
# Multiple results - use batch extraction
batch_techs, batch_discarded = self._extract_batch(batch, capability_need)
technologies.extend(batch_techs)
discarded.extend(batch_discarded)
return technologies, discarded
def _extract_single(
self,
result: SearchResult,
capability_need: CapabilityNeed
) -> Optional[ExtractedTechnology]:
"""Extract technology from a single result."""
prompt = self.EXTRACTION_PROMPT.format(
functional_need=capability_need.functional_need,
source_type=result.source_type,
title=result.title,
snippet=result.snippet[:500],
organization=result.organization or "Unknown"
)
response = self.client.generate(
prompt=prompt,
model=self.model,
temperature=0.1,
format="json"
)
if not response.success:
logger.warning(f"LLM extraction failed for: {result.title[:50]}")
return None
try:
data = json.loads(response.content)
except json.JSONDecodeError:
data = self.client.extract_json_from_text(response.content)
if not data:
return None
if not data.get("is_technology", False):
return None
tech_data = data.get("technology", {})
if not tech_data or not tech_data.get("name"):
return None
return self._build_extracted_technology(result, tech_data)
def _extract_batch(
self,
results: List[SearchResult],
capability_need: CapabilityNeed
) -> Tuple[List[ExtractedTechnology], List[str]]:
"""Extract technologies from a batch of results."""
# Build results text
results_text = ""
for i, result in enumerate(results, 1):
results_text += f"""
Item {i}:
Source: {result.source_type}
Title: {result.title}
Organization: {result.organization or 'Unknown'}
Content: {result.snippet[:300]}
---"""
prompt = self.BATCH_EXTRACTION_PROMPT.format(
functional_need=capability_need.functional_need,
results_text=results_text
)
response = self.client.generate(
prompt=prompt,
model=self.model,
temperature=0.1,
format="json"
)
technologies = []
discarded = []
if not response.success:
logger.warning("Batch extraction failed, falling back to individual extraction")
for result in results:
tech = self._extract_single(result, capability_need)
if tech:
technologies.append(tech)
else:
discarded.append(result.url)
return technologies, discarded
try:
data = json.loads(response.content)
except json.JSONDecodeError:
data = self.client.extract_json_from_text(response.content)
if not data:
# Fallback to individual extraction
for result in results:
tech = self._extract_single(result, capability_need)
if tech:
technologies.append(tech)
else:
discarded.append(result.url)
return technologies, discarded
extractions = data.get("extractions", [])
for extraction in extractions:
item_num = extraction.get("item_number", 0)
if 1 <= item_num <= len(results):
result = results[item_num - 1]
if extraction.get("is_technology", False):
tech_data = extraction.get("technology", {})
if tech_data and tech_data.get("name"):
tech = self._build_extracted_technology(result, tech_data)
if tech:
technologies.append(tech)
continue
discarded.append(result.url)
return technologies, discarded
def _build_extracted_technology(
self,
result: SearchResult,
tech_data: dict
) -> ExtractedTechnology:
"""Build ExtractedTechnology from extraction data."""
tech_id = str(uuid.uuid4())[:8]
# Estimate TRL from indicators
trl_indicators = tech_data.get("trl_indicators", [])
trl_estimate = self._estimate_trl(trl_indicators, result)
return ExtractedTechnology(
id=tech_id,
source_result_id=result.url,
extraction_confidence=0.8 if result.source_type in self.HIGH_TECH_LIKELIHOOD_SOURCES else 0.6,
name=tech_data.get("name", ""),
technology_type=tech_data.get("type", "system"),
description=tech_data.get("description", ""),
capabilities=tech_data.get("capabilities", []),
mechanism=tech_data.get("mechanism"),
developer=tech_data.get("developer") or result.organization,
developer_type=tech_data.get("developer_type", "unknown"),
trl_estimate=trl_estimate,
trl_evidence=trl_indicators,
source_type=result.source_type,
source_url=result.url,
source_title=result.title,
source_snippet=result.snippet,
)
def _estimate_trl(
self,
trl_indicators: List[str],
result: SearchResult
) -> Optional[int]:
"""Estimate TRL from indicators and source type."""
# Use existing TRL if available
if result.trl_estimate:
return result.trl_estimate
# Estimate from indicators
indicators_lower = " ".join(trl_indicators).lower()
if any(term in indicators_lower for term in ["deployed", "operational", "fielded"]):
return 9
elif any(term in indicators_lower for term in ["production", "qualified"]):
return 8
elif any(term in indicators_lower for term in ["phase iii", "demonstration"]):
return 7
elif any(term in indicators_lower for term in ["prototype", "phase ii"]):
return 5
elif any(term in indicators_lower for term in ["phase i", "laboratory"]):
return 4
elif any(term in indicators_lower for term in ["concept", "proof"]):
return 3
elif any(term in indicators_lower for term in ["research", "basic"]):
return 2
# Estimate from source type
source_trl_defaults = {
"sbir": 4,
"patent": 5,
"contract": 6,
"news": 5,
"web": 5,
}
return source_trl_defaults.get(result.source_type, 5)

View File

@ -0,0 +1,421 @@
"""
Technology Grouper for TechScout.
Groups duplicate technologies across sources into single entities.
Uses conservative heuristic matching to avoid false merges.
This is Stage 4 of the Capability-Technology Matching pipeline.
"""
import logging
import uuid
from typing import List, Dict, Set, Tuple, Optional
from dataclasses import dataclass
from collections import defaultdict
from .types import ExtractedTechnology, GroupedTechnology, SourceEvidence, Developer
logger = logging.getLogger(__name__)
@dataclass
class SimilarityScore:
"""Similarity scores between two technologies."""
name_similarity: float # 0-1, string similarity
developer_match: bool # Same developer?
capability_overlap: float # 0-1, Jaccard similarity
description_similarity: float # 0-1, keyword overlap
overall: float # Combined score
class TechnologyGrouper:
"""
Groups extracted technologies that describe the same underlying technology.
Uses conservative matching:
- Same developer + similar name definite merge
- Very similar name + similar capabilities likely merge
- Otherwise keep separate (avoid false merges)
"""
# Thresholds for grouping decisions
HIGH_CONFIDENCE_NAME_THRESHOLD = 0.85
MEDIUM_CONFIDENCE_NAME_THRESHOLD = 0.70
CAPABILITY_OVERLAP_THRESHOLD = 0.40
SAME_DEVELOPER_NAME_THRESHOLD = 0.65
def __init__(self):
pass
def group(self, technologies: List[ExtractedTechnology]) -> List[GroupedTechnology]:
"""
Group extracted technologies into unique technologies.
Args:
technologies: List of extracted technologies (may have duplicates)
Returns:
List of grouped technologies (deduplicated)
"""
if not technologies:
return []
logger.info(f"Grouping {len(technologies)} extracted technologies...")
# Build groups using union-find-like approach
groups: Dict[str, List[ExtractedTechnology]] = {}
tech_to_group: Dict[str, str] = {}
for tech in technologies:
# Find if this tech should merge with an existing group
merge_group_id = self._find_merge_candidate(tech, groups, tech_to_group)
if merge_group_id:
# Merge into existing group
groups[merge_group_id].append(tech)
tech_to_group[tech.id] = merge_group_id
else:
# Create new group
group_id = tech.id
groups[group_id] = [tech]
tech_to_group[tech.id] = group_id
# Convert groups to GroupedTechnology objects
grouped_technologies = []
for group_id, tech_list in groups.items():
grouped = self._merge_group(tech_list)
grouped_technologies.append(grouped)
logger.info(f"Grouped into {len(grouped_technologies)} unique technologies")
return grouped_technologies
def _find_merge_candidate(
self,
tech: ExtractedTechnology,
groups: Dict[str, List[ExtractedTechnology]],
tech_to_group: Dict[str, str]
) -> Optional[str]:
"""Find an existing group to merge this technology into."""
best_match_group = None
best_match_score = 0.0
for group_id, group_techs in groups.items():
# Compare against the first (canonical) tech in the group
representative = group_techs[0]
similarity = self._calculate_similarity(tech, representative)
should_merge, confidence = self._should_merge(similarity)
if should_merge and confidence > best_match_score:
best_match_group = group_id
best_match_score = confidence
return best_match_group
def _calculate_similarity(
self,
tech1: ExtractedTechnology,
tech2: ExtractedTechnology
) -> SimilarityScore:
"""Calculate similarity between two technologies."""
# Name similarity (fuzzy string match)
name_sim = self._string_similarity(tech1.name, tech2.name)
# Developer match
dev1 = (tech1.developer or "").lower().strip()
dev2 = (tech2.developer or "").lower().strip()
developer_match = False
if dev1 and dev2:
developer_match = (
dev1 == dev2 or
self._string_similarity(dev1, dev2) > 0.8 or
dev1 in dev2 or
dev2 in dev1
)
# Capability overlap (Jaccard similarity)
caps1 = set(self._extract_keywords(tech1.capabilities))
caps2 = set(self._extract_keywords(tech2.capabilities))
cap_overlap = self._jaccard_similarity(caps1, caps2)
# Description similarity (keyword overlap)
desc1_words = set(self._extract_keywords([tech1.description]))
desc2_words = set(self._extract_keywords([tech2.description]))
desc_sim = self._jaccard_similarity(desc1_words, desc2_words)
# Overall score
if developer_match:
overall = 0.5 * name_sim + 0.3 * cap_overlap + 0.2 * desc_sim
else:
overall = 0.6 * name_sim + 0.25 * cap_overlap + 0.15 * desc_sim
return SimilarityScore(
name_similarity=name_sim,
developer_match=developer_match,
capability_overlap=cap_overlap,
description_similarity=desc_sim,
overall=overall
)
def _should_merge(self, similarity: SimilarityScore) -> Tuple[bool, float]:
"""
Decide whether to merge based on similarity scores.
Returns (should_merge, confidence)
"""
# High confidence: Same developer + reasonably similar name
if similarity.developer_match and similarity.name_similarity > self.SAME_DEVELOPER_NAME_THRESHOLD:
return True, 0.9
# High confidence: Very similar names
if similarity.name_similarity > self.HIGH_CONFIDENCE_NAME_THRESHOLD:
return True, 0.85
# Medium confidence: Similar name + good capability overlap
if (similarity.name_similarity > self.MEDIUM_CONFIDENCE_NAME_THRESHOLD and
similarity.capability_overlap > self.CAPABILITY_OVERLAP_THRESHOLD):
return True, 0.7
# Same developer but different names - might be related but keep separate
if similarity.developer_match and similarity.name_similarity > 0.5:
# Only merge if capabilities strongly overlap
if similarity.capability_overlap > 0.6:
return True, 0.6
return False, 0.0
def _merge_group(self, technologies: List[ExtractedTechnology]) -> GroupedTechnology:
"""Merge multiple extracted technologies into one grouped technology."""
if len(technologies) == 1:
tech = technologies[0]
return self._single_to_grouped(tech)
# Choose canonical name (most specific/complete)
canonical_name = self._choose_canonical_name([t.name for t in technologies])
# Collect alternate names
alternate_names = list(set(
t.name for t in technologies if t.name != canonical_name
))
# Choose best technology type
type_counts = defaultdict(int)
for t in technologies:
type_counts[t.technology_type] += 1
technology_type = max(type_counts, key=type_counts.get) if type_counts else "system"
# Merge descriptions (choose longest/most detailed)
descriptions = [t.description for t in technologies if t.description]
description = max(descriptions, key=len) if descriptions else ""
# Merge capabilities (deduplicate)
all_capabilities = []
seen_caps = set()
for t in technologies:
for cap in t.capabilities:
cap_lower = cap.lower()
if cap_lower not in seen_caps:
seen_caps.add(cap_lower)
all_capabilities.append(cap)
# Merge mechanisms
mechanisms = [t.mechanism for t in technologies if t.mechanism]
mechanism = max(mechanisms, key=len) if mechanisms else None
# Collect developers
developers = []
seen_devs = set()
for t in technologies:
if t.developer and t.developer.lower() not in seen_devs:
seen_devs.add(t.developer.lower())
developers.append(Developer(
name=t.developer,
type=t.developer_type or "unknown"
))
# Best TRL estimate (highest confidence based on source type)
trl_estimate = None
trl_confidence = 0.0
trl_evidence = []
for t in technologies:
if t.trl_estimate:
# SBIR/patent sources have higher confidence
conf = 0.9 if t.source_type in ("sbir", "patent") else 0.7
if conf > trl_confidence:
trl_estimate = t.trl_estimate
trl_confidence = conf
trl_evidence.extend(t.trl_evidence)
trl_evidence = list(set(trl_evidence))
# Build source evidence
sources = []
for t in technologies:
sources.append(SourceEvidence(
source_type=t.source_type,
source_name=t.source_type.upper(),
title=t.source_title,
url=t.source_url,
snippet=t.source_snippet,
contribution=self._determine_contribution(t),
))
return GroupedTechnology(
id=str(uuid.uuid4())[:8],
canonical_name=canonical_name,
alternate_names=alternate_names,
technology_type=technology_type,
description=description,
capabilities=all_capabilities,
mechanism=mechanism,
developers=developers,
trl_estimate=trl_estimate,
trl_confidence=trl_confidence,
trl_evidence=trl_evidence,
sources=sources,
source_count=len(sources),
grouping_confidence=0.8 if len(technologies) > 1 else 1.0,
grouped_from=[t.id for t in technologies],
)
def _single_to_grouped(self, tech: ExtractedTechnology) -> GroupedTechnology:
"""Convert a single extracted technology to grouped format."""
developers = []
if tech.developer:
developers.append(Developer(
name=tech.developer,
type=tech.developer_type or "unknown"
))
source = SourceEvidence(
source_type=tech.source_type,
source_name=tech.source_type.upper(),
title=tech.source_title,
url=tech.source_url,
snippet=tech.source_snippet,
contribution=self._determine_contribution(tech),
)
return GroupedTechnology(
id=tech.id,
canonical_name=tech.name,
alternate_names=[],
technology_type=tech.technology_type,
description=tech.description,
capabilities=tech.capabilities,
mechanism=tech.mechanism,
developers=developers,
trl_estimate=tech.trl_estimate,
trl_confidence=0.7,
trl_evidence=tech.trl_evidence,
sources=[source],
source_count=1,
grouping_confidence=1.0,
grouped_from=[tech.id],
)
def _choose_canonical_name(self, names: List[str]) -> str:
"""Choose the most specific/complete name as canonical."""
if not names:
return "Unknown Technology"
# Prefer longer, more specific names
# But penalize overly long names (likely full titles, not tech names)
def name_score(name: str) -> float:
length = len(name)
if length < 5:
return 0.3
elif length > 100:
return 0.4
elif length > 50:
return 0.6
else:
return 0.8 + (length / 100)
return max(names, key=name_score)
def _determine_contribution(self, tech: ExtractedTechnology) -> str:
"""Determine what this source contributes to the technology profile."""
contributions = []
if tech.source_type == "sbir":
contributions.append("R&D funding")
contributions.append("development status")
elif tech.source_type == "patent":
contributions.append("technical claims")
contributions.append("innovation details")
elif tech.source_type == "contract":
contributions.append("government interest")
contributions.append("deployment status")
elif tech.source_type == "news":
contributions.append("recent developments")
else:
contributions.append("general information")
if tech.developer:
contributions.append("developer info")
return ", ".join(contributions)
def _string_similarity(self, s1: str, s2: str) -> float:
"""Calculate string similarity using token-based comparison."""
if not s1 or not s2:
return 0.0
# Normalize
s1 = s1.lower().strip()
s2 = s2.lower().strip()
if s1 == s2:
return 1.0
# Token-based comparison
tokens1 = set(s1.split())
tokens2 = set(s2.split())
# Remove common words
stopwords = {'the', 'a', 'an', 'for', 'of', 'and', 'in', 'to', 'with'}
tokens1 -= stopwords
tokens2 -= stopwords
if not tokens1 or not tokens2:
return 0.0
# Jaccard similarity of tokens
intersection = len(tokens1 & tokens2)
union = len(tokens1 | tokens2)
return intersection / union if union > 0 else 0.0
def _jaccard_similarity(self, set1: Set[str], set2: Set[str]) -> float:
"""Calculate Jaccard similarity between two sets."""
if not set1 or not set2:
return 0.0
intersection = len(set1 & set2)
union = len(set1 | set2)
return intersection / union if union > 0 else 0.0
def _extract_keywords(self, texts: List[str]) -> List[str]:
"""Extract keywords from a list of texts."""
stopwords = {
'the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been',
'being', 'have', 'has', 'had', 'do', 'does', 'did', 'will',
'would', 'could', 'should', 'may', 'might', 'must', 'shall',
'can', 'need', 'for', 'of', 'to', 'in', 'on', 'at', 'by',
'from', 'with', 'and', 'or', 'not', 'that', 'this', 'it',
'as', 'its', 'also', 'than', 'such', 'into', 'which'
}
keywords = []
for text in texts:
if not text:
continue
words = text.lower().split()
for word in words:
word = word.strip('.,;:!?()[]{}"\'-')
if word and len(word) > 2 and word not in stopwords:
keywords.append(word)
return keywords

View File

@ -0,0 +1,242 @@
"""
Type definitions for Technology Extraction, Grouping, and Evaluation.
These types represent the technology-centric data model that replaces
the document-centric search result model.
"""
from dataclasses import dataclass, field
from typing import List, Dict, Any, Optional, Literal
@dataclass
class SourceEvidence:
"""Evidence from a single source contributing to a technology."""
source_type: str # sbir, patent, contract, news, web
source_name: str # Display name of the source
title: str # Title of the source document
url: str # URL to the source
snippet: str # Relevant excerpt
contribution: str # What this source contributes (e.g., "funding info", "technical details")
published_date: Optional[str] = None
award_amount: Optional[float] = None
award_id: Optional[str] = None
patent_number: Optional[str] = None
def to_dict(self) -> Dict[str, Any]:
return {
"source_type": self.source_type,
"source_name": self.source_name,
"title": self.title,
"url": self.url,
"snippet": self.snippet,
"contribution": self.contribution,
"published_date": self.published_date,
"award_amount": self.award_amount,
"award_id": self.award_id,
"patent_number": self.patent_number,
}
@dataclass
class Developer:
"""Organization developing a technology."""
name: str
type: Literal["company", "university", "government", "lab", "unknown"] = "unknown"
location: Optional[str] = None
def to_dict(self) -> Dict[str, Any]:
return {
"name": self.name,
"type": self.type,
"location": self.location,
}
@dataclass
class ExtractedTechnology:
"""
A technology extracted from a single search result.
This is the output of Stage 3 (Technology Extraction).
Multiple ExtractedTechnology instances may be grouped into
a single GroupedTechnology if they describe the same tech.
"""
# Extraction metadata
id: str # Unique ID for this extraction
source_result_id: str # Links back to original SearchResult
extraction_confidence: float # 0-1, how confident is extraction
# Technology identity
name: str # Specific technology name
technology_type: str # sensor, algorithm, material, system, etc.
# Technology details
description: str # What it is (1-2 sentences)
capabilities: List[str] # What it does
mechanism: Optional[str] = None # How it works (if described)
# Developer
developer: Optional[str] = None # Organization name
developer_type: Optional[str] = None
# Maturity
trl_estimate: Optional[int] = None
trl_evidence: List[str] = field(default_factory=list)
# Source info
source_type: str = ""
source_url: str = ""
source_title: str = ""
source_snippet: str = ""
def to_dict(self) -> Dict[str, Any]:
return {
"id": self.id,
"source_result_id": self.source_result_id,
"extraction_confidence": self.extraction_confidence,
"name": self.name,
"technology_type": self.technology_type,
"description": self.description,
"capabilities": self.capabilities,
"mechanism": self.mechanism,
"developer": self.developer,
"developer_type": self.developer_type,
"trl_estimate": self.trl_estimate,
"trl_evidence": self.trl_evidence,
"source_type": self.source_type,
"source_url": self.source_url,
"source_title": self.source_title,
"source_snippet": self.source_snippet,
}
@dataclass
class GroupedTechnology:
"""
A technology consolidated from multiple sources.
This is the output of Stage 4 (Technology Grouping).
Merges information from multiple ExtractedTechnology instances
that describe the same underlying technology.
"""
# Identity
id: str
canonical_name: str # Best name for this technology
alternate_names: List[str] = field(default_factory=list)
technology_type: str = ""
# Merged information
description: str = "" # Best/combined description
capabilities: List[str] = field(default_factory=list)
mechanism: Optional[str] = None
# Developers
developers: List[Developer] = field(default_factory=list)
# Maturity (highest confidence estimate)
trl_estimate: Optional[int] = None
trl_confidence: float = 0.0
trl_evidence: List[str] = field(default_factory=list)
# Source evidence
sources: List[SourceEvidence] = field(default_factory=list)
source_count: int = 0
# Grouping metadata
grouping_confidence: float = 1.0
grouped_from: List[str] = field(default_factory=list) # IDs of ExtractedTechnologies
def to_dict(self) -> Dict[str, Any]:
return {
"id": self.id,
"canonical_name": self.canonical_name,
"alternate_names": self.alternate_names,
"technology_type": self.technology_type,
"description": self.description,
"capabilities": self.capabilities,
"mechanism": self.mechanism,
"developers": [d.to_dict() for d in self.developers],
"trl_estimate": self.trl_estimate,
"trl_confidence": self.trl_confidence,
"trl_evidence": self.trl_evidence,
"sources": [s.to_dict() for s in self.sources],
"source_count": self.source_count,
"grouping_confidence": self.grouping_confidence,
"grouped_from": self.grouped_from,
}
@dataclass
class CriterionResult:
"""Result of evaluating a technology against a single criterion."""
criterion: str
weight: str # must_have, should_have, nice_to_have
assessment: Literal["SUPPORTS", "PARTIAL", "DOES_NOT_SUPPORT", "UNKNOWN"]
evidence: str # Why this assessment
source: Optional[str] = None # Which source provided evidence
def to_dict(self) -> Dict[str, Any]:
return {
"criterion": self.criterion,
"weight": self.weight,
"assessment": self.assessment,
"evidence": self.evidence,
"source": self.source,
}
@dataclass
class CapabilityMatch:
"""
Assessment of how well a technology matches the capability need.
This is the output of Stage 5 (Capability Fit Evaluation).
"""
# Overall assessment
overall_fit: Literal["HIGH", "MEDIUM", "LOW", "UNCERTAIN"]
fit_score: int # 0-100
# Per-criterion evaluation
criteria_results: List[CriterionResult] = field(default_factory=list)
# Narrative
how_it_addresses_need: str = "" # 2-3 sentences
key_strengths: List[str] = field(default_factory=list)
key_limitations: List[str] = field(default_factory=list)
key_unknowns: List[str] = field(default_factory=list)
# Recommendation
investigation_worthy: bool = False
investigation_rationale: str = ""
def to_dict(self) -> Dict[str, Any]:
return {
"overall_fit": self.overall_fit,
"fit_score": self.fit_score,
"criteria_results": [c.to_dict() for c in self.criteria_results],
"how_it_addresses_need": self.how_it_addresses_need,
"key_strengths": self.key_strengths,
"key_limitations": self.key_limitations,
"key_unknowns": self.key_unknowns,
"investigation_worthy": self.investigation_worthy,
"investigation_rationale": self.investigation_rationale,
}
@dataclass
class EvaluatedTechnology:
"""
A technology with capability fit assessment.
This is the final output entity that combines:
- Technology information (from GroupedTechnology)
- Capability match assessment (from evaluation)
"""
technology: GroupedTechnology
capability_match: CapabilityMatch
def to_dict(self) -> Dict[str, Any]:
tech_dict = self.technology.to_dict()
tech_dict["capability_match"] = self.capability_match.to_dict()
return tech_dict