A commendable application of classical CSP techniques that prioritizes functional logic and architectural constraints over mere visual generation. It serves as a rigorous undergraduate example of how algorithmic precision can effectively solve complex spatial optimization problems.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
AI-Powered Floor Plan GeneratorAdded:
asum Welcome to our AI project presentation today we have made a floor plan generator in which we seamlessly generate floor plans for users according to their input and according to their style today we have zoha akip and Farah Inayat under the supervision of sir alira we have done this project yes and today and we will start to begin our demo so this is the front slide of our program you the name of our company is design and G uh our slogan is creating space creating comfort so it begins with some name with some motivation and this is some sliding windows in which you can see the aim of our project and let's begin designing one of them so the first one that we will be designing is uh Welcome to our project let's design so first we will enter some total area that we want so for example we end that our area is 2,000 enter so here you can see that there are the options of which rooms we can generate for example we can generate a kitchen dry room balcony master bedroom garage and and so on and you can choose any of them and however many of them and of whatever size you would like you can see the size here you can see the total area that you've entered the number of rooms you have added and up till now the total room the total area of those rooms and how many area you have left it is recommended to leave about 300 to 500 area at least left so that it can be a better adjustment of your rooms on the floor so first we will add a garage so I say I need a garage and I need one of them and I need them of size one which is approximately 120 area so I enter one and I can see that one room has been added then I add a kitchen so I go to Kitchen I add one then I add size one and then I add a lounge area so Lounge area approximately 250 so I add one and then I add size one now to generate your FL pan you will press the button generate so when you press the button generate it goes into the python file and it generates a python file and it generates a floor plan on for okay so because we entered three rooms three type of rooms garage kitchen and Lounge area we had we could have had six Home Designs but there are only two why because we had a constraint that the garage if it does exist in the design it should be at the start because garages is where usually they exist so now we have two designs only out of six which are displayed you can see the first design and then we can also see the second design so here you can vote you can rate for your designs and if for example if I read two for this one and I like this one much better that the kitchen is next to the lounge so I can rate this five and when you're done viewing all your designs you can end the program and when you end the program you can see right here that a file has been created using this date so if I go into Main and I analyze my file so my file U the time right now is 7:57 so I open the 757 txt file and I can see that the garage kitchen Lounge area has a rating of five and the garage Lounge area kitchen has a rating of two and the average rating is approximately 3.5 so this also takes users input uh into knowledge so let's do another one so I go back to design and start and I press 2,000 for example as my area and I see this one I'm going to add a garage now we are doing several examples so that you can see the constraints that we have applied in how AI is working on them so we do a kitchen as well uh no sorry we yes we do a kitchen as well and then we do a balcony and finally we do Lounge now let's generate on okay so now it displays that the constraints have been violated our another constraint was if there in a if in a design a garage and a balcony both exist it won't display the design because we we considered that if a garage exists a balcony cannot because garages are usually in the ground floor and balconies usually are not on the ground floor so if a garage does exist a balcony cannot and if a balcony does it cannot ex the garage cannot exist let's move on to another design now we will create a a normal floor plan of a house of a of home so first a normal home has a garage and it has a kitchen it has a master bedroom and it has a regular bedroom and it has a loue okay let's generate okay so um we entered five rooms because 5 factorial is 120 we could not have 120 designs because of our constraints here now we have 12 designs Poss uh possible we we also have other constraints that the master bedroom cannot exist beside a kitchen like kitchen and master bedroom cannot be adjacent so it has followed that constraints and we have we have displayed 12 designs here and we can move to the next and we can rate all these 12 designs and store their ratings and their average so we can move on to the next designs so these are all the designs this is an average home plan so let's begin okay so we are now so we are going to begin with our present presentation we were a group of two members me and zoha uh we worked under sir Ali razza this is a table of contents of what we have added in our presentation uh moving on we'll we will of course share what we have done first is problem statement which was actually um designing interior spaces in such a manner that it is user friend friendly and uh it is done done using AI so that we can consider the user's preferences how he wants to personalize his home design so we collected users data of like he will come and enter the total area for his house and he has a number of rooms to choose from these rooms are master bedroom with bathroom Lounge area kitchen study bathroom guest room with bathroom regular bedroom with and without bathroom drawing room balcony and a garage so our constraint constraints like for and master bedroom with this area means is like at index one kitchen and master bedroom with bathroom cannot be adjacent to each other similarly at index 2 store and master bedroom with bathroom cannot be adjacent to each other like kitchen and master bedroom cannot be together at all like not even up and down or left and right in this way we have some more constraints um and these are that again as we explained in our demo a garage and a balcony both cannot exist in the same house design as a garage can only exist on the ground floor while the balcony can exist cannot exist on the ground floor it exists only on the first floor and the floors above it only there can only be one garage and one balcony and uh of course if they do exist they cannot exist at the center of the house they are they are only there at the sides okay so our first function it is a class pre node uh what it actually does is creates a node in a tree structure the second function is ADD room to tree it actually what it does is ADD nodes to the tree it takes a node it takes a root node and the name of the new room and then it creates a new tree node and attaches it to the tree the third function that we have used is is built room design this is a recursive F function it actually builds a list IE a tree repres representing the whole design of rooms it starts with a tree note and appends rest of the rooms to this uh root node it then calls itself so that uh it can attach another child node to the current node it then Returns the whole room design I.E it Returns the whole three this is a check constraints function and it has another function inside it which is DFS because we have used DFS we have done CSP IE constraints satisfaction problem through backtracking what this function is doing is first uh it it checks if the current room is a balcony then it increases the count of the balcony then it checks if the current room is a garage it increases the count of the garage and then it checks if both uh the balcony and the garage their count both of their count is greater than one so it returns a f false if either one of them has a count greater than one M if the garage there are two garages or there are two balconies it then also returns a false also then it takes into account the constraint error which we showed before and then through backtracking and through rearranging rooms which will we will show in the next slide it satisfies all the constraints and returns only that uh tree which is satisfying all of our constraints further on the next function is the next function the first function is actually permutations what it actually means is if suppose I have entered five rooms so what it does it is it it rearranges all the rooms in a manner so that it gives me all the permutations I.E all so if I have entered five rooms it is going to give me a list which contains 12 120 trees the next function rearranges room it actually calls the previous function of checking constraints and returns only those trees IE which are actually satisfying our constraints so uh you can see the for Loop here it takes one per permutation from room permutations and then checks that if it is satisfying all the contraints it adds to a new list and then returns that whole list room do designs. append is what actually it is doing it is storing the valid permutation and then the whole list which is named as room designs it is returning that list so in the main uh what we have done is um it calls it uh it gives a uh it gives an array which is done through the users input uh it gives that array and then it calls uh the rearranging function which the the rearranging function in short calls the uh DFS the constraint checking and the three ones and all and then the main is actually returning that function the uh Zoom design function to the Java code zoha is going to continue from here and she's going to okay so the Java function that is the front end of the code now let's see it first of all the program begins at application window there's a big window that controls two aspects welcome and design there are two classes design window and welcome window so what the welcome window does is the welcome window displays what slides we have and what the program is doing it's just a user interface to interact with the user to show what's Happening the design window takes care of all the inputs and how to get generate the floor plan so first you are welcome you are brought to a screen at a welcome screen in which you this is to welcome the user and they first start entering the total area of their floor so this is also done as a keypad this is a keypad which is also made by Java and is also made by GUI so when the user enters its total area he is brought with a range of room options that they can choose from these are also buttons that the user can press and enter the size and quantity of they want so the it also has other features that it can display on spot with the user that whatever rooms they add it displays the total room count it displays the total area of the rooms it displays how much area you have left so it is recommended to leave at least 300 to 500 as I said you during the demo as well to ensure proper room distribution because we don't want any of the rooms outside of the floor after that when you've entered all your button you've clicked all the required rooms that you want and you've ex explored them and you've entered the size and quantity that you want you press generate so when you press generate that's when jython comes into action jython is a converter that that connects Java and python code together so first you can see as this code that a TR catch block is used and we call the python interpreter we import the python class that we want and we pass the rooms that the user has given us into the into its input and the python function returns a floor plan to us and the that floor plan is then converted so what the python function has returned is a python object so we have to convert the python into a object into a Java object and we first we have like multiple floor plans so first we have to decode each of the floor plans and convert them into a string object a string double array so when that string double array is converted we pass this to a class called floor plan displayer now what does floor plan displayer do floor plan displayer a floor plan displayer breaks down each of these floor plans meaning if the if the python code gave me 100 flooor plans floor plan displayer will in which break down each of them into one into single single floor plans and pass them to floor plan window floor plan window will take each we will create objects of floor plan window and we will give the floor plan window one floor plan and it will convert it into a displayable block and that floor plan window will display each window so but this what does floor plan window do floor plan window takes takes your takes the total area of your floor and it takes the total area hits the height and width of your screen of your laptop screen and it Maps it onto it in You by calculating a scale that scale is also multiplied with your room width and room length so that your rooms can be displayed accurately on your screen depending on your total area and then after that how does it map how does it allocate each room to your uh floor it allocates it by creating a Boolean coordinate double array which when when a room is placed on it the it makes it all false how a rooms fitted on there's a boo 2D array and it first checks the closest available space to fit on the room and when that room is when that room is allocated that space is declared declared allocated declared occupied by making it through after that we then uh if for example one one of the rooms or most of the rooms cannot be allocated then we will resize the entire floor and reallocate all the room until unless all the rooms fit properly on the screen when then after that when all of them are allocated just it is just displayed normally and these are there are 24 plans generated but users can come and also rate them to help improve the AI this is just one of them a basic one this is also another one this is also another one these are same rooms there are same area same everything just different shapes and after that when the program ends all of his ratings that the user has rated for each specific floor plan it is stored in the txt file and its average rating is also calculated so thank you for watching and I hope you enjoyed our presentation and our project alot
Related Videos
OpenHuman VS Hermes AI: Who Wins?
JulianGoldieSEO
285 views•2026-05-29
Long-Running Agents — Build an Agent That Never Forgets with Google ADK
suryakunju
142 views•2026-05-30
This computer is made from real human brain cells. And you can buy it.
Talktmsmedia
3K views•2026-05-28
BREAKING: Microsoft’s New Image Generating Model Beat Out GPT 1.5 and Nano Banana 2
aimmediahouse
122 views•2026-06-03
I Made the Same Anime Fight Scene in Every AI Video Generator
NobleGooseAnime
295 views•2026-05-30
Nvidia Bets Big On AI PCs | New Chip To Power Windows Laptops | Technology | AI Updates | N18S
cnnnews18
3K views•2026-06-01
I Tested NEW Opus 4.8 on Four Projects (Updated LLM Leaderboard)
AICodingDaily
298 views•2026-05-29
3D Platformer Update - NO CAPES
SolarLune
294 views•2026-05-30











