The collected works of Brombear - Page 1

andreas@rootprompt wrote: c'mon you don't need two, why not sell me one this r5k@200 Mhz O2 is driving me insane :mrgreen:


Ah, cmon Andreas, there have been more than enough 300Mhz O2s on german ebay recently ...

Matthias
Life is what happens while we are making other plans
Hi Assram (?),

no pun intented but if you had read the article completely you would have noticed that the new processor doesn't emit much more heat compared to the old one.

Joe,

you mentioned the prices for R12K processor. What is needed to find out if an R14K could be fited ? Dual R12K 300Mhz cann be had realtivly cheap on ebay these days. Converting to a more modern CPU would be far more interesting ...

Reagrds

Matthias
Life is what happens while we are making other plans
This is normal, if you populate more than 2 XIO-slots the fan will be switched into the fast mode.

Matthias
Life is what happens while we are making other plans
Hi,

if something seems slow I would advise to get precise measurements before trying to optimize things. One kandidate seems to be this loop:

Code: Select all

for(i = 0; i < 480; i++) {
for(j = 0; j < 720; j++) {
packed[i][j][0] = Y[i*720 + j];
packed[i][j][1] = U[(i/2)*360 + j/2];
packed[i][j][2] = V[(i/2)*360 + j/2];
}
}


You are always calculating things inside the loop which can be done via simple additional indices

i*720 + j is a good candidate

(i/2)*360 is the same as i*180

(i/2)*360 + j/2 is used twice within this twodimensional loop. Try to optimize it away.

But maybe it just the glDraw call.

Good luck

Matthias
Life is what happens while we are making other plans

Code: Select all

int ixPixel=0;
int ixPixel2=0;
for(i = 0; i < 480; ++i)
{
for(j = 0; j < 720; ++j)
{
int ixPixel3 = ixPixel2 + j/2;
packed[i][j][0] = Y[ixPixel];
packed[i][j][1] = U[ixPixel3 ];
packed[i][j][2] = V[ixPixel3 ];
++ixPixel;
}
ixPixel2 +=180;
}


Also the navigation with a 3-dimensional array is far from efficient. But check first if the glDrawPixel is the reason for slowness.

Regards

Matthias
Life is what happens while we are making other plans
I'll try to enhance it from my head a bit more, so don't be surprised if it doesn't work out of the box. For sure there are better ways to optimizer it with macros and stuff, but I think this should make some difference.

Code: Select all

int ixPixel=0;
int ixPixel2=0;
int ixDest=0;
for(i = 0; i < 480; ++i)
{
for(j = 0; j < 720; ++j)
{
int ixPixel3 = ixPixel2 + j/2;
packed[ixDest++] = Y[ixPixel];
packed[ixDest++] = U[ixPixel3 ];
packed[ixDest++] = V[ixPixel3 ];
++ixPixel;
}
ixPixel2 +=180;
}
Life is what happens while we are making other plans
Sorry to hear that it didn't work out.

I never trust compilers :twisted:

Matthias
Life is what happens while we are making other plans
Well I would disagree. 500$ for a tool that can convert so many file formats is ultra cheapo. This is less than a man-day in automotive industrie and will be paid out of the Portokasse (petty cash) like we germans say. I have seen simpler converting utilities in the range up to 50k and higher. But it all depends on how often youre gonna sell such a tool.

Matthias
Life is what happens while we are making other plans
0ctane wrote:
could those two models work with a SGI workstation?
Well, if you know of a SGI workstation that can accept DVI, then sure it should work. The Visual Workstations should have no problem. As for a MIPS based system.....


Yes, the V12 has DVI ports if I remember right. At least that dual pipe, dual channel had 4 of them ... Not a common config though :twisted:

Matthias
Life is what happens while we are making other plans
unixmuseum wrote: Sounds like a pretty cool 3x17" LCD type of situation could happen very soon on my desk...


Don't forget to invest into a pretty decent audio system to drown the sound of the octane's fans at high speed ;-)

Matthias
Life is what happens while we are making other plans
Awesome work guys, very fantastic thread.

Now we just need to search that individual that gets all those win codecs running :twisted: :twisted:

Matthias

_________________
Life is what happens while we are making other plans
NEC LCD 1880SX works great with O2, V6 & V10 (with appropriate cable-adapter)

Matthias
Life is what happens while we are making other plans
I wonder if there is a coincendence regarding nekochaners running onyx class machines at home :twisted: But I gues my octane doesn't make it that much better though :)

Matthias
Life is what happens while we are making other plans
Jason wrote: That's no problem, I have stacks of irix distributions, I may have about 30 packs with each version from 6.5 to 6.5.25, and we're receiving 30 new packs of each release, most of them are getting thrown away tho.


You may consider sending all the unneeded ones cod to me :D I once did something similiar sending several sets directly to the trash can ... after I learned that a lot of people are looking for them I could have kicked my own butt

Matthias
Life is what happens while we are making other plans
barefoot wrote: For people with no compatible network, the cds are much desired. I think the point brombear raised was that some people do find CDs valuable.


Yep, because if everything fails and you have a naked machine, finding a cdrom is easy ... besides that having original media in the cupboard makes me feel good :)

Matthias
Life is what happens while we are making other plans
Don't want to start a flamewar because the decision which toolkit is suited best is highly emotional and personal, but I'd like to add a few cents, since I am developing software using qt for a few years now (exactly since the beginning of qt). I cannot comment anything about gtk, I never used and probably never will.

Before I started using Qt a collegue compared Qt against Motif. There have been a few issues which immediately showed up.

- Qt is much more natural to develop with ... you do not have to cope with lots of strings parameters. In fact you are much in the programming cycle. Developing faster means your time is spent on the problem and not in the implementation
- when using Qt source code tends to be much smaller and more easy to read for someone who hasn't seen this particular code
- I don't feel that Qt apps are much slower than using native gui code. In fact the part most speed in gui is lost is waiting for the user to do somethin. I write complex applications and the bottleneck is usually your graphics card or some expensive calculation.
- You get a very nice gui interface creation tool with Designer which lets a total newbie create a nice interface within minutes. Of course you are responsible to implement its connection to the application yourself. But this makes it possible that your customer can play around and give you a prototype how they like the application to look like.
- I don't like the Callback Stuff you have to use with motif. It isn't type safe and can lead to very subtle errors. Of course Qt forces you to use C++, which is not a problem in my opinion, but this is a very personal preference, YMMV.
-Porting back software from a "alien" toolkit how you call it, will take a lot of time ... if you have so much time it is ok ... but finding so much volunteers may be hard but impossible.

Of course I do not want to keep you from doing ... after all programming is about fun and you have to choice what to do with your time.

Matthias
Life is what happens while we are making other plans
I forgot one of the most important reasons why such ports are doomed to fail. Let us assume that you manage to port an application and it runs really well. Everytime the application gets updated with new UI or functionality you have to add those things again, and this will really be getting tough if you don't do it very often so those things might get out of sync very soon.

Matthias
Life is what happens while we are making other plans
I always wonder why the "people" explaining something could be possible (mostly implying the complexity is manageable) are not the ones actually starting with such an effort nor really doing it.

Writing a wrapper sounds always that easy. Believe me, writing a wrapper around qt is everything else than easy AND manageable, since Qt has a lot of stuff that is not gui only and a lot of widgets where there is no equivalent in motif world. Here is a link to the function list which is everything else than short http://doc.trolltech.com/3.3

Matthias
Life is what happens while we are making other plans
nvukovlj wrote: Shame it runs HPUX. That and AIX, are my two least favourite Unix implementations. I'm not talking just about the default install, but can't say I liked programming on them either.


Full ack

Matthias
Life is what happens while we are making other plans
Hi,

though this has not much to do with SGI machines in particular I thought this topic would belong here best.

Those of you following some of my recent postings here may have noticed that I am working in the field of realtime rendering. Unfortunately I didn't had the opportunity to show what we are doing (pictures are really essential in this kind of business). But now this has changed, one of our clients gave us the permission to present some of the things we are doing currently. You'll find some images/movies under VRED -> Gallery. Attention, bandwith is needed to view the movies.

http://www.dmu-vr-solutions.de

Comments are welcome

Regards

Matthias

PS: The metallic shader runs at approx 10fps on a fx3000, the unicolor shader with 12fps

_________________
Life is what happens while we are making other plans
Well,

we are not allowed to distribute the model itself and the octane is lacking several needed features to show it.

the feature wish list is very very long right now and is constant getting longer. obj is currently not on the list, but i believe there are converters available to convert it to inventor (ObjToIv ?)

Regards

Matthias

_________________
Life is what happens while we are making other plans
vred will run without a problem on your octane but there are several features simply not working due to missing opengl features, e.g.:

- cube environment mapping (the chrom and windows on the car are done that way)
- cg & opengl shader (the coat on the car is done that way)
- realtime shadows

There are some other things missing (video generation) simply because our target audience wouldn't want to use vred on sgi machines anymore, so we only port things that are easy to do.

Matthias

_________________
Life is what happens while we are making other plans
Hmm,

I don't want to participate on speculations about products to be launched ...

but

.. is there already a working compiler that does good optimization on itaniums ?

Is there still anybody else except sgi using itanium ?

Matthias

_________________
Life is what happens while we are making other plans
ATI ... Linux ... 64bit drivers ... I see lots of questions regarding stability. But on the other hand maybe everything works as easy as it could, who knows

But nice to see the old cube logo back :wink:

Matthias

_________________
Life is what happens while we are making other plans
hamei wrote:
From what I understand the Itanic is a lot like RISC in some ways - execution speed is very dependent on smart compilers. So what do they have on Linux ? Gcc ? hmmm.


I believe the intel compiler (icc) is used on these machines. Hard to guess its performance without real tests though

Matthias

_________________
Life is what happens while we are making other plans
themacosxflies wrote: BTW, which display is going to drive 10M of pixels?, somethink like the IBM IntelliStation T221

and the Viewsonic VP2290 maybe?

BTW, are both the same display?


I had the possibility to test a viewsonic for a few minutes. Really high dpi rate, but the resolution was kind of interlaced, you wouldn't want to write something in an editor or spreadsheet. But for graphics it was kind of nice. Who needs expensive transistors on the graphics card for antialiasing ... if your eyes can do it much better and cheaper :twisted:

Matthias
Life is what happens while we are making other plans
Hi,

we have now released version 0.95 with a lot of new features and one of them is the obj loader someone was asking for. It can be downloaded at http://www.dmu-vr-solutions.de

Someone might ask what the difference between the freeware version and the commercial one is:

- FHS Writer (a special format needed mainly by german automotive companies)
- CSB Import
- Snapshots bigger than 640x480 px (vred support resolutions over 8192^2 with high antialiasing
- support of the AR-Tracking optical tracking device
- cluster rendering support for powerwalls, powerbenches and cave environments (we are regularly testing our software on a 48pc cluster wall which outputs 6144x3076 pixels in passive stereo at impressive 32dpi, see here http://www.heyewall.de/index.DE.php?page=index&lang=EN ). Would be working under IRIX as well, but we do not know of any big sgi rendering cluster

Note for IRIX users: Some features require the use of a newer generation pc type graphics card. The may be working on onyxes with the ati graphics but we did not test it.

Regards

Matthias

PS: Here is the changelist

Code:
0.95 (07.11.04)

New Features
- rendering: support for local light sources (enable in RenderPreferences)
- rendering: added new SpecTexChunk for correct specular highlights on texture (some call it Spextra)
- rendering: added TwoSidedLightingChunk to enable double sided lighting on material basis.
- rendering: added CG support to OpenGL Shading Language Chunk.
- rendering: new software rendering option (RenderPreferences)
- obj-import: reactivated obj loader.
- csb-import: support for local lights
- optimization: added new share optimize options ( which saves a lot of memory on disk as well as on graphic card)
- renderpreferences: added new cache scene option
- materialeditor: textures can be written to disk
- materiallibrary: added user definable material library.
- material sort key.
- scripting: new vrSpeech event (see speech.py example, needs http://www.microsoft.com/speech/download/SDK51)
- scripting: new vrWidget action (see widget.py)
- scripting: added setUpdateDuration und setFrame to vrVideoGrab action.
- scripting: huge speed improvement for findNode() via new initFindCache() method see find2.py.
- examples: new GLSL example added (bounce.py)
- added experimental raytracer
- Lights: added auto beacon creation and much improved transform handling.
- improved script and shader editor.
- navigation: right-mouse-button-shift-control changes the at point of the virtual trackball.
- cluster: added new cluster service/daemon for auto starting the cluster servers.
- cluster: added server autostart via rsh and many bugfixes.
- cluster: added render statistic to cluster server.
- cluster: added stereo mode to powerwall configuration.

Bug fixes:
- csb-import: Correct Blendfunctions are used for grayscale shadow textures
- povray-export: exports textures now.
- scripting: added some missing python dll's.
- optimization: fixed some crashs with shared geometry porperties.

Other:
- materialeditor: select nodes speed improvement.
- materialeditor: improved gui resize behavior.
- materialeditor: SHLChunk GUI-parameters can be configured via special GLSL comments
examples:
uniform vec3 SurfaceColor; // color
uniform float ambient;     // slider<-1.0 1.0 0.05>
uniform float specular;    // wheel<-10.0 10.0 0.05>
"color" creates a color manipulator
"slider" or "slider<min, max, step>" creates a slider
"wheel" or "wheel<step>" or "wheel<min, max, step>" creates a wheel
- improved hdr support.
- improved GLSL Shader support.
- ActiveX: many bugfixes and improvements.
- scripting: improved videograb action, added user definable video resolution.
- scripting: added online help just type help(<CLASSNAME>) in the terminal,
e.g. help(vrKey)
- scripting: updated the online documentation.
- optimize: improved speed with many nodes.

_________________
Life is what happens while we are making other plans
Hmm,

kinda hard question. Prefered brain cell killers:

- cocktails (things like mai tai, long island ice tea and stuff)
- beer (guiness or all kind of dark beers)
- red whine (californian)

and for special moments there is this 12 year old bottle of jameson single malt.

Matthias
Life is what happens while we are making other plans
Dubhthach wrote: Brombear - Jameson 1780 (12year old) is one of my favourites but no Jameson whiskey is actually a single malt (very few irish whiskeys are, we tend to use alot of unmalted barley - "old pot still" whiskey)


Hi Dubhthach,

you are right I think. I do not have much knowledge about whiskey, but this one was recommend by a friend and I have not regret it. When my father visited dublin I ensured that this special item was on top of his souvenir list :) It is the 12years special edition triple distilled (whatever that means). Everytime I get a new order from my clients its time to enjoy a small glass of it. It is the best whiskey I've ever tried and I had a few good ones too.

Matthias
Life is what happens while we are making other plans
Brombear wrote:
PS: The metallic shader runs at approx 10fps on a fx3000, the unicolor shader with 12fps


Just a small update. Yesterday I removed the old ultra 5700 gfx card from my main development machine and put an 6800 gt instead. Now both shader run at nice 32 fps which gives a real smooth viewing experience. I am always thrilled by the progress the gfx card manufacturers are doing these days.

Matthias

_________________
Life is what happens while we are making other plans
IS this the forum police :lol: :lol:

Sorry, really no photo which is somewhat actual.

Matthias
Life is what happens while we are making other plans
Hi,

after a long time we have finally released version 0.96. Most dramatic changes are the evolvement of our csb loader, the standard format of sgi's cosmo3d/optimizer library. The file format is used by most vr software here in germany as some kind of standard. Furthermore we have added a special vrml importer for static scenes, which is able to deal with huge files created by CATIA V5. On a special request we have implemented a maya loader which is capable to support multitexturing. Of course there are tons of other things like improved support for local lights, improved cluster support (speed wise) which can be tested also with the evaluation version as well as the possibility to use up to 3GB on 32bit Windows and up to 4GB on WinXP64 (we do not have a native 64bit port, simply because we do not have a need for it yet, we have success reports of customers loading automotive models up to 27 million polygons). The complete list of features/bugfixes can be found below.

Also there are some organizational changes. We have founded a new company called VREC GmbH (for VR eazy) and moved to our new bureau location. Because the new website is not ready yet, please visit the old website http://www.dmu-vr-solutions.de . Currently we are working on the documentation and hope to finish it until end of april, when we are going to release version 1.0

Our software has sparked interest even at graphic card manufacturers, at the moment we are evaluating a wildcat realizm 800 to ensure that it is working flawless with our software. The first found bug has already lead to a driver update.

The IRIX version will be released within the next days, maybe someone with an IR3/IR4 can give us some info if it works :)

Best regards

Matthias

Code:
0.96 (10.04.05)

New Features:
- added support for 3 GB address space on windows XP (add /3GB option to C:\boot.ini file)
- added support for 4 GB address space on windows XP64
- rendering: added new global specular texture highlight render mode.
- rendering: correct two sided lighting mode with mirror (negative scale) transformations.
- rendering: added new point headlight option.
- rendering: added DepthTestChunk
- rendering: much improved antialiasing quality.
- rendering: antialiasing now supports all stereo modes and clustering.
- rendering: interruptible antialiasing.
- rendering: support for up to 64 local light sources.
- rendering: added new state sorting group node.
- cluster:   added support for wireframe, double sided lighting and
specular texture highlights.
- cluster: improved render speed with activated client rendering.
- cluster: added cluster disable option to the render preferences to safe some memory.
- cluster: added interactive changing of eye separation and zero parallax.
- cluster: added direct connection via port.
- csb-import: added support for depthtest function
- ViLMA-import: added support for ViLMA-Structures
- fhs-export: inline textures will be exported to disk
- material editor: added separated transparency sliders for front and back material.
- material editor: added color material option.
- material editor: added material sort key.
- material editor: added lodbias adjustment for normal textures and cubetextures.
- material editor: added texture export into Cubetexture GUI
- material editor: added sharing of Textures, Materials, BlendChunks.
- material editor: new layout.
- fileio: added large file importer (use file menu import LargeFile)
- fileio: saving osb will now always write in compressed gzip format.
- fileio: osb now supports also unreferenced materials.
- fileio: added progress bar.
- fileio: new show fileio progress option.
- fileio: osb exports now relative paths.
- fileio: new geometry verifier tries to fix corrupted geometry.
- fileio: new show fileio progress option.
- render preferences: added z-up option.
- art tracking: added space and sensor calibration.
- art tracking: added support for z-up and y-up coordinate systems.
- node editor: added auto update option.
- viewpoint module: added support for near & far clipping plane as well as field of view.
- installer: added osb file format association on windows.
- actions: added new fade action (see fade.py)
- scenegraph: added drag and drop between nodes.
- optimize: added BlendChunk sharing.
- movie export: added new python createSnapshot command.
- vdse project: Viewpoints can be imported
- picking / selection: improved speed.
- script: new setCameraZUp() method.
- vredviewer: changed resize behavior and added new script command (setViewerActiveXWidth)
to change the width of activex widget.
- snapshot: improved image clipping with different aspect ratio in the main render
widget and the resulting snapshot.
- transform: added center rotation.

Bug fixes:
- fixed possible crash in node info update.
- csb-import: Fixed wrong orientation of the 6 cubemap images
- csb-import: Fixed too optimistic caching strategy of cubemapping
- csb-import: fixed wrong back material diffuse color and added support
for front and back material transparency.
- csb-import: better support for local light sources which are not below an environment node.
- csb-import: improved speed
- csb-import: lower memory consumption
- csb-import: some blend modi fixes.
- rendering: fixed conflict in ViewTextureTransform and TextureTransform chunk.
- rendering: more stable fullscreen mode on ATI cards.
- rendering: fixed redraw bug on WindowsXP.
- rendering: fixed some chunk state bugs.
- rendering: added antialiasing abortion via escape key.
- rendering: fixed possible crash in the SHLChunk.
- cluster: fixed a crash in the cluster server.
- cluster: fixed active stereo bug.
- cluster: fixed crash on connection.
- cluster: server start via rsh didn't work in direct connection mode.
- fileio: fixed wrong transforms in the wrl export.
- fileio: improved error message while trying to save in a unsupported fileformat.
- optimize: added workaround for a crash in material optimize.
- optimize: much improved material optimize speed.
- optimize: fixed rare crash in material optimize.
- optimize: fixed flush genfunc bug.
- qt lib: fixed a crash in QListView
- art tracking: fixed hmd mode.
- art tracking: fixed threading on linux.
- viewpoint module: fixed a crash on linux.
- activex: source path with environment variable didn't work in IE.
- transform: fixed bouncing rotation.
- clusterService: fixed path name with spaces problem in the install bat file.
- materialeditor: fixed missing materials after convertToFresnel and converToPhong.
- materialeditor: fixed share materials crash.
- materialeditor: colors do no longer turn to grayscale when using the slider
- script: fixed some crashes with invalid pointers.
- movieplayer: texturetransformchunk will only be created when necessary.
- navigation/picking: works now also with big scenes.
- fhs export: when using clamp_to_edge, write clamp because fhs does not support it.
- nodeeditor: fixed update bugs in cluster mode.
- scene: improved z-up.
- scenegraph: much improved update speed (up to 50 times faster)
- navigator: fixed wrong at point for snapshots and viewpoints.

Other:
- updated to qt version 3.34.
- updated to python 2.4
- rearranged tab-order in some modules
- rewrote the material ref counting.
- improved opengl 2.0 support.
- updated to ffmpeg 0.49

_________________
Life is what happens while we are making other plans
hamei wrote:
"Your favourite device
In case your favourite interaction device isn't listed here do not bother to contact us ... "


Ok, for sure it wasn't meant to be a joke. There are so many interaction devices at the market for use in vr (magnetic tracking: polhemus, ascension, intersension and optical tracking: art, vicon and joysticks, wheels and probably thousand others we don't know yet). We just did not want to waste our resources in developing bindings to devices noone really uses anymore. E.g. the art optical tracking system is so popular here in germany, there are few vr labs that still rely on magnetic systems (there are exceptions where optical tracking does not make sense though).

Matthias

_________________
Life is what happens while we are making other plans
GIJoe wrote:
i think i'll give it a try on my lowly vpro ;)

since you seem to be in close contact with fraunhofer institute and want to test your software on sgi's bigger iron, you might want to contact fraunhofer sankt augustin (i believe it's IMK). at least they used to be stuffed with sgi gear from desktops to supercomputers up to the building roofs and might still keep some big machines around.


Hi GIJoe,

thanx for the offer. We are more closely related to the IGD here in Darmstadt, but I think all their onyx machines have been sold in the meantime (I grew up with an 3-pipe onyx I and a dual-pipe onyx2 :) ) . Besides that the IRIX port is not of great value anymore today, so I won't actively search for people testing it. In fact IRIX is an unsupported platform for us, it's just pure fun to see that it still compiles and runs on it.

Matthias

_________________
Life is what happens while we are making other plans
hamei wrote:
You don't find that making sure your application compiles and runs on Irix to be a worthwhile sanity check ? Or is cross-platform portability of minimal value these days ? Just curious ....


Of course we test it but to perform a full check for a virtual reality system which is a very dynamic by its nature is not possible. The more used a platform is the more we perform tests. A lot of functionality of our system is used for a different project which is used under IRIX too, so I do not anticipate significantly more errors. Our dailybuild runs on IRIX all few days too ... (not all days I prefer more comfortable noise levels :P )

Our system is really cross-platform and we will consider supporting the mac platform too. Of course there are some modules that cannot be ported but we try to avoid that as much as possible.

Matthias

_________________
Life is what happens while we are making other plans
hamei wrote:
Brombear wrote:
Our dailybuild runs on IRIX all few days too ... (not all days I prefer more comfortable noise levels :P )


Pick up a Fuel ! That's one thing you have to give it credit for - it's quiet. And red , too 8)


At the moment I prefer to not spent money but to receive it instead :wink: And our chairs are already red too

Matthias

_________________
Life is what happens while we are making other plans
If you prefer a fresh built version for IRIX, this is your chance to grab it while it's still hot :wink:

Matthias

PS: For those interested it took a bit longer due to a new bug ähm feature within Qt :roll:

_________________
Life is what happens while we are making other plans
IMHO there is only one reason to buy this workstation. If you have gigabyte-sized models that do not fit into current available workstations from fsc and others. Costs for software that runs on it should be high too, since it must be ported and maintained as well ( I wouldn't bet on high performance figures from software that runs through an emulator ).

Matthias
Life is what happens while we are making other plans
Diego wrote: and good drivers for the ATI graphic boardset


Let me guess, that will happen right after hell has frozen over :lol:

Matthias
Life is what happens while we are making other plans
lhaza wrote:
there is another feature at your website:

Warning: filesize() [function.filesize]: Stat failed for /home/www/web41/html/download/vred/IRIX/vred-0.96b-IRIX-Build20050413-lite.tar.bz2 (errno=2 - No such file or directory) in /home/www/web1/html/templates/functions.php on line 61
0 B



Fixed, we had to rebuild the release version because of a bug (originally we stripped the executables on irix, but this trashed the executable)

Matthias

_________________
Life is what happens while we are making other plans