Commit Graph
88 Commits
Author SHA1 Message Date
SikongJueluo 2da17e101b feat(rtl): migrate CAM interface to handshake protocol with integrated noise generation
BREAKING CHANGE: CAM write and query interface replaced with standard valid/ready
handshake. wr_en/wr_row/wr_hash → wr_valid/wr_ready/wr_addr/write_hash.
External noise_mask_lanes_flat removed; noise generation now handled internally
by cam_noisy module with configurable rate via parameters.

- cam_top: add parameters (NOISE_EN, NOISE_RATE_NUM/DEN, NOISE_GEN/SAMPLE_BITS, NOISE_SEED)
- cam_top: replace cam_core with cam_noisy (integrated noise generation)
- match_engine: remove external noise_mask_lanes_flat input
- hw/sim: update Makefile with noise parameters and compile args
- hw/sim/model: add generate_write_flip_mask() and xorshift64() matching RTL behavior
- hw/sim/tests: adapt testbench to new handshake protocol
2026-05-04 18:03:06 +08:00
SikongJueluo 0ae6d757dc refactor(scripts): extract shared utilities into common module
- Move load_env_file, parse_timeout_seconds, build_remote_script, and
  build_ssh_command to scripts/common.py
- Update remote_docker_run.py to import from common module
- Improves code organization and reusability
2026-05-03 19:49:45 +08:00
SikongJueluo 8b8e4d3118 build(simulation): improve verilator simulation infrastructure
- Add verilator to dependencies
- Add configurable logging via QUIET/VERBOSE/COCOTB_LOG_LEVEL env vars
- Add optional warning suppression (SUPPRESS_VERILATOR_WARNINGS)
- Clean up and restructure Makefile
2026-05-03 15:33:17 +08:00
SikongJueluo 7450505a86 feat(remote): unify remote execution workflow with env-based config
- Replace hardcoded SSH/docker targets with environment variables
- Add remote-check, remote-dry, remote-test, remote-test-one recipes
- Add remote cmd for arbitrary command execution in docker container
2026-05-03 15:32:32 +08:00
SikongJueluo f5daaa2667 refactor(cam): extract match engine into separate module and centralize parameters
- Split cam_core into pure memory (cam_core.sv) and match engine (match_engine.sv)
- Add cam_params.svh with centralized parameter definitions (NUM_ROWS, HASH_BITS, LANES, etc.)
- Update cam_top.sv to use shared parameters and compose match_engine
- Update Makefile to include new match_engine module and correct Verilator define syntax
2026-05-02 23:28:32 +08:00
SikongJueluo f71bf06484 feat(hw): add XNOR-popcount CAM design with cocotb verification
Implement a multi-lane Content Addressable Memory (CAM) that scores
rows by XNOR popcount against a query hash and returns the top-1 match.

RTL modules:
- popcount: parallel group-based population count
- argmax_update: iterative best-match tracking with tie-break
- cam_core: parameterized scanning engine (NUM_ROWS/HASH_BITS/LANES)
  with optional SIM_NOISE and SIM_DEBUG ifdef guards
- cam_top: thin wrapper exposing cam_core ports

Verification:
- Python reference model (ref_model.py) for score-level golden comparison
- cocotb testbench (test_cam_basic.py) covering write/query/reset and
  external noise mask scenarios with score debug verification
- Noise sweep script (sweep_noise.py) measuring top-1 stability under
  configurable bit-flip rates
- Verilator-oriented Makefile with parameterizable compile options
2026-05-02 23:26:16 +08:00
SikongJueluo ad45123022 chore: migrate habitat dependencies to conda and add cocotb for hardware verification
- Move habitat-baselines and habitat-lab from pip to conda environment
- Add cocotb and cocotb-tools to pyproject.toml dependencies
- Update ty environment roots to include hw/sim directory
- Add sim/sim_build to gitignore
- Create CLAUDE.md with project spec, coding guidelines, and directory structure
- Update uv.lock to reflect dependency changes
2026-05-02 23:24:59 +08:00
SikongJueluo d9745f45dc refactor(visualization): enhance proposal filtering visualization 2026-04-18 23:24:30 +08:00
SikongJueluo e3cdc1c6e7 chore(project): update .envrc and justfile for server, and update marimo 2026-04-18 21:10:22 +08:00
SikongJueluo 8a56c9649d refactor(verification): batch pipeline inference with progress tracking
- Increase verification params: image_size 512→768, rooms 4→5, views 6→12
- Refactor single-batch inference to chunked batch processing with mo.progress_bar
- Extract debug_meta and hash_batches from output for clearer variable flow
- Add progress bars to room-view snapshot saving and scene graph building
- Add .ruff_cache/, .pytest_cache/, .sisyphus/ to .justfile upload excludes
2026-04-11 17:09:39 +08:00
SikongJueluo 79b49f122a feat(test): add collect test images notebook and replace BitImageProcessorFast 2026-04-11 15:22:22 +08:00
SikongJueluo 01017277c3 feat(project): update marimo and env autoload 2026-04-11 15:21:11 +08:00
SikongJueluo eb016385f8 refactor(sync): improve topdown rendering and make justfile adapt to windows 2026-04-06 19:55:52 +08:00
SikongJueluo 2c78f4b662 refactor(verification): improve object creation / matching and image saving 2026-04-06 13:27:02 +08:00
SikongJueluo 37b4a08398 refactor(pipeline): support multi-object selection in frame processing 2026-04-06 10:27:23 +08:00
SikongJueluo 3638ffdb8d feat(compressors): refactor pipeline with FramePacket dataclass and unified process_batch
- Add FramePacket dataclass to encapsulate per-image pipeline state
- Rename internal methods with underscore prefix convention
- Replace separate filter_batch/crop_batch with unified process_batch method
- Update notebook to use new HashPipeline API
2026-04-04 20:09:05 +08:00
SikongJueluo 94ed05a039 feat(compressors): add OWLv2 bbox crop to HashPipeline and refactor image utilities
- Add Owlv2ForObjectDetection and Owlv2Processor imports to model_loader
- Refactor load_dino_model to return tuple of processor and model
- Rewrite generate_proposals_batch to group images by bbox count for efficient batching
- Add _normalize_single_bbox_list helper for bbox normalization
- Update verification.py to use new pipeline architecture with detect/segment/filter/crop steps
2026-04-04 15:27:47 +08:00
SikongJueluo 5f41cf5794 feat(compressors): add OWLv2 bbox crop to HashPipeline and refactor image utilities
- Add crop_batch method to HashPipeline for cropping images using OWLv2 detection boxes
- Integrate crop_batch into pipeline forward pass (extract_hash and extract_features)
- Move extract_masked_region from compressors/proposal/utils.py to utils/image.py
- Add crop_image_by_bbox utility function in utils/image.py
- Update type annotations to use dict[str, Any] instead of bare dict
- Update .justfile to add memory server command
- Update marimo dependency to >=0.22.0
- Update nvidia CUDA package markers for platform compatibility
2026-04-03 19:43:43 +08:00
SikongJueluo 4e16e38f32 refactor(compressors): migrate pipeline to OWLv2-based detection with text labels
- Replace bbox-prompted segmentation with OWLv2 text-guided object detection
- Refactor HashPipeline from nn.Module to plain class with modular stage methods
- Add detect_batch, segment_batch, filter_batch for explicit pipeline stages
- Rename forward to forward_batch with text_labels API instead of bboxes
- Add mask_scoring_config, score_threshold, postprocess_threshold configuration
- Update model_loader to expose Dinov2Model type annotation
2026-04-03 18:07:17 +08:00
SikongJueluo 4918b654e7 refactor(compressors): migrate to centralized model loaders
- Refactor model_loader.py: improve return type annotations from tuple[Any, Any] to tuple[AutoImageProcessor, AutoModel]
- Refactor proposal/core.py: add input validation for mask array dimensionality, handle 2D masks and batch dimensions gracefully
- Refactor proposal_segament.ipynb: replace inline model loading with centralized load_owlv2_model() and load_sam_model() functions, use batched detect_objects_batch() and generate_proposals_batch() APIs
2026-04-03 15:00:14 +08:00
SikongJueluo af0531a5eb feat(compressors/proposal): add OWLv2 object detection pipeline and typed results
- switch OWLv2 loader return type to Owlv2ForObjectDetection
- add detect_objects and detect_objects_batch with two-stage score filtering
- add DetectionResult typed dict and conversion helper for post-processed outputs
- export new detection APIs from proposal module
2026-04-02 20:26:13 +08:00
SikongJueluo 42acb3ee1b refactor(compressors): switch SAM from automatic mask generation to bbox-prompted segmentation
- Replace SAM2AutomaticMaskGenerator pipeline with Sam2Processor+Sam2Model
- Freeze SAM model parameters at load time, removing torch.no_grad() at call sites
- Rewrite proposal/core.py to use bbox prompts instead of automatic point sampling
- Add bboxes parameter to all HashPipeline public methods (forward, forward_dataset, extract_features, extract_features_dataset)
- Extract mask filtering logic (_filter_masks) from proposal into pipeline
- Rename object_score/ to filter/
- Add load_owlv2_model to model_loader
- Rename notebooks/test.py to habitat_sim_setup.py
2026-04-02 16:47:11 +08:00
SikongJueluo eaf02cc97a chore: update dev environment and sync workflow
- Add nil LSP package to devenv.nix
- Add datasets and rich.progress imports to feature_retrieval.py
- Update pyproject.toml ty environment config
- Expand .stignore with cache directories
- Update uv.lock dependency lock
- Update AGENTS.md, adding the content of development environment11
2026-04-02 15:02:51 +08:00
SikongJueluo aedcb25610 feat(notebooks): add proposal segmentation notebook and enhance verification 2026-04-01 11:54:23 +08:00
SikongJueluo f06b0625b4 refactor(verification): reorganize imports and function structure 2026-03-30 22:07:35 +08:00
SikongJueluo cb93d83868 feat(simulator): add image saving utilities for verification 2026-03-30 21:49:51 +08:00
SikongJueluo 26b00e556a refactor(compressors): reorganize SAM utilities into proposal module 2026-03-30 21:31:47 +08:00
SikongJueluo f421b0c56b chore(tests): remove all test files from mini-nav 2026-03-30 21:31:47 +08:00
SikongJueluo e544a7e84f docs(agents): update agent guidelines and remove memorix references 2026-03-30 21:31:46 +08:00
SikongJueluo a809803979 feat(compressors): add object scoring and selection for SAM masks 2026-03-30 16:50:35 +08:00
SikongJueluo f6c1a67e88 feat(verification): add batch segmentation and image saving 2026-03-28 21:30:13 +08:00
SikongJueluo f604c85a79 feat(pipeline): add batch processing for scene graph construction 2026-03-28 19:37:52 +08:00
SikongJueluo 3c9a6f6eaf refactor(simulator): extract habitat simulator and visualization modules 2026-03-28 17:05:29 +08:00
SikongJueluo 817f45b935 feat(scenegraph): add image storage and verification UI 2026-03-28 16:02:31 +08:00
SikongJueluo 1c9752cf9e refactor(verification): add progress bars and simplify device handling 2026-03-26 20:08:16 +08:00
SikongJueluo 968819e113 refactor(compressors): consolidate pipeline and improve mask handling 2026-03-26 19:44:48 +08:00
SikongJueluo 90d5a8f08a refactor(pipeline): integrate SAM segmentation and modularize model loading 2026-03-26 19:44:47 +08:00
SikongJueluo 9e6339e580 chore(deps): add sam2 dependency and update docker config 2026-03-26 19:44:47 +08:00
SikongJueluo 1af9a9caa1 feat(notebooks): add habitat simulation and room visualization 2026-03-24 21:03:02 +08:00
SikongJueluo d2481684ac feat(scenegraph): add basic scene graph data structures 2026-03-24 19:49:24 +08:00
SikongJueluo 55750f1087 chore(project): update configuration files and dependencies 2026-03-24 19:49:06 +08:00
SikongJueluo f60669cd53 chore(dev): update environment and tooling configuration 2026-03-24 14:19:40 +08:00
SikongJueluo 2985b68f9a fix(env): environment setup correctly and pass habitat test 2026-03-18 21:08:38 +08:00
SikongJueluo 5885702bed chore: use micromamba and uv to manage python environment 2026-03-18 20:14:30 +08:00
SikongJueluo 431f6844ef chore: remove experimental OPSX workflow commands and skills
- remove OPSX Claude commands for apply, archive, explore, and propose
- remove matching OpenSpec workflow skills under `.claude/skills`
- clean up deprecated experimental workflow integration from `.claude`
2026-03-17 20:59:56 +08:00
SikongJueluo 34235c605d chore(deps): update Python version and project documentation 2026-03-12 12:53:13 +08:00
SikongJueluo b39ee74e99 feat(benchmark): add multi-object retrieval benchmark with SAM segmentation 2026-03-12 12:52:51 +08:00
SikongJueluo 2466ab28cd feat(serena): Add Serena project configuration 2026-03-08 15:19:26 +08:00
SikongJueluo 4da08dc3d3 refactor(compressors): Simplify module by removing SAM/DINO separation code
- Remove dino_compressor.py and segament_compressor.py
- Rewrite pipeline.py to inline DINO into HashPipeline
- Maintain backward compatibility: SAMHashPipeline alias
- Update tests and benchmark.py
2026-03-07 22:55:13 +08:00
SikongJueluo c8dc5f9301 docs: update project documentation and configuration 2026-03-07 15:45:28 +08:00
SikongJueluo bf02a05ffc feat(opsx): add OpenSpec workflow commands and skills 2026-03-07 15:02:08 +08:00
SikongJueluo e832f9d656 refactor(ui): replace tqdm with rich for enhanced console output 2026-03-06 17:07:59 +08:00
SikongJueluo 4a6918ce56 refactor(cli): centralize Typer app creation and command registration 2026-03-06 16:07:12 +08:00
SikongJueluo 7dbd704d6b refactor(cli): migrate from argparse to typer for command-line interface 2026-03-06 11:41:44 +08:00
SikongJueluo 33f2b8f542 chore(config): remove Claude-specific files and update gitignore 2026-03-06 10:35:43 +08:00
SikongJueluo 5be4709acf feat(utils): add feature extraction utilities and tests 2026-03-05 21:42:49 +08:00
SikongJueluo a16b376dd7 refactor(benchmarks): modularize benchmark system with config-driven execution 2026-03-02 20:03:38 +08:00
SikongJueluo a7b01cb49e feat(compressors): add SAM+DINO+Hash pipeline for object feature extraction 2026-03-02 14:30:40 +08:00
SikongJueluo 370c4a6588 feat(synthesizer): add CSV export and progress bar for dataset generation 2026-03-02 13:02:27 +08:00
SikongJueluo f0479cc69b refactor(configs, data_loading): improve code clarity and add docstrings 2026-03-01 16:22:53 +08:00
SikongJueluo 88d1d0790d refactor(data-loading): migrate to Hugging Face datasets and reorganize structure 2026-02-28 21:53:28 +08:00
SikongJueluo 77d715a2cf feat(dataset): add synthetic dataset generation and configuration 2026-02-28 21:51:57 +08:00
SikongJueluo f61857feba fix(compressors): fix the wrong usage of loss function in training pipeline 2026-02-28 17:51:14 +08:00
SikongJueluo 1926cb53e2 feat(compressors): replace float/int compressors with hash-based compression for CAM 2026-02-24 22:54:41 +08:00
SikongJueluo 5f9d2bfcd8 refactor(benchmarks): overhaul evaluation pipeline with LanceDB integration 2026-02-10 17:39:53 +08:00
SikongJueluo 6f60cd94d3 chore(project): add basedpyright to support vibe coding 2026-02-10 17:02:16 +08:00
SikongJueluo 7f6732edeb feat(benchmarks): add evaluation framework for DINO-based compressors 2026-02-10 11:19:17 +08:00
SikongJueluo 3ba3705ba6 refactor(configs): remove unused settings 2026-02-08 23:14:40 +08:00
SikongJueluo 6c34a3cefb chore(tests): remove obsolete test files for compressor and extractor 2026-02-08 18:19:24 +08:00
SikongJueluo 76a572ee12 feat(train): add checkpointing and training interruption handling 2026-02-08 17:28:19 +08:00
SikongJueluo 8f417b674c feat(compressors): add neural compression modules and training pipeline 2026-02-08 16:41:34 +08:00
SikongJueluo b93381accc refactor(project): remove feature compressor module and update docs 2026-02-07 15:36:37 +08:00
SikongJueluo 051bae5483 feat(visualizer): add cosine similarity computation for image comparison 2026-02-07 15:05:29 +08:00
SikongJueluo d6bb233651 feat(visualizer): implement image selection and display from grid 2026-02-07 12:00:40 +08:00
SikongJueluo aa6baa87fe feat(docs): update test principle for development 2026-02-07 11:47:11 +08:00
SikongJueluo 0b10ab6cfa feat(visualizer): add image selection and binary data storage 2026-02-06 17:00:23 +08:00
SikongJueluo e859fef2b3 feat(visualizer): integrate image upload with similarity search 2026-02-05 22:28:28 +08:00
SikongJueluo a0df45ab05 feat(feature-retrieval): add single image feature extraction method 2026-02-05 21:12:08 +08:00
SikongJueluo 7ce97c1965 refactor(config): simplify config manager to single unified config 2026-02-05 15:48:36 +08:00
SikongJueluo 3d90e75441 docs: add DEVELOPMENT.md with project guidelines 2026-02-05 14:47:24 +08:00
SikongJueluo ea747f0e5b refactor(feature-retrieval): convert standalone function to singleton class 2026-02-05 14:11:46 +08:00
SikongJueluo 90087194ec feat(feature-retrieval): add label mapping and visualization upload 2026-02-05 13:29:22 +08:00
SikongJueluo 701fa9f289 feat(visualizer): add Dash-based web interface for data visualization 2026-02-03 20:28:01 +08:00
SikongJueluo 9efdbb3327 feat(database): add vector database with ConfigType enum 2026-02-03 17:48:09 +08:00
SikongJueluo cf83c09165 feat: initialize project with Python 3.10 and feature retrieval module 2026-02-01 18:05:26 +08:00
SikongJueluo 9e9070bdb4 feat(configs): implement Pydantic configuration system with type safety 2026-02-01 12:11:51 +08:00
SikongJueluo 1454647aa6 feat(feature-compressor): add DINOv2 feature extraction and compression pipeline 2026-01-31 10:34:22 +08:00
SikongJueluo f9a359fc28 Init python and env 2026-01-30 13:28:59 +08:00