Trình mô phỏng WiFi dựa trên WebGPU
(wifi-solver.com)- Đây là trình mô phỏng web dùng tính toán dựa trên vật lý để xác định cường độ tín hiệu WiFi thay đổi theo cấu trúc và vật liệu của ngôi nhà, giúp chọn vị trí đặt router
- Mô phỏng được chạy cục bộ theo thời gian thực trên thiết bị của người dùng, và có thể thay đổi màu sắc hoặc tốc độ của mô phỏng nền
- Có thể chạy mô phỏng mẫu áp dụng sơ đồ mặt bằng nhà ở thực tế cùng vật liệu tường và cửa sổ, đồng thời cung cấp cả video demo và tài liệu
- Tự tính trực tiếp cách sóng điện từ di chuyển khi đi xuyên qua vật liệu, và cho thấy ví dụ sóng bị khúc xạ quanh các hộp văn bản
- Vì là phương pháp có khối lượng tính toán lớn, nó dùng WebGPU để tận dụng GPU và mô phỏng nhanh hơn trong trình duyệt
Mô phỏng WiFi để chọn vị trí đặt router
- WiFi Solver là một engine mô phỏng cho thấy tín hiệu WiFi từ điểm truy cập lan truyền như thế nào trong nhà
- Tập trung vào việc tính cường độ tín hiệu WiFi trong nhà để xác định vị trí đặt router WiFi
- Mọi mô phỏng đều được chạy trực tiếp trên thiết bị của người dùng
- Có thể chạy ví dụ áp dụng mặt bằng nhà ở thực tế và các vật liệu chân thực cho tường và cửa sổ
- Có thể xem một số tính năng qua video demo, và xem thêm thông tin chi tiết trong tài liệu
- Có thể trải nghiệm trong một ngày, hoặc thanh toán một lần để có quyền truy cập vĩnh viễn
Tính toán vật lý và tận dụng WebGPU
- WiFi Solver trực tiếp mô phỏng cách sóng điện từ di chuyển xuyên qua vật liệu với mức xấp xỉ tối thiểu
- Khi cuộn trang, có thể thấy sóng bị khúc xạ quanh các hộp văn bản
- Vì đây là cách tiếp cận tốn kém chi phí tính toán, nó sử dụng WebGPU để tận dụng GPU và tăng tốc mô phỏng
- Ở phía dưới, có thể thêm nguồn mới vào mô phỏng nền
- Có thể xem các công việc khác của tác giả trên blog
1 bình luận
Ý kiến trên Hacker News
Phần trực quan hóa rất đẹp, nhưng nó tập trung quá nhiều vào bản thân các gợn sóng hơn là mẫu phủ sóng thực tế với bước sóng 6–12,5 cm, nên kém hữu ích hơn các công cụ khác nếu dùng để kiểm tra vùng phủ sóng
Dù vậy, với vai trò một dự án nghệ thuật thì khá thú vị, và nó cũng gợi nhớ đến projectM, một Milkdrop mã nguồn mở hỗ trợ WebGL https://github.com/projectM-visualizer/projectm/blob/master/..., cũng như Geisswerks, một trong những bản gốc https://www.geisswerks.com/
Nếu thích những thứ kiểu này, có thể bạn cũng sẽ thích NestDrop, có tính năng trực quan hóa âm nhạc cho VJ và chiếu bên trong mái vòm https://nestimmersion.ca/nestdrop.php
Có lỗi: nếu cứ bấm nút “add a new source”, mảng có kích thước tối đa cố định 128 sẽ bị tràn và màn hình sẽ hiện ngoại lệ JavaScript
Ngoài ra, có thể chỉ xảy ra trên card AMD, nhưng các hộp văn bản khiến mô phỏng bị hỏng nếu cuộn theo một cách nhất định. Nếu Page Up/Down nhanh hoặc kéo xuống tận cuối rồi rung vị trí cuộn, dữ liệu lỗi sẽ lan ra làm toàn màn hình đầy nhiễu, đen hoặc trắng; còn nếu bật chế độ 3D thì thành một mớ polygon hỗn loạn
“Khi cuộn, bạn có thể thấy sóng bị khúc xạ quanh các hộp văn bản” — đúng là một tính năng ngầu dù chẳng hữu dụng mấy
Trước đây tôi từng muốn làm thứ tương tự với âm thanh. Ý tưởng là đặt các thiết bị kết hợp micro và loa ở những vị trí chiến lược để khử tiếng ồn chủ động trong phòng, chứ không phải bằng tai nghe
Nghĩ thêm một chút thì thấy do giao thoa, có thể xuất hiện các vùng yên tĩnh và các vùng âm thanh bị nhân đôi, nên không lý tưởng nhưng vẫn thú vị; nghĩ tiếp nữa thì nhận ra phải xử lý trong không gian 3 chiều, khiến độ phức tạp cấu hình tăng lên rất nhiều. Nhìn hiệu ứng khúc xạ thì có vẻ điều tương tự cũng áp dụng ở đây
Tuy nhiên nó chỉ hoạt động với âm thanh thông thường có tính định hướng yếu, chẳng hạn loa ở xa, còn những thứ như tiếng người thì khó xóa. Nó có thể khá hữu ích trong câu lạc bộ để mỗi bàn vẫn trò chuyện bình thường được. Vấn đề là công nghệ liên quan hiện đang bị ràng buộc bởi bằng sáng chế; dù làm ra khá dễ, vẫn phải chờ bằng sáng chế hết hạn hoặc trả phí cấp phép
Phần trực quan hóa thật sự rất ấn tượng. Phần xử lý nhiều bộ phát và đoạn cuối khi cuộn làm tôi nhớ đến https://apenwarr.ca/beamlab/, nơi minh họa beamforming
Cách dễ nhất để xem luồng trong demo này là tắt số 3 ở menu bên phải để chỉ còn 2 bộ phát, nhấn nút “r”, rồi nhấp hoặc kéo để xem quá trình tối ưu hóa chùm tia. Bạn cũng có thể xem thống kê độ lợi công suất thu ở bên phải
Về mặt hiển thị thì demo này thú vị nhất, nhưng với người muốn tối ưu vị trí Wi-Fi trong nhà, gói miễn phí của Hamina có khả năng hữu ích hơn nhiều https://www.hamina.com/planner
Nhược điểm là bắt tạo tài khoản, còn ưu điểm là nó cung cấp nhiều chế độ xem tóm tắt bám sát các chỉ số và tính năng Wi-Fi thông thường, thay vì quá chú trọng vào việc hiển thị chính bản thân mô phỏng sóng
Tôi đã bấm liên kết thêm nguồn mới ở phía dưới quá nhiều lần và gặp Unexpected Application Error
Lỗi cốt lõi là
RangeError: offset is out of bounds, xảy ra trongFloat32Array.set()vàPi.makeUniformBufferhttps://wifi-solver.com/dist/bundle-UKQ5A5W6.js:32:118833Một dự án thú vị tương tự là https://cemsim.com/. Không phải do tôi làm
Tôi đã kỳ vọng ở đây là xử lý vô tuyến SDR, tức là chuyển nhiễu đọc từ GPIO qua pipe sang trình duyệt web để hiển thị hoạt động của mọi kênh cùng lúc
Khi chạy demo Waveguide Simulator trên Alienware M15 Ryzen Ed. R5, laptop phát ra tiếng rung the thé khá rõ
Môi trường là RTX 3070, Windows 11 Pro, Chrome v129; ban đầu tôi tưởng là âm thanh từ loa, nhưng dù giảm âm lượng thì tiếng đó vẫn tiếp tục trong lúc trình mô phỏng đang chạy. Tôi không nghe thấy trong game hay các demo WebGPU khác, còn mô phỏng ngôi nhà thực tế lại tạo ra một mẫu âm thanh khác
https://en.wikipedia.org/wiki/Electromagnetically_induced_ac...
Lý do không nghe thấy trong game có thể là âm thanh game lớn hơn, hoặc mẫu công suất không có tần số nghe được như vậy. Mạch cấp nguồn CPU cũng có thể gây hiện tượng tương tự, nhưng vì cái này dùng GPU nên quy về phía GPU là an toàn hơn
Hiện tượng này khá phổ biến với tải làm việc trên 600fps
Tôi đang dùng router Wifi 6E, nên tò mò không biết ở đây 6GHz, 5GHz, 2,4GHz có hoạt động khác nhau một cách dễ thấy không. Tôi muốn biết tổng thể hình dạng có giống nhau không, hay tần số tạo ra khác biệt lớn