{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/montefloor-extending-mcts-for-reconstructing","title":"MonteFloor: Extending MCTS for Reconstructing Accurate Large-Scale Floor Plans","arxiv_id":"2103.11161","date":"2021-03-20","proceeding":"ICCV 2021 10","authors":["Sinisa Stekovic","Mahdi Rad","Friedrich Fraundorfer","Vincent Lepetit"],"abstract":"We propose a novel method for reconstructing floor plans from noisy 3D point clouds. Our main contribution is a principled approach that relies on the Monte Carlo Tree Search (MCTS) algorithm to maximize a suitable objective function efficiently despite the complexity of the problem. Like previous work, we first project the input point cloud to a top view to create a density map and extract room proposals from it. Our method selects and optimizes the polygonal shapes of these room proposals jointly to fit the density map and outputs an accurate vectorized floor map even for large complex scenes. To do this, we adapted MCTS, an algorithm originally designed to learn to play games, to select the room proposals by maximizing an objective function combining the fitness with the density map as predicted by a deep network and regularizing terms on the room shapes. We also introduce a refinement step to MCTS that adjusts the shape of the room proposals. For this step, we propose a novel differentiable method for rendering the polygonal shapes of these proposals. We evaluate our method on the recent and challenging Structured3D and Floor-SP datasets and show a significant improvement over the state-of-the-art, without imposing any hard constraints nor assumptions on the floor plan configurations.","url_abs":"https://arxiv.org/abs/2103.11161v2","url_pdf":"https://arxiv.org/pdf/2103.11161v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"montefloor-extending-mcts-for-reconstructing","repo_url":"https://github.com/vevenom/MonteScene","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"montefloor-extending-mcts-for-reconstructing","repo_url":"https://github.com/woodfrog/poly-diffuse","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2103.11161","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2103.11161"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/woodfrog/poly-diffuse","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/vevenom/MonteScene","reach":{"status":"unanswered"}}],"summary":{"ran":6,"ran_draft_wrong":3,"ran_honours":1,"unverified":5},"by_repo_kind":{"listed":{"samples":15,"ran":10,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":15,"samples":[{"code_sha256_prefix":"c7e682414d655014","entry":"DeformableTransformerDecoder","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c7e682414d655014"}},{"code_sha256_prefix":"31e621eb1f377a2b","entry":"DeformableTransformerEncoder","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"31e621eb1f377a2b"}},{"code_sha256_prefix":"3294b3a16f752382","entry":"MLP","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3294b3a16f752382"}},{"code_sha256_prefix":"c89a6058bd1947a6","entry":"MSDeformAttn","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c89a6058bd1947a6"}},{"code_sha256_prefix":"ace1b7ccab9cd45a","entry":"NestedTensor","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"ace1b7ccab9cd45a"}},{"code_sha256_prefix":"f021c121c7024822","entry":"PositionEmbeddingSine","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"f021c121c7024822"}},{"code_sha256_prefix":"2ee78123f7fa8d31","entry":"_get_clones","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"2ee78123f7fa8d31"}},{"code_sha256_prefix":"83c03ceb1307c6c4","entry":"inverse_sigmoid","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"83c03ceb1307c6c4"}},{"code_sha256_prefix":"66c401f1c3fade5d","entry":"positional_encoding_1d","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"66c401f1c3fade5d"}},{"code_sha256_prefix":"12d88e587c21a5e0","entry":"timestep_embedding","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"12d88e587c21a5e0"}},{"code_sha256_prefix":"4007b980fd71dbf7","entry":"DeformableTransformerDecoderLayer","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"4007b980fd71dbf7"}},{"code_sha256_prefix":"e460be3a8226061f","entry":"DeformableTransformerEncoderLayer","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"e460be3a8226061f"}},{"code_sha256_prefix":"5bbc177dc078b1b3","entry":"PolyModel","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"5bbc177dc078b1b3"}},{"code_sha256_prefix":"d2623059d3fe0e35","entry":"ResNetBackbone","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d2623059d3fe0e35"}},{"code_sha256_prefix":"80cde8a26966acff","entry":"RoomTransformer","repo":"woodfrog/poly-diffuse","repo_kind":"listed","path":"src/models/polygon_models/polygon_net.py","file_url":"https://github.com/woodfrog/poly-diffuse/blob/HEAD/src/models/polygon_models/polygon_net.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"80cde8a26966acff"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}