feat: Add Studio UI, intake system, and extractor improvements
Dashboard: - Add Studio page with drag-drop model upload and Claude chat - Add intake system for study creation workflow - Improve session manager and context builder - Add intake API routes and frontend components Optimization Engine: - Add CLI module for command-line operations - Add intake module for study preprocessing - Add validation module with gate checks - Improve Zernike extractor documentation - Update spec models with better validation - Enhance solve_simulation robustness Documentation: - Add ATOMIZER_STUDIO.md planning doc - Add ATOMIZER_UX_SYSTEM.md for UX patterns - Update extractor library docs - Add study-readme-generator skill Tools: - Add test scripts for extraction validation - Add Zernike recentering test Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -65,6 +65,16 @@ from optimization_engine.extractors.extract_zernike_figure import (
|
||||
extract_zernike_figure_rms,
|
||||
)
|
||||
|
||||
# Displacement extraction
|
||||
from optimization_engine.extractors.extract_displacement import (
|
||||
extract_displacement,
|
||||
)
|
||||
|
||||
# Mass extraction from BDF
|
||||
from optimization_engine.extractors.extract_mass_from_bdf import (
|
||||
extract_mass_from_bdf,
|
||||
)
|
||||
|
||||
# Part mass and material extractor (from NX .prt files)
|
||||
from optimization_engine.extractors.extract_part_mass_material import (
|
||||
extract_part_mass_material,
|
||||
@@ -145,72 +155,76 @@ from optimization_engine.extractors.spec_extractor_builder import (
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
# Displacement extraction
|
||||
"extract_displacement",
|
||||
# Mass extraction (from BDF)
|
||||
"extract_mass_from_bdf",
|
||||
# Part mass & material (from .prt)
|
||||
'extract_part_mass_material',
|
||||
'extract_part_mass',
|
||||
'extract_part_material',
|
||||
'PartMassExtractor',
|
||||
"extract_part_mass_material",
|
||||
"extract_part_mass",
|
||||
"extract_part_material",
|
||||
"PartMassExtractor",
|
||||
# Stress extractors
|
||||
'extract_solid_stress',
|
||||
'extract_principal_stress',
|
||||
'extract_max_principal_stress',
|
||||
'extract_min_principal_stress',
|
||||
"extract_solid_stress",
|
||||
"extract_principal_stress",
|
||||
"extract_max_principal_stress",
|
||||
"extract_min_principal_stress",
|
||||
# Strain energy
|
||||
'extract_strain_energy',
|
||||
'extract_total_strain_energy',
|
||||
'extract_strain_energy_density',
|
||||
"extract_strain_energy",
|
||||
"extract_total_strain_energy",
|
||||
"extract_strain_energy_density",
|
||||
# SPC forces / reactions
|
||||
'extract_spc_forces',
|
||||
'extract_total_reaction_force',
|
||||
'extract_reaction_component',
|
||||
'check_force_equilibrium',
|
||||
"extract_spc_forces",
|
||||
"extract_total_reaction_force",
|
||||
"extract_reaction_component",
|
||||
"check_force_equilibrium",
|
||||
# Zernike (telescope mirrors) - Standard Z-only method
|
||||
'ZernikeExtractor',
|
||||
'extract_zernike_from_op2',
|
||||
'extract_zernike_filtered_rms',
|
||||
'extract_zernike_relative_rms',
|
||||
"ZernikeExtractor",
|
||||
"extract_zernike_from_op2",
|
||||
"extract_zernike_filtered_rms",
|
||||
"extract_zernike_relative_rms",
|
||||
# Zernike OPD (RECOMMENDED - uses actual geometry, no shape assumption)
|
||||
# Supports annular apertures via inner_radius parameter
|
||||
'ZernikeOPDExtractor',
|
||||
'extract_zernike_opd',
|
||||
'extract_zernike_opd_filtered_rms',
|
||||
'compute_zernike_coefficients_annular',
|
||||
"ZernikeOPDExtractor",
|
||||
"extract_zernike_opd",
|
||||
"extract_zernike_opd_filtered_rms",
|
||||
"compute_zernike_coefficients_annular",
|
||||
# Zernike Analytic (parabola-based with lateral displacement correction)
|
||||
'ZernikeAnalyticExtractor',
|
||||
'extract_zernike_analytic',
|
||||
'extract_zernike_analytic_filtered_rms',
|
||||
'compare_zernike_methods',
|
||||
"ZernikeAnalyticExtractor",
|
||||
"extract_zernike_analytic",
|
||||
"extract_zernike_analytic_filtered_rms",
|
||||
"compare_zernike_methods",
|
||||
# Backwards compatibility (deprecated)
|
||||
'ZernikeFigureExtractor',
|
||||
'extract_zernike_figure',
|
||||
'extract_zernike_figure_rms',
|
||||
"ZernikeFigureExtractor",
|
||||
"extract_zernike_figure",
|
||||
"extract_zernike_figure_rms",
|
||||
# Temperature (Phase 3 - thermal)
|
||||
'extract_temperature',
|
||||
'extract_temperature_gradient',
|
||||
'extract_heat_flux',
|
||||
'get_max_temperature',
|
||||
"extract_temperature",
|
||||
"extract_temperature_gradient",
|
||||
"extract_heat_flux",
|
||||
"get_max_temperature",
|
||||
# Modal mass (Phase 3 - dynamics)
|
||||
'extract_modal_mass',
|
||||
'extract_frequencies',
|
||||
'get_first_frequency',
|
||||
'get_modal_mass_ratio',
|
||||
"extract_modal_mass",
|
||||
"extract_frequencies",
|
||||
"get_first_frequency",
|
||||
"get_modal_mass_ratio",
|
||||
# Part introspection (Phase 4)
|
||||
'introspect_part',
|
||||
'get_expressions_dict',
|
||||
'get_expression_value',
|
||||
'print_introspection_summary',
|
||||
"introspect_part",
|
||||
"get_expressions_dict",
|
||||
"get_expression_value",
|
||||
"print_introspection_summary",
|
||||
# Custom extractor loader (Phase 5)
|
||||
'CustomExtractor',
|
||||
'CustomExtractorLoader',
|
||||
'CustomExtractorContext',
|
||||
'ExtractorSecurityError',
|
||||
'ExtractorValidationError',
|
||||
'load_custom_extractors',
|
||||
'execute_custom_extractor',
|
||||
'validate_custom_extractor',
|
||||
"CustomExtractor",
|
||||
"CustomExtractorLoader",
|
||||
"CustomExtractorContext",
|
||||
"ExtractorSecurityError",
|
||||
"ExtractorValidationError",
|
||||
"load_custom_extractors",
|
||||
"execute_custom_extractor",
|
||||
"validate_custom_extractor",
|
||||
# Spec extractor builder
|
||||
'SpecExtractorBuilder',
|
||||
'build_extractors_from_spec',
|
||||
'get_extractor_outputs',
|
||||
'list_available_builtin_extractors',
|
||||
"SpecExtractorBuilder",
|
||||
"build_extractors_from_spec",
|
||||
"get_extractor_outputs",
|
||||
"list_available_builtin_extractors",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user