D
by DADA_universe on 16 Dec 2020, edited 16 Dec 2020#
+3 votes
@Sabufrancis one very unique thing about TAD is how it's able to handle complex projects with very tiny file sizes. I've struggle with 300mb, 600mb files sizes with Blender, and I was not even working on estates. So it would clearly be a nightmare to try to do something at urban scale, no matter what optimization hacks I use. So while I'm all for exploring how can feed into existing tools like FreeCAD and Blender, I'm also wondering how you'll keep the TAD advantage with small file sizes.
One other thought is about modularity. I find the way @brunopostle and @Moult have assembled both HomeBuilder and BlenderBIM around modular components interesting. Would it work to think of TAD as a suite of modular components instead of a monolithic piece of software? This might make it easier for making it open source and developing it collaboratively. And I'll also bet on interoperability with other tools being a major attraction for TAD adoption in the wild, such that someone using FreeCAD, Blender, or even Rhino will find it useful to use a plugin from the TAD suite of tools for one thing or the other. We've had previous discussions here that identified the strong need for interoperability and considerations for this need are behind current work being done by a lot of people.
Can TAD become a federated suite of tools that work from a common paradigm and complement / strengthen other tools in different ways? There are probably gaps in this thinking, but I'm serving it hot straight from the oven!
S
by Sabufrancis on 26 Dec 2020, edited 27 Dec 2020#
+1 votes
@DADA_universe Thank you for your suggestions. All of them are useful.
Yes, one of the strengths of TAD is its really small sizes of files. There are several reasons for it. One is it that because of it being highly object-oriented. There are several other reasons too; such as the core AI work ("data turning into code just-in-time") due to the internal ARDELA interpreter. And yes; I just do not want to lose the advantage of those tiny files because for things like rapid designing, collaborative designing that would become enormously useful
There are some more clarity on how TAD can go open source.
It would happen in stages. Currently, TAD's business logic is in Visual Prolog (in a DLL) The UI is in Delphi 5. The latter is simply not available anymore -- and the Brazilian company that has taken over Delphi and has brought out the later version, levies massive charges. That is just not suitable for open source projects. (Though they do claim that they can give a version free with some convoluted clauses such as the software should not be making more than XYZ dollars per year,etc ... which I wonder how they monitor. Moreover; though TAD is free as Richard Stallman keeps saying; TAD is free as in "liberty"but not as in "free beer" -- TAD would still be having a revenue model and surely would need to make money too. Not just for me; but even for other stakeholders and of course the users too)
I experimented with FreePascal + Lazarus and I find it to be very stable and quite slick too. So I could replace the UI with Lazarus.
But I am now thinking of another route. The open source TAD would have 3 different modules: The code Prolog business logic in the DLL as before. Then a browser app in HTML5 that does the UI and the actual interface all running -- and specialized localhost server written in Freepascal+Lazarus that drives the browser app; while still connecting to the Prolog DLL in the back. Of those 3 modules; two of them would be available for open-source.
For the Prolog part; I did discuss with the creators of that language that I use (Visual Prolog) That company (PDC of Denmark) are quite nice people -- and I am now playing with their latest version (Version 9) to see if I can port my old version 5.2 code to Version 9 -- but that is quite a large task. Lots have changed since 5.2 so it can take a good amount of time. But then, if it succeeds that Prolog part can also be open source. Though Visual Prolog version 9 is commercial, it has a very reasonable cost so can be used for open source projects too (by those open source developers who want to participate)
Luckily they have given their PIE (Prolog Inference Engine) as a separate standalone code now and it can be used for such projects. As ARDELA was developed on PIE (ARDELA is actually a TAD based object-oriented version of PIE); there could be a chance of taking ARDELA out of the core logic; and keeping it as a separate interpreter to process TAD file... but frankly that would also mean the internal reflective properties of data-turning-into-code would get lost; and that means a lot of re-architecturing the software ...
So all in all, it would take time once again. Hence to begin the process of open-sourcing; 2 of the aforementioned 3 modules can surely be open-sourced. One major advantage of this hybrid HTML5app+specialized localhost server is that a lot more web-based addons and functionalities can be surely opened up!
Regarding your thoughts on modularizing TAD --so that others can write TAD compatible modules ... Something like how DXF files can be produced by any number of software; it has crossed my mind too. Need to put all that on a proper holistic map -- where legal repercussions, revenue repercussions, any other influences, etc would need to be assessed ... For interoperability and I am also considering an old Unix strategy of Pipelining apps together (thats a big topic ... maybe will make a video on that) and one strong contender where TAD would interoperate would be OpenSCAD and possibly even the old BRL-CAD. Current trends in software such as Rhino is that they are largely complex walled gardens with small windows open for things like Grasshopper etc to get into the innards. I had worked extensively on Rhino many years back during its beta stages when it was all free. But got disappointed by the walled garden approach and huge "featuritis".
All such conventional software are quite difficult to move into a pipeline process the way Unix programs do ... one major reason why TAD can do it; is because it has internal linguistic clarity. Take a look at this video by Brian Kernighan to revise your understanding on pipelines. So it is quite likely that in future TAD would feed into complex pipelines and others can smoothly extend the capability of the entire design process that TAD is safeguarding
There is another one too by him (see below) .... What is not readily apparent here is that for pipelines to work there simply has to have lingusitic clarity (a rather highfalutin way of saying that the alphabets of the language of the data being processed and refined, should not be changing around from one part of the pipeline to the other hehehe)
BRL-CAD did do some kind of pipelining, but graphics really does not lend itself to be broken down into alphabets. TAD's alphabets does not come from graphics but from architectural theories.
BRL-CAD did it only because they just could not do it any other way .as it was written quite long time back... The approach taken by OpenSCAD is by using a domain-specific language (DSL ... Brian talks about the advantage of DSLs in another talk)
Moreover; though TAD is free as Richard Stallman keeps saying; TAD is free as in "liberty"but not as in "free beer" -- TAD would still be having a revenue model and surely would need to make money too. Not just for me; but even for other stakeholders and of course the users too)
Please make sure you understand the four freedoms before half quoting Stallman. If you charge money for something then there is no freedom.
A program is free software if the program's users have the four essential freedoms:
The freedom to run the program as you wish, for any purpose (freedom 0).
The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
The freedom to redistribute copies so you can help others (freedom 2).
The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
I have started a page on free/libre OSS business models you may like me to help work on. It sounds like this is important for you going forward:
S
by Sabufrancis on 27 Dec 2020, edited 27 Dec 2020#
+3 votes
@duncan I guess Stallman's famous quote of "not free as in free beer" is indeed confusing. Possibly you need to refer again to Richard Stallman's paper on "Free" . Also, I was referring to a revenue model and not that the software itself as being sold . But that is a matter of detail and coincidence. One can really have open source software which is commercial too. The four freedoms you speak about has nothing which states that the software should not be charged for. (But I don't charge for it -- which is just a coincidence. But my software does have a revenue model and that does not go against the principles of open source movement)
This is the quote from Free Software Foundation:
"Free software" means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, "free software" is a matter of liberty, not price. To understand the concept, you should think of "free" as in "free speech," not as in "free beer". We sometimes call it "libre software," borrowing the French or Spanish word for "free" as in freedom, to show we do not mean the software is gratis.
Kindly take a look here too; on how I look at the four freedoms translated for architecture: https://ww3.teamtad.com/FourFreedoms (It is an old unmaintained site so there are some CSS errors)
S
by Sabufrancis on 27 Dec 2020, edited 27 Dec 2020#
+1 votes
On a side note; Here is an example of something that is seen in bazaars of some parts of India (North East... India is a vast country with various different approaches) https://www.thebetterindia.com/63223/nghah-lou-dawr-shop-mizoram/ There farmers place their produce for sale but do not do any face-to-face selling. They just place the price-list and step back. They then trust that the customer would pay. It does not mean they are actually giving it away free. It is one good example of how "open source" could be practiced. Coincidentally, the seminal paper about open source is called "The cathedral and the bazaar" If you come to Indian bazaars you would be pleasantly surprised on how it works. It is actually a lot more intricate than what was reflected in Eric's paper.
Note that I am not hinting that open source software necessarily needs to be charged either. The most important aspect is that knowledge of the processes that work internally should be open and completely accessible -- not just in software. But in many other intellectual efforts too
Here is a film-maker; Kamal Swaroop, in India who is an expert on one of our stalwarts in films -- Dadasaheb Phalke . He conducts workshops talks and allows anyone to modify his film script on that topic. Kamal uses an open source approach without getting into the debate of the how and why of making money. What is important there too is to have creative freedom and deep understanding of the topic, and sharing the internals. I am somewhat tangentially involved in that project https://wiki.phalkefactory.net/index.php?title=Main_Page
I like what you done at https://ww3.teamtad.com/FourFreedoms with the 'Four Freedoms'. Good idea. I assume you know 'The Pattern Language' which is really something where we can start talking about sharing generations of expert knowledge of architectural qualities.
It seems we agree that charging for the software would be a problem. I am inclined to go for a focus on a commercially sold branded executable. That way anyone can compile and run the software but all branding and commercial support is for the branded product and is sold. I believe this is the original Redhat model. For some reason it never occurred to me to check wikipedia for a relevant page, here it is: https://en.wikipedia.org/wiki/Business_models_for_open-source_software so I will now begin removing the work I've done as anything useful should really be added to the wikipedia page instead.. https://en.wikipedia.org/wiki/Business_models_for_open-source_software
It sounds like Kamal Swaroop uses a Creative Commons approach, use of the term Open Source is becoming confused as it is used for many things that have no source code. This just dilutes the concept and stands in the way of other important concepts becoming better known. Other useful concepts such as creative commons, crowd sourcing, co-creation and just plain collaboration and participation.
We also have roadside stalls outside farms here in Denmark and I know also in Germany where people leave money on a box.