A method, comprising: identifying a map of an indoor space, the map being based on a plurality of constraints, said constraints representing locations where a user may not walk; receiving inertial navigation signals from a first set of mobile devices moving through the indoor space, where the inertial navigation signals represent a direction and speed of movement of the mobile devices; calculating, using one or more processors, for each given mobile device of the first set of mobile devices a user trajectory using a dead reckoning approach and based on the set of inertial navigation signals received from the given mobile device in order to provide a set of user trajectories for the mobile devices of the first set of mobile devices; identifying paths associated with the number of user trajectories by applying a smoothing algorithm to each user trajectory of the set of user trajectories, wherein each identified path comprises a set of turns traveled between a first position and a second position on the map; selecting a candidate path of the identified paths based on a number of turns in the set of turns in the candidate path being below a threshold value; for each selected candidate path with a number of turns below the threshold determining a score based on a similarity of the given path to the candidate path; from the paths with a determined score selecting at least one path that scores above a pre-determined threshold; and generating, using the one or more processors, map information based on the at least one selected path having a score above the pre-determined threshold that identifies walkable areas of the indoor space around constraints of the map. identifying a map of an indoor space, the map being based on a plurality of constraints, said constraints representing locations where a user may not walk; receiving inertial navigation signals from a first set of mobile devices moving through the indoor space, where the inertial navigation signals represent a direction and speed of movement of the mobile devices; calculating, using one or more processors, for each given mobile device of the first set of mobile devices a user trajectory using a dead reckoning approach and based on the set of inertial navigation signals received from the given mobile device in order to provide a set of user trajectories for the mobile devices of the first set of mobile devices; identifying paths associated with the number of user trajectories by applying a smoothing algorithm to each user trajectory of the set of user trajectories, wherein each identified path comprises a set of turns traveled between a first position and a second position on the map; selecting a candidate path of the identified paths based on a number of turns in the set of turns in the candidate path being below a threshold value; for each selected candidate path with a number of turns below the threshold determining a score based on a similarity of the given path to the candidate path; from the paths with a determined score selecting at least one path that scores above a pre-determined threshold; and generating, using the one or more processors, map information based on the at least one selected path having a score above the pre-determined threshold that identifies walkable areas of the indoor space around constraints of the map.