Apparatus for generating odor impressions for a user in an extended reality, XR, environment, the system comprising: a processor; a memory storing instructions that, when executed by the processor, cause the processor to perform a scent generating function comprising: determining spatial characteristics of an odor impression that is to be generated in the XR environment, the determining comprising generating an odorant component in the XR environment, the odorant component comprising virtual geometry in the XR environment and a function for calculating a scalar; generating at least one command for generating the odor impression based on the spatial characteristics, the generating comprising: determining a location of the user in the XR environment; using the function to calculate the scalar based on the user's location relative to the virtual geometry; and determining a scaled scent intensity based on the scalar; and transmitting the at least one command to a controller, wherein the at least one command, when executed by the controller, causes the controller to generate the odor impression for the user in the XR environment. a processor; a memory storing instructions that, when executed by the processor, cause the processor to perform a scent generating function comprising: determining spatial characteristics of an odor impression that is to be generated in the XR environment, the determining comprising generating an odorant component in the XR environment, the odorant component comprising virtual geometry in the XR environment and a function for calculating a scalar; generating at least one command for generating the odor impression based on the spatial characteristics, the generating comprising: determining a location of the user in the XR environment; using the function to calculate the scalar based on the user's location relative to the virtual geometry; and determining a scaled scent intensity based on the scalar; and transmitting the at least one command to a controller, wherein the at least one command, when executed by the controller, causes the controller to generate the odor impression for the user in the XR environment. determining spatial characteristics of an odor impression that is to be generated in the XR environment, the determining comprising generating an odorant component in the XR environment, the odorant component comprising virtual geometry in the XR environment and a function for calculating a scalar; generating at least one command for generating the odor impression based on the spatial characteristics, the generating comprising: determining a location of the user in the XR environment; using the function to calculate the scalar based on the user's location relative to the virtual geometry; and determining a scaled scent intensity based on the scalar; and determining a location of the user in the XR environment; using the function to calculate the scalar based on the user's location relative to the virtual geometry; and determining a scaled scent intensity based on the scalar; and transmitting the at least one command to a controller, wherein the at least one command, when executed by the controller, causes the controller to generate the odor impression for the user in the XR environment.