Code Monkey home page Code Monkey logo

universite-gustave-eiffel / i-simpa Goto Github PK

View Code? Open in Web Editor NEW
227.0 27.0 56.0 103.56 MB

An Open Source software for 3D sound propagation modelling

Home Page: https://i-simpa.univ-gustave-eiffel.fr/

License: GNU General Public License v3.0

Python 4.67% HTML 8.58% JavaScript 0.14% CSS 0.27% C++ 71.66% C 13.21% Shell 0.08% Ruby 0.02% CMake 0.71% Batchfile 0.01% Lua 0.03% PowerShell 0.02% MATLAB 0.47% M 0.05% SWIG 0.08%
acoustic numerical-codes gui modelisation sound room-acoustics

i-simpa's Introduction

Travis Linux build status AppVeyor Windows build status CII Best Practices Documentation
Build Status Build Status CII Best Practices Documentation Status

I-Simpa logo|

Description

Room illustration

I-Simpa is a graphical user interface (GUI) developed to host three-dimensional numerical codes for the modeling of sound propagation in complex geometrical domains. Although I-Simpa is well adapted for energetic models (ray-tracing, sound-particle tracing, theory of reverberation…), it can be extend to use ondulatory approaches.

I-Simpa alone is not a calculation software, but is equivalent to a pre and post-processor for acoustic codes. One or more numerical codes must be added in order to obtain a fully functional system. At the present time, I-Simpa is delivered with two codes (TCR and SPPS, see information here).

Classical applications are room and building acoustics, environmental noise and industrial noise, but it can be easily extend to other applications concerning the sound propagation in 3D environments (interior of vehicle, sound in cavities…).

The main concepts of I-Simpa are:

  • a functional GUI: elements and components are organized in tree structures, to easily access to all information, parameters and properties. Many features are proposed for helping users…
  • an ‘open’ system: all information and data are organized in spreadsheets that can be displayed, exported, copied…
  • an ‘open’ software: each user can integrate its own numerical propagation code, develop its own functionalities within the interface for its own applications… All have been done in order you can extend I-Simpa easily.

I-Simpa has been initially developed as a research tool (i.e. for research laboratories), but can also be a very efficient tool for a professional or commercial use.

Developments

I-Simpa is developped by the Environmental Acoustic Research unit (Université Gustave Eiffel (formely Ifsttar, formerly LCPC)

License for users

I-Simpa is an application developped by Ifsttar under the GENERAL PUBLIC LICENSE Version 3, please refere to GPLv3 for more details about it and here for Ifsttar information.

License Agreement for contributors

For legal reasons, contributors are asked to agree with a Contributor License Agreement (for Individual or for Entity). Contributors will be added in the 'About' dialog box of I-Simpa. For more information visit the following page: https://i-simpa.univ-gustave-eiffel.fr/community/contribute/contribute-to-the-code/

i-simpa's People

Contributors

abonnard avatar austil avatar jimmyfarcy avatar nicolas-f avatar picaut avatar wbinek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

i-simpa's Issues

Compilation for Fedora 21

I compiled I-Simpa on fedora 21 with no major hassle. I had to:

  1. Manually install boost_1_60_0 and wxWidgets-3.1.0
  2. Change the minimum cmake verion in CMakeLists.txt to 3.0.0
  3. Make sure to cmake with python2.7: "cmake -DPYTHON_INCLUDE_DIR=/usr/include/python2.7/ -DPYTHON_LIBRARY=/usr/lib64/libpython2.7.so"

I uploaded 3ds files and did some meshing... everything seems to be working so far.

attached is ldd output for isimpa
dependency.txt

Change content of System and User Script folders

The Python script toolboxes that are in the UserScript folder should be in the SystemScript, since they are 'default' scripts for I-Simpa. They are useful for I-Simpa. UserScript folder should be keep only for toolbox scripts written by users.

Unable to achieve results: Can't generate a "report" to visualize particle dispersal map

We imported a model, remeshed it, and set up sources/receivers, then ran calculation SPPS. We followed the guidelines provided in the French I-Simpa Handbook under Tutorials. The console reads as follows:

2:08:26 PM: Loading mesh ASCII file...
2:08:26 PM: Loading ASCII files from mesh generator complete
2:08:26 PM: Total time of meshing: 1324 ms
2:08:26 PM: External code execution
2:08:26 PM: C:\Program Files (x86)\I-SIMPA\core\sppsNantes\sppsNantes.exe "C:\Users\brennmat\AppData\Roaming\I-SIMPA\current\instance1\report\SPPS\2016-02-19_14h08m25s\config.xml"
2:08:26 PM: sppsNantes.exe :Spps 2.1.2 version 7 juin 2011
2:08:26 PM: sppsNantes.exe :XML configuration file is currently loading ..
2:08:26 PM: sppsNantes.exe :Loading of the atmospheric condition..
2:08:26 PM: sppsNantes.exe :Loading of the simulation configuration..
2:08:26 PM: sppsNantes.exe :Loading of the emitter list..
2:08:26 PM: sppsNantes.exe :1 emitters has been loaded.
2:08:26 PM: sppsNantes.exe :Loading of the materials..
2:08:26 PM: sppsNantes.exe :2 materials has been loaded.
2:08:26 PM: sppsNantes.exe :Loading of the punctual receivers
2:08:26 PM: sppsNantes.exe :Loading of the surfaces receivers
2:08:26 PM: sppsNantes.exe :Loading of the obstructions
2:08:26 PM: sppsNantes.exe :XML configuration file has been loaded.
2:08:26 PM: sppsNantes.exe :Scene mesh is currently loading ..
2:08:26 PM: sppsNantes.exe :Opening C:\Users\brennmat\AppData\Roaming\I-SIMPA\current\instance1\report\SPPS\2016-02-19_14h08m25s\mesh.cbin
2:08:26 PM: sppsNantes.exe :Load of the scene mesh file has been completed successfully.
2:08:27 PM: sppsNantes.exe :C:\Users\brennmat\AppData\Roaming\I-SIMPA\current\instance1\report\SPPS\2016-02-19_14h08m25s\tetramesh.mbin
2:08:27 PM: sppsNantes.exe :Tetrahedalization file is empty, the calculation can't be done !
2:08:27 PM: sppsNantes.exe :Unable to read the tetrahedalization of the scene mesh file, calculation canceled.
2:08:27 PM: Caluation time: 674 ms
2:08:27 PM: Copy of calculation parameters
2:08:27 PM: Refreshing onglet 'Report'
2:08:27 PM: Error:Failed to load icon from the file '"%1"' (error 2: the system cannot find the file specified.)
2:08:27 PM: Error:Failed to load icon from the file '"%1"' (error 2: the system cannot find the file specified.)
2:08:27 PM: Total time calculation: 2555 ms

*Note the error:Unable to read the tetrahedalization of the scene mesh file, calculation canceled.--- we are unable to find the "ressource" (resource) file under the SPPS calculation report in order to generate a visualization of our data. *

Any ideas?

libsimpa class and methods names

Today exposed class and methods names to python do not follow the standards rules¹

However, changing names should break existing python user scripts.

ex:

import libsimpa as ls

model=ls.ioModel()
ls.CformatBIN().ExportBIN(filepath,model)

become

import libsimpa as ls

model=ls.IoModel()
ls.FormatBIN().export_bin(filepath,model)

The question is, do we postpone such changes for next major version of I-SIMPA or we will change it on the next release ?

tetgen and sppsNantes issue

Hello, I've been having issues with I-Simpa, particularly with tetgen.exe and sppsNantes.exe.

I have a .3ds file made in sketchup (I've tried also 3D studio and the same issue applies) and most of the time, if I import the scene with the repair model and try to run the SPPS calculation, either of these apps will crash (usually tetgen.exe), and if i import them with the average model remesh, the spps calculation will only get done if the design is simple, if the design is slightly complex, it will crash.

Also, if the imported scene is slightly complex, the average model remesh will not work properly, it will get some parts of the scene missing.

-Which software offers the best compatibility with I-Simpa? and which format?
-Will I-Simpa be more compatible with windows XP/Vista/7(32bits)?
-Are there any tips regarding the design of the scene? (lines across squared surfaces to create corners, always begin the design in xyz=0, etc.)

thanks 👯

Limited range for the parameter "Limit value of the particle extinction"

When the "Energetic" method is chosen, this value allows to define a ratio 10^n ("n" being the given value of the parameter), for which the particle is removed from the domain : i.e. when the initial energy of the particle is decreased of 10^n (i.e 10xn dB), then the particle is removed).

Proposal N°1
This limit is currently limited to n=10 (i.e. a decrease of 100dB): this limit value should be increased

Proposal N°2
A new calculation parameter could be added in order to enable/disable this option (i.e. keeping all particles without considering their energy), even when the "Energetic" method is enable

Directivity element in the database

  • It is not possible to change the directivity file when a first directivity file was already selected.
    The directivity element must be deleted to change the directivity file. It could be interesting to allow to change the directivity file without deleting the directivity element.
  • Add a 'Description' text box in the 'Properties' of a directivity

Pressure value

Hi, can I obtain the pressure value on receiver point from SPL (in I-Simpa and SPPS)?
Thank you very much.

Mean free path calculation in 'Volumes' element of the 'Data' tree

Is-it necessary to display a check box for 'Calculate the mean free path'.
Can it be calculated automatically and display in the 'Mean free path' ceil?
In addition, if not calculated or not defined, the value of the mean free path should not defined/display (i.e. display 'not defined')

Scattering issue

I am currently working on my bachelor thesis, on AGH University in Poland, in which I am comparing I-SIMPA with CATT-Acoustics.

I've noticed strange issue. The result of simulation is extremely dependant on scattering. With no scattering the results are quite similar to ones from CATT, but when I set proper scattering values, then RT increases 2 up to 3 times. I know that adding scattering changes RT, but I think, the difference is much to big. Especially taking into account, that the same changes done in CATT produce more or less good results in both cases. Have you encountered such behaviour? I attach an image of measured and predicted T20 with different scattering settings.

I am looking forward to receiving your reply.

diff a t20

Move data_manager, input_output and tools folders?

I am implementing new calculation codes based on SPPS.
Because all codes share some tools I think it may be good to move folders with tools, data manager and input output for SPPS to some folder in main src directory, so they are not bounded to certain calculation code, but generally available. Then to make changes it would just require making a derived class with changes only.

I know it can be done without moving folders, but I think it will make the solution clearer.

Number of decimals in result calculation

Some table produce data with many numbers after the comma (like TR and SPL). It could be useful to limit this to a relevant number depdning of the parameter that is calculated (2 for TR and SPL for example)

Punctual receiver and surface receiver does not return the same value

In SPPS there is 2 explanations for such issue:
1 - By default surface receivers values are intensity maps that does take account of particle direction
2 - Punctual receivers are modelised by a sphere, surface receivers are modelised by a surface. Surface receivers statistically receive less particle.

Switch from intensity to SPL surface receivers in the SPPS parameters.

Source directivity

It would be great to consider specific source directivity (in addition of current reflection law) in I-Simpa.

build i-simpa on macos

Dear all,

I am trying to build i-simpa on my mac using make but no xml file is found?

my command:

mkdir build
cd build
cmake ..
make
make install

output:

`
[100%] Built target spps
Install the project...
-- Install configuration: ""
-- Installing: /.../I-Simpa/build/libsimpa/_libsimpa.so
-- Installing: /.../I-Simpa/build/bin/spps

Then, i run i-simpa:

cd bin/
./spps

output:

Spps 2.1.4 version december 13 2013
The path of the XML configuration file must be specified!

could you help me?
Where is the XML configuration file?

RT calculation

I've been messing around with I-Simpa again, but, this time, I'm getting odd results when adding absorption to a surface, basically what I've done is to add absorption to the ceiling of a room, and the RT should be reduced, but, the results I'm getting from the SPPS calculation are not what I expected them to be. The results are the same when using the un-modified version of I-Simpa and the diffusion corrected I-Simpa. Maybe I'm doing something wrong... The results are the following:

i-simpa rt question

The graphs that say "original" are the ones of the room with the original surfaces of the room (plasterboard and concrete) and the ones that say blackacoustic is the material that I'm using for the absorption on the ceiling.

I don't get why I'm getting a small difference with absorption when the calculation is done with SPPS.

The results are very similar when using:

*energetic or random calculation methods.
*modified or unmodified I-Simpa.
*with 150,000 or 5000000 sound particles.

I know I'm missing something... just don't know what

thanks

Configuration of the software

I-Simpa was first developped in french, then we decided to change into English all the source code. I found out that some work had to be done on the xml config file on the creation and the loading. In fact all tag's name is in French. So in order to change in English the widget's option you have to change first the name for all tags.
The xml file could be find in your AppData\Roaming\I-Simpa folder and for example if you wish to change main pref to General, see in projet.cpp

Verbose mode of SPPS

Add a (disabled by default) verbose mode to SPPS computation core.

If verbose mode is disabled only vital information are printed. (Main progression event, warnings and errors)

I-Simpa.exe will not run in Windows 10

Hello,
I have tried to run the executable file in compatibility mode for windows 7 and regularly in Win10 but it still throws up an error before the language selection menu and crashes after the language is selected. Here are some screenshots of the errors.

Any help would be much appreciated.

Thanks
-Seth

i-simpa error3
i-simpa error2

Travis - how does it affect the program?

I am not an expert on programming. I would like to know if merging the recent changes (the Travis related things) will change the way my fork of I-SIMPA builds/works. As far as I understand it provides a simpler way of building and testing the application. Does it affect the builds done in Visual Studio? Could you please give me some explanation.

Thanks!

Replace i-simpa specific binary formats by ply format

There is a lot of issues with files formats across different architectures and different compilers as it will apply padding and endianness differently.

The easier solution is to switch to the versatile Ply format already implemented in lib_interface.

Different results between surface and punctual receivers

Hi,
Why the results of a receiver are different from those of a surface at the same point and in the same conditions? In particular on the same point I read 138 dB (SPL) by punctual receiver and 130 dB by surface receiver.
Thank you very much!

Directivity balloon selection for sound source

  • The Directivity balloon' parameter of a sound source should not be enable (or visible) if 'Balloon' is not selected in the 'Directivity' parameter.
  • In addition, one can also remark that 'Directivity balloon' is displayed twice in the 'Directivity' parameter.

Check sound source intersection

Check if a sound source is not in intersection with a wall.

If a sound source is in intersection, print an error with the sound source coordinate and name then cancel the spps computation.

Write cmake multiplatform compilation file

Write cmake configuration file in order to compile projects in the following order:

  1. lib_interface
  2. libsimpa (python binding)
  3. theorie_classique (should be renamed in Classic Theories)
  4. Spps
  5. I-Simpa

Add travis automated building configuration file.

There is path problems with I-Simpa under linux. However this is minor issues. All dependency of projects are multi-platform.

Ultimate goal is to publish I-Simpa to major linux distribution repositories.

SPPS Energy Decay

I've been trying to obtain the impulse response of a simple 5x5x5 room using the SPPS calculation method. The absorption coefficient I'm using is 0.25 and I'm using Lambert's Law of diffusion. Also, I'm not accounting the absorption of air. Comparing my RIR to other programs, it is off.

One possibility I've been looking into is that the SPL values decay from about 80db to 30db and suddenly cuts off. My advisor says this is not natural. I tried increasing the number of sound particles per source but nothing changes much.

Anyone know a solution to where I can get a more complete, "natural" decay? Or a better way get the RIR?

Global TR value not calculated for TCR (Sabine theory)

In TCR results, global value of TR are not calculated (tables present value for each octave band). It could be useful to give a global value (if possible, by an averaging to be found) or to not show "0.00" (this could be replaced by "NC" for "No Calculation").

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.